{"id":23207289,"url":"https://github.com/dazulu/beetsbot","last_synced_at":"2025-10-15T20:37:52.744Z","repository":{"id":40699821,"uuid":"221551889","full_name":"dazulu/beetsbot","owner":"dazulu","description":"A twitch chat bot based off tmi.js","archived":false,"fork":false,"pushed_at":"2023-01-07T17:08:48.000Z","size":886,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-13T08:24:44.850Z","etag":null,"topics":["bot","tmijs","twitch","twitch-bot"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dazulu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-13T21:07:33.000Z","updated_at":"2021-12-26T13:29:27.000Z","dependencies_parsed_at":"2023-02-07T17:31:17.107Z","dependency_job_id":null,"html_url":"https://github.com/dazulu/beetsbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dazulu/beetsbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dazulu%2Fbeetsbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dazulu%2Fbeetsbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dazulu%2Fbeetsbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dazulu%2Fbeetsbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dazulu","download_url":"https://codeload.github.com/dazulu/beetsbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dazulu%2Fbeetsbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279111825,"owners_count":26106104,"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-10-15T02:00:07.814Z","response_time":56,"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":["bot","tmijs","twitch","twitch-bot"],"created_at":"2024-12-18T17:18:37.326Z","updated_at":"2025-10-15T20:37:52.719Z","avatar_url":"https://github.com/dazulu.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BeetsBot\n\n\u003e A Twitch chat bot\n\n## Features\n\n- [Battle Royale](#battle-royale)\n- [Throw/Catch](#throwcatch)\n- [Random Number](#random-number)\n\n## Setup\n\nWe need to set a few environment variables for the bot to be able to auth and connect to a Twitch channel. These can be included in a _.env_ file, which will be imported.\n\n`BOT_USERNAME`: Username of the bot's Twitch account\n\n`OAUTH_TOKEN`: OAuth token for authentication\n\n`CHANNEL_NAMES`: String delimited list of Twitch Channels to join\n\n```bash\n# Install dependencies\n$ npm install\n\n# Serve with nodemon and babel-node for local development\n$ npm run dev\n\n# Run webpack build for production\n$ npm run build\n\n# Run production app\n$ npm run start\n```\n\n### Configuration\n\nConfigured in `src/config.json`\n\n| Setting         | Type     | Description                                    |\n| --------------- | -------- | ---------------------------------------------- |\n| `commandPrefix` | `string` | The prefix for chat commands e.g. ! or @ or \\$ |\n\n---\n\n## Throw/Catch\n\nA set of commands to enable throwing and catching of a pre-defined item between chat members. There's no hidden depth here. It's just for fun.\n\n![Throw/Catch example](screenshots/throw-catch.jpg 'Throw/Catch example')\n\n```bash\n# To throw an item to be caught\n!throw\n\n# To catch the last item that was thrown\n!catch\n\n# To throw an item at a chat member\n!throw @username\n```\n\n### Configuration\n\nThrow/Catch can be configured in `src/config.json`\n\n| Setting | Type     | Description                  |\n| ------- | -------- | ---------------------------- |\n| `item`  | `string` | Name of the item to be used. |\n\n---\n\n## Battle Royale\n\nAn automated take on the popular Battle Royale genre. For a round, current members of chat are the active players. Players will randomly win 1v1 battles against other random players. There is a small chance a player can eliminate themselves. The last player alive is declared the winner.\n\n![Battle Royale example](screenshots/battle-royale.jpg 'Battle Royale example')\n\n```bash\n# To start Battle Royale from Stream chat\n!br\n```\n\n- There must be 2 or more players and a game not already in progress.\n- The command is **streamer-only**.\n\n### Configuration\n\nBattle Royale can be configured in `src/config.json`\n\n| Setting          | Type     | Description                               |\n| ---------------- | -------- | ----------------------------------------- |\n| `prefix`         | `string` | Chat prefix for the bot messages in chat. |\n| `minMessageWait` | `number` | Min time between actions in _ms_.\\*       |\n| `maxMessageWait` | `number` | Max time between actions in _ms_.         |\n\n_\\*Keep `minMessageWait` upwards of 1000 or the bots messages will get throttled_\n\n---\n\n## Random Number\n\nThis feature asks the bot to pick a random number. By default it rolls between 1 and 100. If you include a number in the command, it will use that number as the max e.g. `!roll 500`.\n\n![random roll example](screenshots/roll.jpg 'random roll example')\n\n```bash\n# To roll between 1 and 100\n!roll\n\n# To roll between 1 and x e.g. !roll 500\n!roll \u003cpositive number\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdazulu%2Fbeetsbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdazulu%2Fbeetsbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdazulu%2Fbeetsbot/lists"}