{"id":27601964,"url":"https://github.com/monoxane/speedtweet","last_synced_at":"2025-08-11T00:12:51.115Z","repository":{"id":153292529,"uuid":"400776804","full_name":"monoxane/speedtweet","owner":"monoxane","description":null,"archived":false,"fork":false,"pushed_at":"2021-08-28T11:34:25.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-22T17:59:31.000Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monoxane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-08-28T11:34:11.000Z","updated_at":"2021-08-28T11:34:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"b4ae57f0-0246-490d-9eaa-4b3f6b4083c0","html_url":"https://github.com/monoxane/speedtweet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/monoxane/speedtweet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monoxane%2Fspeedtweet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monoxane%2Fspeedtweet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monoxane%2Fspeedtweet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monoxane%2Fspeedtweet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monoxane","download_url":"https://codeload.github.com/monoxane/speedtweet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monoxane%2Fspeedtweet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269809707,"owners_count":24478599,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-04-22T17:50:44.949Z","updated_at":"2025-08-11T00:12:51.059Z","avatar_url":"https://github.com/monoxane.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Speedtest ISP tweeter\n==\n(Very much a work in progress right now)\n\nRuns a speedtest every 15 minutes and if the result is below the threshold (SPEEDTWEET_SPEED_THRESHOLD) it will trigger a tweet to the username set in SPEEDTWEET_ISP_TWITTER (probably your ISP) that looks like \"Hey @ISP, Why am I only getting 15.45mbps download when I pay for 30mbps?\"\n\n# Run with docker\n1. Clone this repo then build the docker image with  ```docker build -t monoxane/speedtweet:latest .```\n3. Get a twitter API key and stuff by following steps one and two of [this guide by DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-create-a-twitter-app) and\n2. Run with:\n```\ndocker run -d\n\\ -e SPEEDTWEET_ISP_TWITTER=\"@\u003cisp twitter\u003e\"\n\\ -e SPEEDTWEET_SPEED_ADVERTISED=\"\u003cisp advertised speed\u003e\"\n\\ -e SPEEDTWEET_SPEED_THRESHOLD=\"\u003cthreshold for tweeting\u003e\"\n\\ -e SPEEDTWEET_TWITTER_ACCESS_TOKEN=\"\u003ctwitter access token\u003e\"\n\\ -e SPEEDTWEET_TWITTER_ACCESS_SECRET=\"\u003ctwitter access token secret\u003e\"\n\\ -e SPEEDTWEET_TWITTER_CONSUMER_KEY=\"\u003ctwitter consumer key\u003e\"\n\\ -e SPEEDTWEET_TWITTER_CONSUMER_SECRET=\"\u003ctwitter consumer secret\u003e\"\n\\ monoxane/speedtweet:latest\n```\n\n# Run with python3\n1. Clone the repo\n2. Install python3 and python3-pip with your package manager\n3. run ```pip3 install pyspeedtest hurry.filesize tweepy``` to get the dependancies\n4. run all of these (replacing with your personal things of course)\n```\nexport SPEEDTWEET_ISP_TWITTER=\"@\u003cisp twitter\u003e\"\nexport SPEEDTWEET_SPEED_ADVERTISED=\"\u003cisp advertised speed\u003e\"\nexport SPEEDTWEET_SPEED_THRESHOLD=\"\u003cthreshold for tweeting\u003e\"\nexport SPEEDTWEET_TWITTER_ACCESS_TOKEN=\"\u003ctwitter access token\u003e\"\nexport SPEEDTWEET_TWITTER_ACCESS_SECRET=\"\u003ctwitter access token secret\u003e\"\nexport SPEEDTWEET_TWITTER_CONSUMER_KEY=\"\u003ctwitter consumer key\u003e\"\nexport SPEEDTWEET_TWITTER_CONSUMER_SECRET=\"\u003ctwitter consumer secret\u003e\"\n```\n5. Run it with `python3 speedtweet.py`\n## Run in the background with python3\nYou probably want to run it in background, you can use `screen` or `nohup` for this  \n\n  6.1 For screen, install it with your package manager, its usually just `screen` (but might be `gnuscreen` for some reason) then run `screen -S speedtweet`, `python3 speedtweet.py` then hit `ctrl+a`  then `d` to detatch the screen.\n\n  6.2 For nohup just run `nohup python speedtweet.py \u0026`, the console output will be in nohup.out\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonoxane%2Fspeedtweet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonoxane%2Fspeedtweet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonoxane%2Fspeedtweet/lists"}