{"id":16227898,"url":"https://github.com/shiryel/ryush-bot","last_synced_at":"2026-02-12T11:50:33.420Z","repository":{"id":128817544,"uuid":"299179355","full_name":"shiryel/ryush-bot","owner":"shiryel","description":":sparkles: Ryush is a discord bot specialized on automated tasks","archived":false,"fork":false,"pushed_at":"2022-03-29T06:36:16.000Z","size":13657,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-31T22:36:28.707Z","etag":null,"topics":["bot","discord","discord-bot","elixir","ryush-bot","ryush-discord-bot"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shiryel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-09-28T03:42:34.000Z","updated_at":"2022-03-29T05:18:19.000Z","dependencies_parsed_at":"2023-05-20T23:15:43.135Z","dependency_job_id":null,"html_url":"https://github.com/shiryel/ryush-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shiryel/ryush-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiryel%2Fryush-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiryel%2Fryush-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiryel%2Fryush-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiryel%2Fryush-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shiryel","download_url":"https://codeload.github.com/shiryel/ryush-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiryel%2Fryush-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29365251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","discord","discord-bot","elixir","ryush-bot","ryush-discord-bot"],"created_at":"2024-10-10T12:54:07.993Z","updated_at":"2026-02-12T11:50:33.404Z","avatar_url":"https://github.com/shiryel.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 𝘙𝘺𝘶𝘴𝘩\n[![Twitter](https://img.shields.io/twitter/follow/shiryel_.svg?style=social)](https://twitter.com/shiryel_)\n\nRyush is a discord bot under construction\n\n\u003cimg src=\"assets/ryush.png\" alt=\"Ryush profile pic\" height=\"400\"\u003e\n\n## How to use\n\n### ⚡ [First click here to invite the bot to your server](https://discord.com/api/oauth2/authorize?client_id=764685221756796959\u0026permissions=26688\u0026scope=bot)\n\nThe permissions that he needs:\n- Send Messages\n- Manage Messages\n- Embed Links\n- Add Reactions\n\nThen you can use `!help` or `@Ryush help` to see the comands\n\n**To change the prefix use `!change_prefix` or `@Ryush change_prefix`**\n\nThe permissions for each `managed command` can be configured by a administrator\n\n## Code structure\n\nFor making this bot scalable, its used a **BUNCH** of dynamic supervisioned processes (powered by erlang 😝), it works, but needs caution when changing stuff, mainly because its use a Mnesia DB to keep the process state per node!\n\nSo, you probably is wandering what is the flux, well... its like that:\n\n### Discord\n\n``` \nAPI --\u003e WebSocket --\u003e Guild --\u003e GuildTalk[command] --\u003e Connection\n                        |             |--\u003e GuildFlow[command] --\u003e Connection\n                        |             |--\u003e GuildEmojer --\u003e Connection\n                        v\n                    GuildEmojer --\u003e Connection\n```\n\n- `API` is the discord API\n- `WebSocket` is the discord bot websocket connection\n- `Guild` is a `GenServer` that keeps a guild state\n- `GuildTalk` is a `GenServer` that keeps a talk with a user on a channel\n- `GuildFlow` is a `GenServer` that keeps a command running on a channel\n- `GuildEmojer` is a `GenServer` that handles puting emojis on the bot messages\n- `Connection` is just a layer to use the discord API with the internal `Guild` struct\n\n## Docs\n\nYou can generate the docs with `mix docs` and then access the index.html from your browser!\n\n## How to test\n\nIf you want to add new feature for your friends, you can change the code and then with elixir and the phoenix framework installed you can run:\n```\nexport BOT_TOKEN=\"you discord bot_token here\"\n\n# start postgres container\npodman run -d -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres\n\nmix deps.get\nmix ecto.setup\nmix phx.server\n```\n\nNow you can test your bot on your discord and visit [`localhost:4000/dashboard`](http://localhost:4000/dashboard) to see the bot dashboard\n\n# Legal Stuff\n\n## Software License\n\nGive credit where credit is due. If you wish to use my code in a project, please credit me. \nJust don't blatantly copy it or refrain from crediting.\n\n    Ryush, a bot for doing fun stuff\n    Copyright (C) 2020 Shiryel\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published\n    by the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n[The full license can be found here](https://github.com/shiryel/ryush-bot/blob/master/LICENSE)\n\n## Artwork License\n\nThe artwork for this project (more specificaly the Ryush profile picture) is licensed under \n\n    Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)\n    Copyright (C) 2020 Shiryel\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiryel%2Fryush-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshiryel%2Fryush-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiryel%2Fryush-bot/lists"}