{"id":20342250,"url":"https://github.com/shakotn/orion_bot","last_synced_at":"2025-10-30T13:20:07.953Z","repository":{"id":110357687,"uuid":"92397396","full_name":"SHAKOTN/orion_bot","owner":"SHAKOTN","description":"Slack bot","archived":false,"fork":false,"pushed_at":"2019-01-10T12:19:32.000Z","size":82,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T19:37:12.750Z","etag":null,"topics":["bot","chat","chatbot","games","overwatch","overwatch-api","parser","python","python-3-6","slack","slack-bot","slackapi","slackbot","websocket","websockets"],"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/SHAKOTN.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-05-25T11:35:37.000Z","updated_at":"2022-03-10T14:30:34.000Z","dependencies_parsed_at":"2023-03-13T13:55:11.559Z","dependency_job_id":null,"html_url":"https://github.com/SHAKOTN/orion_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/SHAKOTN%2Forion_bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SHAKOTN%2Forion_bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SHAKOTN%2Forion_bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SHAKOTN%2Forion_bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SHAKOTN","download_url":"https://codeload.github.com/SHAKOTN/orion_bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248497902,"owners_count":21113982,"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","chat","chatbot","games","overwatch","overwatch-api","parser","python","python-3-6","slack","slack-bot","slackapi","slackbot","websocket","websockets"],"created_at":"2024-11-14T21:32:37.242Z","updated_at":"2025-10-30T13:20:07.857Z","avatar_url":"https://github.com/SHAKOTN.png","language":"Python","readme":"\u003ch2\u003eThis is a simple Slack Bot with plugins!\u003c/h2\u003e\n\nNOTE: This bot is single-threaded since I am too lazy to update the project with `ThreadPoolExecutor` for concurrent IO.\n\nThis bot is ready to be deployed to Heroku (Procfile and requirements.txt are created and filled).\nIf you want to use celery and write your own tasks for it add to Procfile:\n```bash\nworker: celery worker --app=bot.celery.app\n```\n\nAvailable plugins right now:\n- Overwatch: Statistics, hero stats etc\n- Notes: Create, edit and share notes with your slackmates in channels\n- Weather: Ask bot to print the weather of the city\n- File storage(files): Store your files in dropbox\n- Some news plugins (IGN, etc)\n- SoundCloud: *coming soon*\n\n**NOTE**: You can remove plugins from *plugins/* directory if you don't want to use them.\n\nAll you need to do is to specify these ENV_VARIABLES:\n- BOT_ID : Your slackbot ID\n- REGION : EU/US (for overwatch plugin: if you don't use it - just skip this)\n- APIXU_API_KEY: Weather service token(Apixu). This is very friendly and free to use service.\nJust skip this if you don't want to use weather plugin\n- SLACK_BOT_TOKEN : You can obtain it on web.slack.com\n- DROPBOX_TOKEN: Dropbox app token for *files* plugin\n- ENV : set to *development* if you don't have redis and want to use local memory.\nSet to *production* if you want to use your redis to store data from plugins\n- REDIS_URL: Redis URL if you set ENV to *production*\n- CELERY_ENABLED: Set value to 1 if you want to use celery and also-\n- AMQP_URL: for celery too\n- NEWS_API_KEY: if you want to use news plugins (https://newsapi.org/)\n\nIf you want to run it locally - just clone repo, specify ENV variables and make:\n```bash\npython bot/core.py\n```\n\n\u003ch3\u003eWriting your own task to schedule some bot jobs\u003c/h3\u003e\n\n**NOTE** Use celery with AMQP Broker for it\nFor example you want to post to your channel random file\nfrom you storage using `files` plugin periodically:\n```python\n# file: bot/tasks.py\n\n@app.task\ndef post_random_webm():\n    files_cls = import_string(files_cls_str)\n    files_plugins = [\n        p for p in slack_backend.plugins\n        if isinstance(p, files_cls)\n    ]\n    file_plugin = files_plugins[0]\n\n    file_plugin.randomize('games')\n```\nAnd then you just add it to celerybeat cron jobs:\n```python\n# file bot/celery.py\n\n@app.on_after_configure.connect\ndef add_periodic(**kwargs):\n    from bot.tasks import post_random_webm\n    app.add_periodic_task(\n        crontab(minute=0,\n                hour='7,8,9,10,11,12,13,14,15,16,17,18'),\n        post_random_webm.s(),\n        name='Post random WEBM'\n    )\n\n```\n\n\n\u003ch1\u003eExamples of plugins\u003c/h1\u003e\n\n\u003ch2\u003e Overwatch Plugin\u003c/h2\u003e\n\n![Alt text](http://i.imgur.com/IgMcsWM.png \"Overwatch stats\")\n\n![Alt text](http://i.imgur.com/ZgiwDYY.png \"Overwatch hero stats\")\n\n\u003ch2\u003e Notes plugin \u003c/h2\u003e\n\n![Alt text](http://i.imgur.com/jrYDjiG.png \"Notes \")\n\n![Alt text](http://i.imgur.com/jo3VpZH.png \"Show note\")\n\n\u003ch2\u003e Storage plugin \u003c/h2\u003e\n\n\u003ch3\u003e Works good with .webm, .jpeg, .png \u003c/h3\u003e\n\n![Alt text](http://i.imgur.com/8IMW49n.png \"Show file\")\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakotn%2Forion_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshakotn%2Forion_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakotn%2Forion_bot/lists"}