mirror of
https://github.com/RPCS3/discord-bot.git
synced 2024-11-23 02:09:38 +00:00
Source code for RPCS3's Discord bot.
.github/workflows | ||
Clients | ||
CompatBot | ||
HomoglyphConverter | ||
SourceGenerators | ||
Tests | ||
.cirrus.yml | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
architecture.md | ||
azure-pipelines.yml | ||
CONTRIBUTING.md | ||
discord-bot-net.sln | ||
discord-bot-net.sln.DotSettings | ||
docker-compose.example.yml | ||
Dockerfile | ||
fortunes.txt | ||
LICENSE | ||
metacritic_ps3.json | ||
nuget.config | ||
README.md | ||
SECURITY.md | ||
win32_error_codes.txt |
RPCS3 Compatibility Bot
This is a tech support / moderation / crowd entertainment bot for the RPCS3 discord server.
You can read the design and implementation notes by visiting the folders in the web interface, or from the architecture overview notes.
Development Requirements
- .NET 5.0 SDK or newer
- Any text editor, but here are some recommends:
- Visual Studio (Windows and Mac only, has free Community edition)
- Visual Studio Code (cross-platform, free)
- JetBrains Rider (cross-platform)
Runtime Requirements
- .NET 5.0 SDK or newer to run from sources
- bot needs
dotnet
command to be available (i.e. alias for the Snap package)
- bot needs
- Optionally Google API credentials to access Google Drive:
- Create new project in the Google Cloud Resource Manager
- Select the project and enable Google Drive API
- Open API & Services Credentials
- Create new credentials:
- Service account credentials
- New service account
- if you select an existing account, new credentials will be generated in addition to previous any ones
- Role Project > Viewer
- Key type JSON
- Create will generate a configuration file
- Save said configuration file as
credentials.json
in user secrets folder- e.g on Linux this will be
~/.microsoft/usersecrets/c2e6548b-b215-4a18-a010-958ef294b310/credentials.json
- e.g on Linux this will be
How to Build
- Change configuration for test server in
CompatBot/Properties/launchSettings.json
- Note that token could be set in the settings or supplied as a launch argument (higher priority)
- If you've changed the database model, add a migration
$ dotnet tool install --global dotnet-ef
(if you have never installed the tools before)$ cd CompatBot
$ dotnet ef migrations add -c [BotDb|ThumbnailDb] MigrationName
$ cd ..
$ cd CompatBot
$ dotnet run [token]
How to Run in Production
Running from source
- Change configuration if needed (probably just token):
- use
$ dotnet user-secrets set Token <your_token_here>
- for available configuration variables, see Config.cs
- use
- Put
bot.db
inCompatBot/
if you have one $ cd CompatBot
$ dotnet run -c Release
Running with Docker
- Official image is hosted on Docker Hub.
- You should pull images tagged with
release-latest
(same thing aslatest
) - Please take a look at the docker-compose.yml for required configuration (bot token and mounting points for persistent data).
External resources that need manual updates
- Unicode Confusables, for Homoglyph checks
- Windows Error Codes, for error decoding on non-Windows host
- Optionally Redump disc key database in text format (requires membership)