{"id":13758511,"url":"https://github.com/BatedUrGonnaDie/salty_bot","last_synced_at":"2025-05-10T08:30:31.610Z","repository":{"id":15471942,"uuid":"18205327","full_name":"BatedUrGonnaDie/salty_bot","owner":"BatedUrGonnaDie","description":"Twitch chat bot","archived":false,"fork":false,"pushed_at":"2024-04-24T07:19:46.000Z","size":906,"stargazers_count":18,"open_issues_count":4,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-16T15:37:41.836Z","etag":null,"topics":["bot","broadcaster","osu","python","speedrun","srl","streamer","twitch"],"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/BatedUrGonnaDie.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-03-28T08:15:44.000Z","updated_at":"2024-10-13T16:53:59.000Z","dependencies_parsed_at":"2024-08-03T13:01:37.409Z","dependency_job_id":"8e00cfa2-9b2d-4fe9-a686-d53be5342eaf","html_url":"https://github.com/BatedUrGonnaDie/salty_bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BatedUrGonnaDie%2Fsalty_bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BatedUrGonnaDie%2Fsalty_bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BatedUrGonnaDie%2Fsalty_bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BatedUrGonnaDie%2Fsalty_bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BatedUrGonnaDie","download_url":"https://codeload.github.com/BatedUrGonnaDie/salty_bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253389431,"owners_count":21900760,"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","broadcaster","osu","python","speedrun","srl","streamer","twitch"],"created_at":"2024-08-03T13:00:31.554Z","updated_at":"2025-05-10T08:30:31.210Z","avatar_url":"https://github.com/BatedUrGonnaDie.png","language":"Python","funding_links":[],"categories":["Libraries"],"sub_categories":["Python"],"readme":"**WARNING**  \nSalty is currently going through a complete rewrite with a lot of complete\nAPI breaking changes.  If you are basing a bot off of this project functions\nmay change at any time\n\nThe changes that are in the future rewrite have not been tested in any form\nand will not be used until proper tests have been written.  \n**WARNING**\n\nTwitch chat bot with Twitch, Osu, YouTube, SRL, and LoL API integration.\n\nCoded with Python 3.7.  Dependencies are located in requirements.txt.\n\nCommands\n========\n`!commands` will output all of the active commands at the current time.\n\n`!wr \u003cgame shortcode?\u003e \u003ccategory?\u003e` outputs world record for a specific game.  Game and category can either be input by the user or can be implied\nfrom the streamers game and title if they are live.\n\n`!pb \u003cuser?\u003e \u003cgame shortcode?\u003e \u003ccategory?\u003e` the pb for the specified user.  If category and game is omitted it will attempt\nto infer them from the current streamer's game/title.  If user is also omitted it will assume the streamer.\n\n`!leaderboards` will output the game name escaped for speedrun.com leaderboards.\n\n`!race` race/races/racing required in title to use.  Will poll the SRL API to check if the current streamer is in a\nrace, and if so output information about the race, and if the streamer has finished their time and place.\n\n`!splits \u003cuser?\u003e \u003cgame shortcode?\u003e \u003ccategory?\u003e` will retrieve the best splits that you have uploaded to [splits.io](https://splits.io) for a game and\ncategory.  A user, game, and category can be supplied or they can be inferred from the streamer, game, and title.\n\n`!quote`/`!pun` will display a randomly selected quote/pun from a from the database.\n\n`!addqoute`/`!addpun` will add the given quote/pun to a review file so that you can manually move it over later.  If\nthe broadcaster uses this command the quote/pun will go straight into the live file (that means be careful).\n\n`!rank \u003cuser?\u003e` will retrieve the accuracy, pp ranking, level, and username\nof the streamer (or the user specified) on osu.\n\n`!createvote \u003cloose/strict\u003e \"Poll Name\" (option) (if) (strict)` will allow broadcaster to start a poll.  Mods can\nstart polls if the broadcaster has set so in their dashboard.  Loose means people can vote for anything while strict\nmeans you must supply options for the users to vote for.\n\n`!vote \u003coption\u003e` will allow viewers to vote.  If poll is set to strict then viewers must input one of the options set\nby the poll creator.\n\n`!checkvotes` will show what option is currently winning and how many votes it has.\n\n`!endvote` will allow mods or channel host to close the current poll.\n\n`!uptime` will display how long the current stream has been live for.\n\nYou can now make custom commands.  They must be one word commands and only have static text output.  You may also use\nwildcards.  `$sender` and `$param` can be used and replaced with who sent the message and the first word after the\ncommand respectively.\n\nChannel Owner Commands\n======================\n`!blacklist \u003cuser\u003e` adds the supplied user to a blacklist removing their ability to interact with the bot at all.\n\n`!whitelist \u003cuser\u003e` will remove said user from the blacklist.\n\n`!addcom \u003ctrigger\u003e \u003climit\u003e \u003cadmin\u003e \u003coutput\u003e` will add the given custom command to the bot.\n\n`!delcom \u003ctrigger\u003e` will delete the command from the bot.  Please do not include the '!' when specifying a trigger.\n\nPassive Features\n================\nAbility to send you the osu maps posted in chat directly in game (useful if you have osu!direct).\n\nPost the duration, title, uploaded, and views of a youtube video posted in chat (can detect spam this way).\n\nInsult people who don't know who トーボウ is (trigger can be changed to something else).\n\nAbility to output static text every x amount of messages, or x minutes, or both.  This can be useful for\ndifferent links to various social media.\n\nAll commands can be limited to moderators only and each command has its own rate limiting.\n\nRunning Locally\n===============\nCopy the default config file and fill out appropriately, and then rename to `general_config.json`.\nSet up a postgres database with the following [schema](https://github.com/BatedUrGonnaDie/salty_web/blob/master/db/schema.rb).\nIf you want a web interface to change settings then you must follow the set up directions at\n[the web repo](https://github.com/batedurgonnadie/salty_web).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBatedUrGonnaDie%2Fsalty_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBatedUrGonnaDie%2Fsalty_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBatedUrGonnaDie%2Fsalty_bot/lists"}