A Discord bot written in Ruby, originally made for a private Discord community. The name comes from one of the main heroines of Fate/stay night, Tohsaka Rin (遠坂凛).
Rails Web (optional)
Commands (WIP)
Functionality (WIP)
- Enable Privileged Gateway Intents here:
https://discord.com/developers/applications/<id>/bot
- Install Ruby (rbenv recommended for Linux), and MariaDB/MySQL or SQLite3
- Install bundler:
gem install bundler
- Run
cd web && bundle install
andcd ../bot && bundle install
to install required gems.- On Windows, if installing the mysql2 gem fails, install it separately with:
gem install mysql2 -- '--with-mysql-lib="C:\pathto\MariaDB 10.5\lib" --with-mysql-include="C:\pathto\MariaDB 10.5\include"'
- On Windows, if installing the mysql2 gem fails, install it separately with:
- Enter Discord and database credentials to config/credentials.ymc.enc with the following command on Linux:
or on Windows:
EDITOR="nano" rails credentials:edit
Contents example:$env:EDITOR="notepad" rails credentials:edit
secret_key_base: xxxxx jwt_secret: JWTSECRET discord: client_id: '000000000000000000' secret: 'BOTSECRET' mysql: username: 'USERNAME' password: 'PASSWORD'
- Database setup
- MariaDB/MySQL
- Use these SQL commands to create user and database for the bot. Remember to change USERNAMEs and PASSWORD.
CREATE USER 'USERNAME'@'localhost' IDENTIFIED BY 'PASSWORD'; CREATE DATABASE IF NOT EXISTS tohsaka CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES on tohsaka.* to 'USERNAME'@'localhost'; FLUSH privileges;
- Run
rails db:migrate RAILS_ENV=prodmysql
- Use these SQL commands to create user and database for the bot. Remember to change USERNAMEs and PASSWORD.
- SQLite3
- Run
rails db:migrate RAILS_ENV=prodsqlite
- Run
- MariaDB/MySQL
- Start the bot with
bundle exec ruby run.rb
. - Bot can be invited to a server with the following URL (change the CLIENT_ID):
https://discordapp.com/oauth2/authorize?client_id=CLIENT_ID&scope=bot&permissions=335924288
Copy docker-compose.example.yml asdocker-compose.yml
~.Edit environmentals TOHSAKABOT_MODE (dev
,test
orprod
) and TOHSAKABOT_DATABASE_TYPE (sqlite
,mariadb
orpgsql
)
YARD files can be generated with: yard
command.
They can be viewed by opening doc/_index.html
in a browser.
Tests can be performed with rspec
command.
- Ruby >= 3.0 supported
- MariaDB / MySQL or SQLite3
- Gems specified in Gemfile
- Using discordrb @ main branch