{"id":25893470,"url":"https://github.com/bitkeks/mastodon-to-twitter","last_synced_at":"2025-03-02T21:36:19.762Z","repository":{"id":53477614,"uuid":"107859940","full_name":"bitkeks/mastodon-to-twitter","owner":"bitkeks","description":"Mas2tter - the Mastodon-to-Twitter Mirrorbot","archived":false,"fork":false,"pushed_at":"2021-03-29T17:08:15.000Z","size":67,"stargazers_count":21,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-13T13:59:56.034Z","etag":null,"topics":["bot","mastodon","mirror","twitter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitkeks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-22T11:30:04.000Z","updated_at":"2023-11-07T12:46:57.000Z","dependencies_parsed_at":"2022-08-17T23:05:33.247Z","dependency_job_id":null,"html_url":"https://github.com/bitkeks/mastodon-to-twitter","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitkeks%2Fmastodon-to-twitter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitkeks%2Fmastodon-to-twitter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitkeks%2Fmastodon-to-twitter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitkeks%2Fmastodon-to-twitter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitkeks","download_url":"https://codeload.github.com/bitkeks/mastodon-to-twitter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241288964,"owners_count":19938981,"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","mastodon","mirror","twitter"],"created_at":"2025-03-02T21:36:18.964Z","updated_at":"2025-03-02T21:36:19.738Z","avatar_url":"https://github.com/bitkeks.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mas2tter - the Mastodon-to-Twitter Mirrorbot\n\nThis Python3 script loads the latest Toots from your Mastodon account and posts them on Twitter.\nSome formatting is done to keep the content of Tweets in 280 characters, possibly posting two Tweets.\n\nYou can choose to either link to your Toot so others can click through to your Mastodon profile (see screenshot below) or use the alternative plain text mirror. The config parameter `link_to_mastodon` is used for this.\n\nYour Tweets will contain some of your original Hashtags. Set the config option `tags_to_append` for this.\n\n![demo Tweet](example-post.png)\n\n## Setup\nFill the config values `api_base_url` and `user_base_url` as given in the example. The API base URL is most likely the root domain of your instance, the user base URL is a simple text string which is used to check Tweets that contain Mastodon URLs to your Toots. (Better have a look into the code, it gets clear there)\n\n## Changelog\nVersions `\u003cv2.0.0` do not use the streaming API, but instead regularly pull the latest Toots made by a user and compares the locally saved Toot ID to find out, if new Toots were posted. If yes, they are cross-posted to Twitter.\n\nVersion `v2.0.0` introduces the usage of the **streaming API**, meaning that Mas2tter listens for new Toots and acts based on events sent by the server. The old pull script is still available in `sync_existing.py`, it can be used to sync existing Toots which will not be seen by the stream listener. Please note that the script uses the old-style formatting.\n\nVersion `v2.1.0` introduces **multiple Tweets**, if the character limit of 280 characters is exceeded. The Toot is then split in half (based on spaces between words) and two Tweets are posted.\n\nVersion `v2.2.0` introduces **command line arguments** to use different config files and to enable debugging output. Exception handling was extended to hopefully handle more connection errors.\n\n## Libraries and tokens\nThis bot uses [Python-Twitter](https://python-twitter.readthedocs.io/en/latest/getting_started.html) and [Mastodon.py](https://mastodonpy.readthedocs.io/en/latest/). To set up the needed access keys/tokens follow the instructions there. Mas2tter has no running public instance to date. If you do not have the resources to set it up on your own, have a look at [crossposter.masto.donte.com.br](https://crossposter.masto.donte.com.br/) ([Github repo](https://github.com/renatolond/mastodon-twitter-poster)).\n\n## License\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nMore in `LICENSE`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitkeks%2Fmastodon-to-twitter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitkeks%2Fmastodon-to-twitter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitkeks%2Fmastodon-to-twitter/lists"}