{"id":19478392,"url":"https://github.com/rpcs3/discord-bot","last_synced_at":"2025-10-06T02:57:48.876Z","repository":{"id":21983176,"uuid":"94645102","full_name":"RPCS3/discord-bot","owner":"RPCS3","description":"Source code for RPCS3's Discord bot.","archived":false,"fork":false,"pushed_at":"2025-09-20T09:02:07.000Z","size":8904,"stargazers_count":65,"open_issues_count":22,"forks_count":44,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-20T11:21:50.743Z","etag":null,"topics":["discord-bot","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://rpcs3.net/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RPCS3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2017-06-17T19:36:54.000Z","updated_at":"2025-09-20T09:02:10.000Z","dependencies_parsed_at":"2024-04-13T15:06:13.440Z","dependency_job_id":"7b417c75-9433-4642-8db6-0478e7f41ab1","html_url":"https://github.com/RPCS3/discord-bot","commit_stats":{"total_commits":2203,"total_committers":34,"mean_commits":64.79411764705883,"dds":0.09396277802995912,"last_synced_commit":"09aedeb56fcf794bb4e5fb556ea1da585149c798"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RPCS3/discord-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RPCS3%2Fdiscord-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RPCS3%2Fdiscord-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RPCS3%2Fdiscord-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RPCS3%2Fdiscord-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RPCS3","download_url":"https://codeload.github.com/RPCS3/discord-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RPCS3%2Fdiscord-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278551483,"owners_count":26005389,"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-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["discord-bot","hacktoberfest"],"created_at":"2024-11-10T19:49:40.265Z","updated_at":"2025-10-06T02:57:48.870Z","avatar_url":"https://github.com/RPCS3.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"RPCS3 Compatibility Bot\n=======================\n\n[![Build Status](https://github.com/RPCS3/discord-bot/actions/workflows/dotnet.yml/badge.svg)](https://github.com/RPCS3/discord-bot/actions/workflows/dotnet.yml) [![RPCS3 discord server](https://discordapp.com/api/guilds/272035812277878785/widget.png)](https://discord.me/rpcs3)\n\nThis is a tech support / moderation / crowd entertainment bot for the [RPCS3 discord server](https://discord.me/rpcs3).\n\nYou can read the design and implementation notes by visiting the folders in the web interface, or from the [architecture overview notes](architecture.md).\n\nDevelopment Requirements\n------------------------\n* [.NET 9.0 SDK](https://dotnet.microsoft.com/download) or newer\n* Any text editor, but here are some recommends:\n  * [Visual Studio](https://visualstudio.microsoft.com/) (Windows, has free Community edition)\n  * [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free)\n  * [JetBrains Rider](https://www.jetbrains.com/rider/) (cross-platform, free for Non-Commercial use)\n\nRuntime Requirements\n--------------------\n* [.NET 9.0 SDK](https://dotnet.microsoft.com/download) or newer to run from sources\n  * Bot needs `dotnet` command to be available (i.e. alias for the Snap package)\n  * OCR on Linux requires the following dependencies to be installed: `libarchive.so.13`, `liblept.so.5`, `libtiff.so.5`\n    * On Ubuntu 24.04 this is provided by the following packages:\n      ```sh\n      sudo apt install libarchive13t64 liblept5\n      wget https://archive.ubuntu.com/ubuntu/pool/main/t/tiff/libtiff5_4.3.0-6_amd64.deb\n      sudo dpkg -i ./libtiff5_4.3.0-6_amd64.deb\n      ```\n* Optionally Google API credentials to access Google Drive:\n  * Create new project in the [Google Cloud Resource Manager](https://console.developers.google.com/cloud-resource-manager)\n  * Select the project and enable [Google Drive API](https://console.developers.google.com/apis/library/drive.googleapis.com)\n  * Open [API \u0026 Services Credentials](https://console.developers.google.com/apis/credentials)\n  * Create new credentials:\n    * **Service account** credentials\n    * New service account\n      * if you select an existing account, **new** credentials will be generated **in addition** to previous any ones\n    * Role **Project \u003e Viewer**\n    * Key type **JSON**\n    * **Create** will generate a configuration file\n  * Save said configuration file as `credentials.json` in [user secrets](https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-5.0#how-the-secret-manager-tool-works) folder\n    * e.g on Linux this will be `~/.microsoft/usersecrets/c2e6548b-b215-4a18-a010-958ef294b310/credentials.json`\n\nHow to Build\n------------\n* Change configuration for test server in `CompatBot/Properties/launchSettings.json`\n* Note that token could be set in the settings _or_ supplied as a launch argument (higher priority)\n* If you've changed the database model, add a migration\n    * `$ dotnet tool install --global dotnet-ef` (if you have never installed the tools before)\n\t* `$ cd CompatBot`\n\t* `$ dotnet ef migrations add -c [BotDb|ThumbnailDb] MigrationName`\n\t* `$ cd ..`\n* `$ cd CompatBot`\n* `$ dotnet run [token]`\n\nHow to Run in Production\n------------------------\n\n### Running from source\n* Change configuration if needed (probably just token):\n  * use `$ dotnet user-secrets set Token \u003cyour_token_here\u003e`\n  * for available configuration variables, see [Config.cs](CompatBot/Config.cs#L31)\n* Put `bot.db` in `CompatBot/` if you have one\n* `$ cd CompatBot`\n* `$ dotnet run -c Release`\n\n### Running with Docker\n* Official image is hosted on [Docker Hub](https://hub.docker.com/r/rpcs3/discord-bot).\n* You should pull images tagged with `release-latest` (same thing as `latest`)\n* Please take a look at the [docker-compose.yml](docker-compose.example.yml) for required configuration (bot token and mounting points for persistent data).\n\nExternal resources that need manual updates\n-------------------------------------------\n* [Unicode Confusables](http://www.unicode.org/Public/security/latest/confusables.txt), for Homoglyph checks\n* [Windows Error Codes](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/), for error decoding on non-Windows host\n* [CPU Tier List](https://rpcs3.net/cputierlist), for CPU model ranking\n* Optionally pool of names (one name per line), files named as `names_\u003ccategory\u003e.txt`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpcs3%2Fdiscord-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frpcs3%2Fdiscord-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpcs3%2Fdiscord-bot/lists"}