{"id":15707141,"url":"https://github.com/andrewda/frc-slack-bot","last_synced_at":"2026-02-12T10:03:38.672Z","repository":{"id":138526827,"uuid":"67183550","full_name":"andrewda/frc-slack-bot","owner":"andrewda","description":"A Slack bot for FRC teams","archived":false,"fork":false,"pushed_at":"2016-09-25T19:22:55.000Z","size":30,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-12T19:49:01.298Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/andrewda.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-02T02:36:12.000Z","updated_at":"2022-08-16T06:03:15.000Z","dependencies_parsed_at":"2023-04-05T13:07:34.358Z","dependency_job_id":null,"html_url":"https://github.com/andrewda/frc-slack-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andrewda/frc-slack-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewda%2Ffrc-slack-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewda%2Ffrc-slack-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewda%2Ffrc-slack-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewda%2Ffrc-slack-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewda","download_url":"https://codeload.github.com/andrewda/frc-slack-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewda%2Ffrc-slack-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266640830,"owners_count":23960809,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":"2024-10-03T20:37:16.556Z","updated_at":"2026-02-12T10:03:33.653Z","avatar_url":"https://github.com/andrewda.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FRC Slack bot\n\n## Introduction\n\nFRC Slack Bot is a bot originally created for the [South Eugene Robotics Team](https://github.com/SouthEugeneRoboticsTeam) Slack server. It was made to be highly customizable to fit the needs of any team.\n\n## Customization\n\nCustomizing the FRC Slack Bot couldn't be easier. You can customize everything - from high-level Plugins which handle commands to low-level Listeners which listen for server events.\n\n### Custom Plugins\n\nPlugins can be created and customized to handle commands. Commands may be something obvious such as \"/echo\" or \"!echo\", but may also be something more subtle, such as adding a reaction to a message.\n\nCommand files are named by their base command, so if you're creating a \"!echo\" command, the file would be named \"echo.js\".\n\nAn example Plugin can be found below:\n\n```javascript\nmodule.exports = {\n\tconfig: {\n\t\tname: 'Echo',\n\t\tdescription: 'Echo the user',\n\t\tcommand: 'echo',\n\t\tsyntax: '\u003cmessage\u003e',\n\t\ttest: true\n\t},\n\tmain: function(plugin, events) {\n\t\tconsole.log('Plugin Loaded:', plugin.getName(), '-', plugin.getDescription());\n\n\t\tevents.on('message', function(msg) {\n\t\t\tplugin.rtm.sendMessage(plugin.stripCommand(msg.text), msg.channel);\n\t\t});\n\t}\n};\n```\n\nConfig options:\n\n- `name`: **[required]** The plugin's name\n- `description`: **[required]** The plugin's description\n- `command`: The command to trigger the plugin\n- `syntax`: The command's syntax\n- `test`: `true` to emit only messages with the correct command and syntax (default `true` when `command` is defined)\n\nPlugin parameters:\n\n- `plugin`: An instance of SlackBot (found in ../lib/index.js)\n- `events`: An EventEmitter object\n\n### Custom Listeners\n\nListeners must be named after the event they listen for. For example, the file below is named \"message.js\" and listens for the \"message\" event. When the event is fired, it will use this function instead of defaulting to a simply emitting the message.\n\nTo access `rtm`, `config`, etc., you may reference `this` as all listeners will be executed using the parent scope. \n\n```javascript\nmodule.exports = function(message) {\n\tvar identifier = '\u003c@' + this.config.slack.botid + '\u003e'\n\tif (message.text \u0026\u0026 message.text.split(' ')[0] === identifier) {\n\t\tmessage.text = message.text.replace(identifier, '').trim();\n\n\t\tif (this.pluginConfig.test || !this.getCommand()) {\n\t\t\tif (this.testCommand(message.text)) {\n\t\t\t\tif (this.testSyntax(message.text)) {\n\t\t\t\t\tthis.events.emit('message', message);\n\t\t\t\t} else {\n\t\t\t\t\tthis.rtm.sendMessage(this.getSyntaxMessage(), message.channel);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.events.emit('message', message);\n\t\t}\n\t}\n};\n```\n\nListener parameters:\n\n- `message`: A standard Slack message object\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewda%2Ffrc-slack-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewda%2Ffrc-slack-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewda%2Ffrc-slack-bot/lists"}