{"id":15519837,"url":"https://github.com/tomaarsen/twitchdialcheck","last_synced_at":"2025-07-14T16:36:41.374Z","repository":{"id":109767069,"uuid":"173773233","full_name":"tomaarsen/TwitchDialCheck","owner":"tomaarsen","description":"Twitch Bot to detect and rate DIAL-in checks.","archived":false,"fork":false,"pushed_at":"2023-05-22T22:30:01.000Z","size":19,"stargazers_count":1,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T20:13:19.257Z","etag":null,"topics":["bot","python","twitch","twitch-bot","twitchbot"],"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/tomaarsen.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":"2019-03-04T15:42:54.000Z","updated_at":"2022-08-15T13:47:15.000Z","dependencies_parsed_at":"2023-06-11T17:45:33.875Z","dependency_job_id":null,"html_url":"https://github.com/tomaarsen/TwitchDialCheck","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tomaarsen/TwitchDialCheck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomaarsen%2FTwitchDialCheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomaarsen%2FTwitchDialCheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomaarsen%2FTwitchDialCheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomaarsen%2FTwitchDialCheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomaarsen","download_url":"https://codeload.github.com/tomaarsen/TwitchDialCheck/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomaarsen%2FTwitchDialCheck/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265319565,"owners_count":23746363,"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","python","twitch","twitch-bot","twitchbot"],"created_at":"2024-10-02T10:23:04.316Z","updated_at":"2025-07-14T16:36:41.332Z","avatar_url":"https://github.com/tomaarsen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TwitchDialCheck\nTwitch Bot to detect and rate DIAL-in checks.\n\n---\n# Note\nThis Bot was written for one streamer in particular, which means this script likely will not be useful to anyone else, but people interested in checking out how I use my [TwitchWebsocket](https://github.com/CubieDev/TwitchWebsocket) library.\n\n---\n# Functionality\nThis Bot will read Twitch chat looking for messages such as \"Dial\", \"dangDial\", \"D I A L\", and so forth.\nTen seconds after the most recent of these messages the bot will output a \"Dial Percentage\" based on this formula:\n\n`trues = amount of DIAL messages`\u003cbr\u003e\n`ratio = trues / total messages found in the span`\u003cbr\u003e\n`percentage = trues / (amount of current viewers / 1.5) * 100`\u003cbr\u003e\n`result = min(percentage * ratio * 10 * 0.9 + 10 + random.uniform(-1, 1), 100)`\n\nIn short, it's a linear formula based on the percentage of chat that was involved in the messages, and the ratio of DIAL messages relative to other messages, ranging from 10% to 100%.\n\n---\n\n# Settings\nThis bot is controlled by a settings.txt file, which looks like:\n```\n{\n    \"Host\": \"irc.chat.twitch.tv\",\n    \"Port\": 6667,\n    \"Channel\": \"#\u003cchannel\u003e\",\n    \"Nickname\": \"\u003cname\u003e\",\n    \"Authentication\": \"oauth:\u003cauth\u003e\"\n}\n```\n\n| **Parameter**        | **Meaning** | **Example** |\n| -------------------- | ----------- | ----------- |\n| Host                 | The URL that will be used. Do not change.                         | \"irc.chat.twitch.tv\" |\n| Port                 | The Port that will be used. Do not change.                        | 6667 |\n| Channel              | The Channel that will be connected to.                            | \"#CubieDev\" |\n| Nickname             | The Username of the bot account.                                  | \"CubieB0T\" |\n| Authentication       | The OAuth token for the bot account.                              | \"oauth:pivogip8ybletucqdz4pkhag6itbax\" |\n\n*Note that the example OAuth token is not an actual token, but merely a generated string to give an indication what it might look like.*\n\nI got my real OAuth token from https://twitchapps.com/tmi/.\n\n---\n\n# Requirements\n* [Python 3.6+](https://www.python.org/downloads/)\n* [Module requirements](requirements.txt)\u003cbr\u003e\nInstall these modules using `pip install -r requirements.txt`\n\nAmong these modules is my own [TwitchWebsocket](https://github.com/CubieDev/TwitchWebsocket) wrapper, which makes making a Twitch chat bot a lot easier.\nThis repository can be seen as an implementation using this wrapper.\n\n---\n\n# Other Twitch Bots\n\n* [TwitchMarkovChain](https://github.com/CubieDev/TwitchMarkovChain)\n* [TwitchAIDungeon](https://github.com/CubieDev/TwitchAIDungeon)\n* [TwitchGoogleTranslate](https://github.com/CubieDev/TwitchGoogleTranslate)\n* [TwitchCubieBotGUI](https://github.com/CubieDev/TwitchCubieBotGUI)\n* [TwitchCubieBot](https://github.com/CubieDev/TwitchCubieBot)\n* [TwitchRandomRecipe](https://github.com/CubieDev/TwitchRandomRecipe)\n* [TwitchUrbanDictionary](https://github.com/CubieDev/TwitchUrbanDictionary)\n* [TwitchRhymeBot](https://github.com/CubieDev/TwitchRhymeBot)\n* [TwitchWeather](https://github.com/CubieDev/TwitchWeather)\n* [TwitchDeathCounter](https://github.com/CubieDev/TwitchDeathCounter)\n* [TwitchSuggestDinner](https://github.com/CubieDev/TwitchSuggestDinner)\n* [TwitchPickUser](https://github.com/CubieDev/TwitchPickUser)\n* [TwitchSaveMessages](https://github.com/CubieDev/TwitchSaveMessages)\n* [TwitchMMLevelPickerGUI](https://github.com/CubieDev/TwitchMMLevelPickerGUI) (Mario Maker 2 specific bot)\n* [TwitchMMLevelQueueGUI](https://github.com/CubieDev/TwitchMMLevelQueueGUI) (Mario Maker 2 specific bot)\n* [TwitchPackCounter](https://github.com/CubieDev/TwitchPackCounter) (Streamer specific bot)\n* [TwitchDialCheck](https://github.com/CubieDev/TwitchDialCheck) (Streamer specific bot)\n* [TwitchSendMessage](https://github.com/CubieDev/TwitchSendMessage) (Meant for debugging purposes)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomaarsen%2Ftwitchdialcheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomaarsen%2Ftwitchdialcheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomaarsen%2Ftwitchdialcheck/lists"}