{"id":18053113,"url":"https://github.com/jcog/goombotio","last_synced_at":"2025-04-10T19:43:02.961Z","repository":{"id":128958105,"uuid":"205471382","full_name":"JCog/goombotio","owner":"JCog","description":"Twitch chatbot","archived":false,"fork":false,"pushed_at":"2025-03-01T02:59:30.000Z","size":1020,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T17:21:22.871Z","etag":null,"topics":["chatbot","twitch"],"latest_commit_sha":null,"homepage":"","language":"Java","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/JCog.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}},"created_at":"2019-08-30T23:48:54.000Z","updated_at":"2025-03-01T02:59:33.000Z","dependencies_parsed_at":"2023-11-07T11:29:36.702Z","dependency_job_id":"b621db33-a06c-4118-97b1-1efca7c96920","html_url":"https://github.com/JCog/goombotio","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/JCog%2Fgoombotio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCog%2Fgoombotio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCog%2Fgoombotio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCog%2Fgoombotio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JCog","download_url":"https://codeload.github.com/JCog/goombotio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248281420,"owners_count":21077423,"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":["chatbot","twitch"],"created_at":"2024-10-30T23:15:53.654Z","updated_at":"2025-04-10T19:43:02.939Z","avatar_url":"https://github.com/JCog.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goombotio\n\nThis is a Twitch bot for use in JCog's channel with the Goombotio account.\n\n## Commands\n\nGoombotio allows moderators to add, remove, modify, and see details for custom commands.\n\n#### Adding Commands\n\n##### Usage\n\n\u003e!addcom `command_name` \"`command response`\"\n\n`command_name` is the name of the command you wish to add. This typically begins with an exclamation point but is not required to.\n\n`command response` is the message you want Goombotio to reply with when the command is called. It must be surrounded with quotation marks. There is no need to escape any quotation marks contained in the response.\n\n##### Example\n\n\u003e!addcom !testing \"this is a test message\"\n\nWhen `!testing` is called, the command will return:\n\n\u003ethis is a test message\n\n#### Editing Commands\n\n##### Usage\n\n\u003e!editcom `command_name` \"`command response`\"\n\n`command_name` is the name of the command you wish to edit\n\n`command response` is the message you want Goombotio to reply with when the command is called. It must be surrounded with quotation marks. There is no need to escape any quotation marks contained in the response.\n\n##### Example\n\n\u003e!editcom !testing \"new test message\"\n\nWhen `!testing` is called, the command will return:\n\n\u003enew test message\n\n#### Deleting Commands\n\n##### Usage\n\n\u003e!delcom `command_name`\n\n`command_name` is the name of the command you wish to delete\n\n##### Example\n\n\u003e!delcom !testing\n\n#### Details\n\n##### Usage\n\n\u003e!comdetails `command_name`\n\n`command_name` is the name of the command you wish to see full details for\n\n##### Example\n\n\u003e!comdetails !testing\n\n#### Advanced Usage\n\n##### User Levels and Cooldowns\n\nWhen adding and editing commands, you can also specify the minimum user level required to execute the command, as well as the command's cooldown time. To do so, add one or both of the arguments below. If adding a new command or editing the message of an old one, the arguments can go before or after the message.\n\n`-c`, `--cooldown` the minimum number of seconds between command uses.\n\n`-l`, `--userlevel` the minimum user level required to use the command, as specified below\n\n##### User Levels\n\n1. **broadcaster**: streamer\n2. **mod**: channel moderator\n3. **vip**: channel VIP\n4. **staff**: Twitch staff\n5. **sub**: channel subscriber\n6. **default**: anyone\n\n##### Examples\n\n\u003e!addcom !testing --cooldown 10 --userlevel vip \"test message\"\n\n\u003e!addcom !testing \"test message\" -c 5\n\n\u003e!editcom !testing -l mod \"new test message\"\n\n\u003e!editcom !testing --cooldown 7 --userlevel default\n\n#### Variables\n\nVariables (and nested variables) can be used within command responses. All variables are of the form:\n\n$(`variable` `argument`)\n\n|               variable | description                                                                                                                                                                 |\n|-----------------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `arg 0`, `arg 1`, etc. | arguments for user input after the command, split by spaces. arguments are zero-indexed. not to be confused with variable arguments.                                        |\n|              `channel` | the streamer's username                                                                                                                                                     |\n|               `choose` | randomly selects a message from a \u003ccode\u003e\u0026#124;\u003c/code\u003e separated list in `argument`                                                                                          |\n|              `command` | returns the result of the command from `argument`. properties such as `count`, userlevel, and cooldown will come from the parent command.                                   |\n|                `count` | the number of times this command has been called. does not increment unless this variable is used                                                                           |\n|                 `eval` | evaluates mathamatical expressions. for example, the output of `$(eval pi^2/e)` would be `3.63`                                                                             |\n|            `followage` | the length of time the user in `argument` has been following the channel                                                                                                    |\n|                `query` | full user input that comes after the command                                                                                                                                |\n|                 `rand` | returns a random integer. `argument` should be a comma-separated, inclusive range                                                                                           |\n|               `touser` | returns the same as `arg 0`, but if there are no user arguments, defaults to the user's username. if `arg 0` starts with '@', returns the substring of `arg 0` without it.  |\n|               `uptime` | the length of time the stream has been online                                                                                                                               |\n|             `urlfetch` | output from a remote url                                                                                                                                                    |\n|                 `user` | the twitch username of the user                                                                                                                                             |\n|               `userid` | the twitch userId of the user                                                                                                                                               |\n|             `weighted` | randomly selects a message from a \u003ccode\u003e\u0026#124;\u003c/code\u003e separated list in `argument`. each message should start with a positive weight, followed by a space, then the message |\n\n## Scheduled Messages\n\nThe !scheduled command allows moderators to add, remove, and modify scheduled messages. Every 20 minutes, as long as\nthere has been chat activity, one message from the pool of messages is posted. The same message will never be posted\ntwice in a row.\n\n#### Adding Scheduled Messages\n\n##### Usage\n\n!scheduled add `message_id` \"`message response`\"\n\n`!message_id` is the name of the message you wish to add\n\n`message response` is the message you want Goombotio to have a chance of displaying. It must be surrounded with\nquotation marks. There is no need to escape any quotation marks contained in the response.\n\n##### Example\n\n!scheduled add testing \"this is a test message\"\n\nIf this message is selected, Goombotio will display:\n\nthis is a test message\n\n#### Editing Scheduled Messages\n\n##### Usage\n\n!scheduled edit `message_id` \"`message response`\"\n\n`message_id` is the name of the message you wish to edit\n\n`message response` is the message you want Goombotio to have a chance of displaying. It must be surrounded with\nquotation marks. There is no need to escape any quotation marks contained in the response.\n\n##### Example\n\n!scheduled edit testing \"new test message\"\n\nIf this message is selected, Goombotio will display:\n\nnew test message\n\n#### Deleting Scheduled Messages\n\n##### Usage\n\n!scheduled delete `message_id`\n\n`message_id` is the name of the message you wish to delete\n\n##### Example\n\n!scheduled delete testing\n\n## Quotes\n\nGoombotio can keep store and respond with quotes it has been given. Only mods can add/edit/delete quotes, but anyone can\ncall !quote and !latestquote.\n\n#### Getting Quotes\n\n!quote `quote_number`\n\nResponds with the quote with the given number. If `quote_number` is not specified, picks a random quote.\n\n!latestquote\n\nResponds with the most recently added quote.\n\n#### Adding Quotes\n\n!addquote \"`quote text`\"\n\nAdds a quote to the quote database. Note that there is no need to add the date at the end as this is done automatically.\n\n#### Editing Quotes\n\n!editquote `quote_number` `new quote text`\n\nEdits the text of the given quote.\n\n#### Deleting Quotes\n\n!delquote `quote_number`\n\nDeletes the given quote. If there are quotes with higher numbers than this one, each one has its value decremented by\none.\n\n#### Undo/Redo\n\n`!undoquote` and `!redoquote`\n\nThis works exactly how you'd expect. If you add, edit, or delete a quote, `!undoquote` will undo that action so that\neverything will be exactly like it was before that action. `!redoquote` will redo anything that has been undone. Up to\n10 actions are kept in memory to be undone/redone.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcog%2Fgoombotio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcog%2Fgoombotio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcog%2Fgoombotio/lists"}