{"id":29152977,"url":"https://github.com/bytedice/bytediceassistant","last_synced_at":"2026-04-28T10:36:08.228Z","repository":{"id":299981745,"uuid":"924197752","full_name":"ByteDice/ByteDiceAssistant","owner":"ByteDice","description":"An automation tool for Byte Dice. It's both a Discord and Reddit bot in one program.","archived":false,"fork":false,"pushed_at":"2026-03-05T13:34:55.000Z","size":315,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-05T13:39:10.598Z","etag":null,"topics":["automation","bytedice","discord","discord-bot","discord-rust","praw","praw-reddit","reddit","reddit-bot","reddit-scraper","super-epic-cool-awesome-stuff"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ByteDice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-29T15:35:28.000Z","updated_at":"2026-02-28T13:03:27.000Z","dependencies_parsed_at":"2025-06-19T09:24:30.131Z","dependency_job_id":"e8a7da78-5004-4c9e-ae64-cf6653624636","html_url":"https://github.com/ByteDice/ByteDiceAssistant","commit_stats":null,"previous_names":["bytedice/bytediceassistant"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ByteDice/ByteDiceAssistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteDice%2FByteDiceAssistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteDice%2FByteDiceAssistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteDice%2FByteDiceAssistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteDice%2FByteDiceAssistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ByteDice","download_url":"https://codeload.github.com/ByteDice/ByteDiceAssistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteDice%2FByteDiceAssistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32377587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T09:24:15.638Z","status":"ssl_error","status_checked_at":"2026-04-28T09:24:15.071Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["automation","bytedice","discord","discord-bot","discord-rust","praw","praw-reddit","reddit","reddit-bot","reddit-scraper","super-epic-cool-awesome-stuff"],"created_at":"2025-07-01T01:04:00.069Z","updated_at":"2026-04-28T10:36:08.215Z","avatar_url":"https://github.com/ByteDice.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- If for some reason you're reading this without MD formatting - please disable word-wrap for your own good. --\u003e\n# ByteDiceAssistant\n![](/BDA_icon_64x64.png)\\\nAn automation tool primarily made for myself (Byte Dice) but publicly available for anyone to use. It's both a Discord and Reddit bot in one program.\n\n\u003e [!CAUTION]\n\u003e This tool is not intended for public use outside of the official *Byte Dice Assistant* bots. Expect issues if you host this yourself.\\\n\u003e This tool is only designed to run on Windows (10 and 11) and XUbuntu (24.04 and above) and may not work on any other OS.\n\n\u003e [!NOTE]\n\u003e This bot \u003cins\u003enever modifies any Reddit content\u003c/ins\u003e. All it does and will ever do is read/scrape.\n\u003e The data will never be sold and will only be shared with permission from subreddit moderators.\n\n## Open-source - Copyright\n\n**ByteDiceAssistant © 2025 by Byte Dice is licensed under CC BY-NC-SA 4.0.**\\\n**You can learn more about copyright by reading the full [license](/LICENSE.txt).**\n\n## Commands\n\n| Name                   | Category | Description                                                                                                                                                         |\n| -----------------------| -------- | --------------------------------------------------------------------                                                                                                |\n| `help`                 | help     | Sends a help menu.                                                                                                                                                  |\n| `8_ball`               | fun      | Sends a random answer to a prompt.                                                                                                                                  |\n| `add_server`           | admin    | Adds your server to the bots database for storage (no data is sold).                                                                                                |\n| `embed`                | owner    | Creates an embed (requires `ASSISTANT_OWNERS` for security reasons).                                                                                                |\n| `ping`                 | fun      | Makes the bot reply with \"pong\" or a custom message.                                                                                                                |\n| `send`                 | owner    | Sends a message (requires `ASSISTANT_OWNERS` for security reasons).                                                                                                 |\n| `stop`                 | owner    | Stops the bot (requires `ASSISTANT_OWNERS` for security reasons).                                                                                                   |\n| ---------------------- | -------- | --------------------------------------------------------------------                                                                                                |\n| `admin_re_bindchannel` | admin    | Sets the channel the command was run in as the one where `re_updatediscord` dumps information. This command is required for any of the other \"re\" commands to work. |\n| `re_addpost`           | re       | Adds a post to the database.                                                                                                                                        |\n| `re_approvepost`       | re       | Flags a post in the database as approved.                                                                                                                           |\n| `re_getpost`           | re       | Sends information about a post in the database.                                                                                                                     |\n| `re_removepost`        | re       | \"Removes\" a post from the database (It actually only flags it as removed).                                                                                          |\n| `re_shorturl`          | re       | Converts a long URL `https://www.reddit.com/r/SUBREDDIT/comments/POST_ID/POST_TITLE/` to a short one `https://redd.it/POST_ID`.                                     |\n| `re_topposts`          | re       | Sends the top posts in a category (such as upvotes). The posts have to be within the database.                                                                      |\n| `re_updatediscord`     | re       | Dumps the entire database (with a few restrictions) in the `admin_re_bindchannel` channel.                                                                          |\n| `re_vote`              | re       | Adds a vote (separate from Reddit upvotes) to a post. Use votes however you'd like.                                                                                 |\n\n## How to run\n### Dependencies:\n\nThis program uses Rust (v1.82.0) and Python (v3.11.4), you can likely use other versions if they are compatible.\\\nIt is required to install all used Python modules. You can find those in [req.txt](/req.txt). Installation instructions are in the *How to start the program* section.\n\n### Environment variables:\n| **Name**               | **Description**                                                                                                                                                                                                                                         |\n| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `ASSISTANT_TOKEN`      | The Discord bot token. (Create a Discord bot [here](https://discord.com/developers/docs/intro)!)                                                                                                                                                        |\n| `ASSISTANT_TOKEN_TEST` | (Optional) A testing Discord bot token. This is only needed when the program is run with `-t` or `--test`.                                                                                                                                              |\n| `ASSISTANT_R_ID`       | The id for the Reddit bot/account. (Create a Reddit bot [here](https://www.reddit.com/prefs/apps)!)                                                                                                                                                     |\n| `ASSISTANT_R_TOKEN`    | The token for the Reddit bot/account.                                                                                                                                                                                                                   |\n| `ASSISTANT_R_NAME`     | The username of the Reddit bot/account.                                                                                                                                                                                                                 |\n| `ASSISTANT_R_PASS`     | The password for the Reddit bot/account.                                                                                                                                                                                                                |\n| `ASSISTANT_OWNERS`     | (OPTIONAL) A list of Discord user IDs that \"own\" the bot. Separate each ID with a single comma and **no** spaces. This will allow the specified user IDs to run root commands such as `/stop`, it will also DM these users when *certain* errors occur. |\n| `ASSISTANT_BK_MODS`    | (OPTIONAL) Same format as `ASSISTANT_OWNERS` but for people who are allowed to use the `/re_*` commands.                                                                                                                                                |\n\n### Required permissions:\n**These are automatically set if you use the [official invite link](https://discord.com/oauth2/authorize?client_id=1212127255795335208\u0026permissions=84992\u0026integration_type=0\u0026scope=bot) or an invite link with the permissions integer set to `84992`.** (The permission integer is this part of the URL `\u0026permissions=84992`)\n* Create Invites\n* Embed Links\n* Read Message History\n* Send Messages\n* View Channels\n\n### Configuration:\nYou can find config files in the [cfg/](cfg/) folder. You can also find the default configs in the [data/defaults/cfg_default.toml](data/defaults/cfg_default.toml) file.\\\n**NOTE:** Some config files are automatically generated, and you will need to run the app once for them to generate.\n\n### How to start the program:\n#### Short answer for experienced people:\n* Download the code.\n* Set the environment variables (listed above).\n* Restart the terminal.\n* Navigate to the project root directory.\n* Install all Python modules. (`pip install -r req.txt`)\n* Run with `cargo run`. \n  * Alternatively, run `cargo run -- {args here}` to add args.\n  * For help, run `cargo run -- -h` or `cargo run -- --help`.\n  * To only run the Python part, use `cargo run -- --py`, or for a better error output, `python ./src/python/main.py`\n\n#### Long answer for beginners:\n* Download the code (and extract it if needed).\n* Open a terminal.\n* Set the environment variables (listed above).\n* Run `setx VARIABLE_NAME \"value in quotes\"` in a terminal. (WINDOWS ONLY)\n* Restart the terminal if you added/changed the environment variables.\n* Run `$ cd path/to/extracted/folder`.\n* Run `$ cargo run`. You can view a list of options by running `$ cargo run -- --help` or `$ cargo run -- -h`.\n  * If you only want to run the Python code, you can either run `$ cargo run -- --py`, or `$ python ./src/python/main.py`. The second option is recommended for better performance.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedice%2Fbytediceassistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytedice%2Fbytediceassistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedice%2Fbytediceassistant/lists"}