{"id":15163489,"url":"https://github.com/purplesec/twittoo","last_synced_at":"2025-09-30T18:32:08.432Z","repository":{"id":62850513,"uuid":"559684466","full_name":"PurpleSec/TwitToo","owner":"PurpleSec","description":"TwitToo (Tweet To): Twitter to Mastodon forwarder service","archived":true,"fork":false,"pushed_at":"2023-06-17T19:43:44.000Z","size":97,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-04-29T00:13:22.840Z","etag":null,"topics":["golang","golang-application","mastodon","mastodon-api","mastodon-app","twitter","twitter-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PurpleSec.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,"governance":null}},"created_at":"2022-10-30T21:20:04.000Z","updated_at":"2023-06-17T19:44:36.000Z","dependencies_parsed_at":"2023-09-21T20:13:43.044Z","dependency_job_id":null,"html_url":"https://github.com/PurpleSec/TwitToo","commit_stats":{"total_commits":11,"total_committers":3,"mean_commits":"3.6666666666666665","dds":"0.36363636363636365","last_synced_commit":"6813cec96ab2b4719ff6640ba01eec19bc35c97d"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleSec%2FTwitToo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleSec%2FTwitToo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleSec%2FTwitToo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleSec%2FTwitToo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PurpleSec","download_url":"https://codeload.github.com/PurpleSec/TwitToo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234767143,"owners_count":18883388,"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":["golang","golang-application","mastodon","mastodon-api","mastodon-app","twitter","twitter-api"],"created_at":"2024-09-27T02:42:56.980Z","updated_at":"2025-09-30T18:32:08.109Z","avatar_url":"https://github.com/PurpleSec.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TwitToo\n\n**Sadly, Twitter has removed the posting feature from it's Free API tier (and removed Essential access)**\n**so I am archiving this project as the people that can afford the API prices probally have something**\n**else to use. Currently (as of 06/17/23, with proper API keys, this Project still functions if you need it**\n\nTwitToo (Tweet To): Twitter to Mastodon forwarder service!\nSends Tweets and media from Twitter to Mastodon!\n\n## Why?\n\nTwitToo is made to solve one of the problems with migration from Twitter, is\nthat many people don't want to miss out on people they follow or want to make it\neasier for people that do follow them to be able to view their content on a new\nplatform.\n\nIn plain english *Easy dual posting to Mastodon and Twitter*.\n\n# How to Use\n\nGenerate an application on [Twitter](https://developer.twitter.com) and also on\nyour preferred Mastodon instance *(Preferences \u003e Development \u003e New Application)*.\n*The Mastodon application needs \"write:statuses\" and \"write:media\" scopes\"*\n\n## Configuration\n\nCreate a config file with the details, like below:*(Fillling in any \"\u003c\u003e\")*\n*Multiple Twitter users can be added via the \"users\".\"\u003ctwitter_username\u003e\" key*\n*with the user's Mastodon account details.*\n\nThe Twitter user does **NOT** have to be the user that has the API authentication\nand and additional users added do not have to be the *direct* account owner.\n\n```json\n{\n    \"log\": {\n        \"level\": 2\n    },\n    \"twitter\": {\n        \"consumer_key\": \"\u003ctwitter_consumer_key\u003e\",\n        \"consumer_secret\": \"\u003ctwitter_consumer_secret\u003e\"\n    },\n    \"users\": {\n        \"twitter_username\": {\n            \"ignore_cw\": false,\n            \"unlisted_word\": \"\u003cword_to_unlist\u003e\",\n            \"server\": \"\u003cserver_url_or_dns_name\u003e\",\n            \"client_key\": \"\u003cmastodon_client_key\u003e\",\n            \"client_secret\": \"\u003cmastodon_client_secret\u003e\",\n            \"user_token\": \"\u003cmastodon_user_token\u003e\"\n        }\n    }\n}\n```\n\nThe `ignore_cw` setting, when set to the default `false` value, will instruct TwitToo\nto parse out any message that uses `CW: Warning` (ending with a newline) and will\nmark it as sensitive (hidden) with the \"Warning\" text as the content warning text.\n\nie: This Tweet text will create a Mastodon post with the CW \"Testing\":\n\n```text\nCW: Testing\nThis is message text that is NOT parsed!\nSame here!\n```\n\n-or-\n\n```text\nCW:Testing\nThis is message text that is NOT parsed!\nSame here!\n```\n\nThe `unlist_word` setting, when non-empty, will be a string that if the Tweet\ntext starts with, this will mark the Mastodon post as unlisted (won't pop up in\nthe local/federated feed). This can be a sentence, an emoji or even a single\ncharacter.\n\n## Building\n\nBuilding is easy, just run `bash build.sh` and it will create the application\nin the `bin` folder as `twittoo`.\n\n## Running\n\nOnce saved, all you have to do is run the application using `./bin/twitoo \u003cconfig_file_path\u003e`\nand you're all set! Just let the application do it's thing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurplesec%2Ftwittoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpurplesec%2Ftwittoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurplesec%2Ftwittoo/lists"}