{"id":31017257,"url":"https://github.com/pmdevita/switcharoohelper","last_synced_at":"2025-09-13T07:53:53.276Z","repository":{"id":52887543,"uuid":"118715781","full_name":"pmdevita/switcharoohelper","owner":"pmdevita","description":"Bot that ensures additions to Reddit's old switcharoo follow the rules","archived":false,"fork":false,"pushed_at":"2023-07-25T21:04:36.000Z","size":478,"stargazers_count":3,"open_issues_count":6,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-09T03:35:58.596Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://reddit.com/user/switcharoohelper","language":"Python","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/pmdevita.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":"2018-01-24T05:17:07.000Z","updated_at":"2024-05-18T19:40:21.000Z","dependencies_parsed_at":"2023-02-14T03:46:02.242Z","dependency_job_id":null,"html_url":"https://github.com/pmdevita/switcharoohelper","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/pmdevita/switcharoohelper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmdevita%2Fswitcharoohelper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmdevita%2Fswitcharoohelper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmdevita%2Fswitcharoohelper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmdevita%2Fswitcharoohelper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmdevita","download_url":"https://codeload.github.com/pmdevita/switcharoohelper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmdevita%2Fswitcharoohelper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274935968,"owners_count":25376836,"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-09-13T02:00:10.085Z","response_time":70,"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-09-13T07:53:48.131Z","updated_at":"2025-09-13T07:53:53.259Z","avatar_url":"https://github.com/pmdevita.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwitcharooHelper\n\n![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pmdevita/5c26e2c651a043ec65572d815dcbb3cf/raw/switcharoohelper_coverage.json)\n\nVerifies and maintains correct linking on Reddit's ol' switcharoo. switcharoohelper works by checking a switcharoo for \na set of known issues, almost like a unit test. \n\nThe bot has several services that can be run:\n\n- main.py - This service logs new incoming roos and, if needed, offers fixing advice to the submitter and deletes \nsubmissions that are broken or need to be resubmitted to fix. It also reads modmail for moderator commands.\n- check_up.py - This service scans the chain, checking for any changes. It then sends comments or messaegs to users \nasking for them to help fix the chain or remind them that they still need to fix it.\n- userflair_update.py - This service synchronizes subreddit flair with the database.\n\nCurrently, the bot code is a bit of a mess. The logic for adding the check up service was difficult to bang out of my \nhead and I'm still in the process of fixing it up. The bot is also still midway through a migration to a more OO design \nand I haven't quite figured out some parts of it yet.\n\nThe bot checks up roo linking according to \n[official r/switcharoo instructions](https://www.reddit.com/r/switcharoo/wiki/index#wiki_how_to_submit_a_roo).\n\nAdditionally, right now, roos older than March 2021 are given a pass\n\n  * For improperly marking context\n  * For linking to roos later removed by AutoModerator\n  \nAnd roos older than March 2019 are given an additional pass\n\n  * For linking the wrong comment in the thread\n\nThese errors are abundant and trying to fix all of them would be a massive headache. An approach of \"if it isn't too \nbroke, don't fix it\" has been adopted for these old roos.\n\n## Setup/Running\n\nCreate a file called `credentials.ini` in the root directory of this project \nand in it place the following:\n```ini\n[general]\nmode = development|production\noperator = reddit_username\ndry_run = False\naward = True\n\n[reddit]\nclient_id = client-id\nclient_secret = client-secret\nusername = bot_username\npassword = password\n\n[database]\ntype = mysql|sqlite\nhost = hostname|ip\nusername = username\npassword = password\ndatabase = database\n```\n\nThis bot currently runs under the user account /u/switcharoohelper\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmdevita%2Fswitcharoohelper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmdevita%2Fswitcharoohelper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmdevita%2Fswitcharoohelper/lists"}