{"id":21673992,"url":"https://github.com/zabot/advisorbot","last_synced_at":"2025-08-09T04:15:33.629Z","repository":{"id":75148202,"uuid":"84491036","full_name":"Zabot/advisorbot","owner":"Zabot","description":"A slack-bot that answers questions about the CS curriculum at SIUE","archived":false,"fork":false,"pushed_at":"2017-03-10T21:27:41.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T09:42:19.959Z","etag":null,"topics":["chatbot","slack-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Zabot.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":"2017-03-09T21:38:32.000Z","updated_at":"2017-03-10T19:52:43.000Z","dependencies_parsed_at":"2023-03-01T22:31:01.780Z","dependency_job_id":null,"html_url":"https://github.com/Zabot/advisorbot","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/Zabot%2Fadvisorbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabot%2Fadvisorbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabot%2Fadvisorbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabot%2Fadvisorbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zabot","download_url":"https://codeload.github.com/Zabot/advisorbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244583162,"owners_count":20476233,"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","slack-bot"],"created_at":"2024-11-25T13:42:25.011Z","updated_at":"2025-03-20T08:43:25.068Z","avatar_url":"https://github.com/Zabot.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Advisorbot\nAdvisorbot is a chat bot with slack integration designed to provide information about the CS curriculum at Southern Illinois\nUniversity Edwardsville.\n\n## Dependencies\nAdvisorbot uses python3 and [python-slackclient](https://github.com/slackapi/python-slackclient) to communicate with a slack bot.\nInstallation can be done with [PyIP](https://pypi.python.org/pypi). See the slackclient page for more details\n\n    pip install slackclient\n\n## API token\nAdvisorbot also requires an API token to connect to the team. This token can be found on the custom bot integration\npage and must be saved as `api.token` in the same directory as `advisorbot.py`. Anyone that knows this token can\ncontrol the slack bot without further authentication, so it should not be pushed to the repository or shared with\nanyone.\n\n### Running without the API token\nFor testing purposes advisorbot can be run without the slack integration by running `advisorbot_console.py`. Any\ntext on the standard input will be feed through the same procedure as if it had been said to advisorbot by a user,\nand the final response will be written to standard out.\n\n## Adding Responses\nResponses can be added by changing `data/responses.json`. `responses.json` is a list\nof objects containing lists of regular expressions that trigger the responses, and a list of appropriate\nresponses, of which one will be selected at random to be used as the reply. Responses are matched from the top down, the\nfirst match supersedes any other matches (though all will be captured). Responses may have substitution\ntargets indicated by prefixing a word with `$`, e.g. `$target()`. Substitution targets will be replaced by\nthe return value of the function with the same name in `substitutions.py`. Any class numbers found\nin the arguments to a substitution target will be replaced by a reference to the object containing\nthat class' information. The `m[n]` argument will be replaced by the nth class mentioned in the\noriginal message. All other arguments will be passed through to the function in `substitutions.py`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzabot%2Fadvisorbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzabot%2Fadvisorbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzabot%2Fadvisorbot/lists"}