{"id":16272485,"url":"https://github.com/pixelbrackets/has_yet","last_synced_at":"2025-08-20T17:21:48.067Z","repository":{"id":24437794,"uuid":"27839614","full_name":"pixelbrackets/has_yet","owner":"pixelbrackets","description":"Has … yet? Script to set up a Twitter bot tweeting answers to important questions like “Has something happend yet?”","archived":false,"fork":false,"pushed_at":"2019-08-05T08:26:36.000Z","size":49,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T13:22:04.368Z","etag":null,"topics":["bot","cron","php","twitter","twitter-bot"],"latest_commit_sha":null,"homepage":"https://gitlab.com/pixelbrackets/has_yet/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pixelbrackets.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-10T21:03:32.000Z","updated_at":"2020-11-13T15:03:24.000Z","dependencies_parsed_at":"2022-08-24T01:10:35.184Z","dependency_job_id":null,"html_url":"https://github.com/pixelbrackets/has_yet","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelbrackets%2Fhas_yet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelbrackets%2Fhas_yet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelbrackets%2Fhas_yet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelbrackets%2Fhas_yet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pixelbrackets","download_url":"https://codeload.github.com/pixelbrackets/has_yet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247876733,"owners_count":21011141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","cron","php","twitter","twitter-bot"],"created_at":"2024-10-10T18:17:58.111Z","updated_at":"2025-04-08T15:49:23.688Z","avatar_url":"https://github.com/pixelbrackets.png","language":"PHP","readme":"Has … yet?\n==========\n\n[![Packagist](https://img.shields.io/packagist/v/pixelbrackets/has_yet.svg)](https://packagist.org/packages/pixelbrackets/has_yet/)\n[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social\u0026logo=twitter)](https://twitter.com/has___yet)\n\nHas something happend yet? This is a small script to set up one of those \nTwitter bot accounts which automatically tweet answers to important questions like:\n\n* Has invisibility been invented yet?\n* Has [sports team] won/lose yet?\n* Has [shady polititian] resigned yet?\n* Has the world ended yet?\n\nExample twitter bot using this repository:\n\n* https://twitter.com/has___yet\n\n## Requirements\n\n* Twitter API Key\n* PHP\n* Composer\n* Cronjob\n\n## Usage\n\nThe PHP script should be executed with a cronjob. It then reads a JSON file\nconsisting of default messages and messages for special dates. One message is\nselected and then pushed to a given Twitter account.\n\nIt is possible set up multiple accounts.\n\n## Installation\n\n**Set up the script**\n\n1. Use composer to install the script and all dependencies\n    * `composer create-project pixelbrackets/has_yet`\n1. Copy the [configuration example file](./configuration.json.example) and \n   rename it to `configuration.json`\n    * The example configuration should be self-explaining, you may define \n      custom messages for special days and/or one or more default messages\n    * A status message may consist of a text and an image\n    * The optional image may be a local filename or a URL (http/https supported)\n1. Protect the whole folder from public access (eg. with a [htaccess file](./.htaccess.example) \n   or move the directory outside of the document root)!\n\n**Set up a Twitter account**\n\n1. Register a Twitter account (that was obvious, wasn't it?)\n1. Register an app for this account\n    * The advantage of this move is that you won't need to set up an OAuth Login, \n      since Twitter offers to generate an Access Token for the own account\n1. Go to https://apps.twitter.com/ to create/register the Twitter App\n1. Click “Create New App” Button\n1. Create an application (Name, Description, Website etc.)\n1. Change “Permissions” to “Read \u0026 Write”\n1. Generate an Access Token on the “Keys and Access Tokens” tab\n1. Copy API Key, API Secret, Access Token, Access Token Secret into the \n   configuration file\n\n**Set up a cronjob**\n\n1. Set up a cronjob which points to the `cron.php` file\n    * eg. `0 10 * * * php /path/to/cron.php`\n    * You may choose any interval, but be aware that Twitter has a mechanism to \n      detect duplicate tweets (https://twittercommunity.com/t/duplicate-tweets/13264). \n      Consider this if you want to frequently post the same status message. \n      It appears that a 24 hour time range is sufficient.\n1. If you want to set up multiple accounts or use varying messages, then rename \n   the JSON configuration file and pass the filename as argument\n   * eg. `johndoe.json` and `php /path/to/cron.php johndoe`\n\n## Source\n\nhttps://github.com/pixelbrackets/has_yet/\n\n## Documentation\n\nRead online (HTML) https://github.com/pixelbrackets/has_yet/blob/master/README.md\n\n## License\n\nGNU General Public License version 2 or later\n\nThe GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html.\n\n## Author\n\nDan Untenzu (\u003cmail@pixelbrackets.de\u003e / [@pixelbrackets](https://github.com/pixelbrackets))\n\n## Changelog\n\nSee [./CHANGELOG.md](CHANGELOG.md)\n\n## Contribution\n\nThis script is Open Source, so please use, patch, extend or fork it.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixelbrackets%2Fhas_yet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpixelbrackets%2Fhas_yet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixelbrackets%2Fhas_yet/lists"}