https://github.com/sunniesnow/lyricat
a Discord bot that provides querying service for things related to the game Lyrica
https://github.com/sunniesnow/lyricat
discord-bot discordrb docker-compose docker-image ruby ruby-app
Last synced: about 1 month ago
JSON representation
a Discord bot that provides querying service for things related to the game Lyrica
- Host: GitHub
- URL: https://github.com/sunniesnow/lyricat
- Owner: sunniesnow
- License: agpl-3.0
- Created: 2023-12-30T01:27:03.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-03-19T06:30:46.000Z (about 2 months ago)
- Last Synced: 2026-03-19T23:32:33.501Z (about 2 months ago)
- Topics: discord-bot, discordrb, docker-compose, docker-image, ruby, ruby-app
- Language: Ruby
- Homepage:
- Size: 124 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lyricat
Lyricat is a Discord bot that provides querying service for things related to the game Lyrica.
## Deploy
Follow the steps.
1. Clone this repo and run `bundle install`.
2. Use [AssetRipper](https://github.com/AssetRipper/AssetRipper)
to extract [Lyrica's APK](https://apkcombo.com/lyrica/com.Rnova.lyrica/download/apk).
Specify the paths to useful files in `config.yml`
or copy the useful files to the paths specified in `config.yml`.
3. Specify every required environment variables. See [environment variables](#environment-variables).
4. Copy `config.yml` to the dir specified by `LYRICAT_DATA_DIR`.
5. Run `ruby main.rb`.
### Environment variables
| Name | Description |
|-|-|
| `LYRICAT_DATA_DIR` | The dir containing database and config files. Defaults to `./data`. |
| `LYRICAT_RES_DIR` | The dir containing resource files. The base dir of items in `res` in config. Defaults to `./res`. |
| `LYRICAT_CONFIG` | The path to config file. Relative to `LYRICAT_DATA_DIR`. Defaults to `config.yml`. |
| `LYRICAT_DAN` | The path to the file specifying dan courses. Relative to `LYRICAT_DATA_DIR`. Defaults to `dan.yml`. |
| `LYRICAT_ALIASES` | The path to the file specifying aliases. Relative to `LYRICAT_DATA_DIR`. Defaults to `aliases.yml`. |
| `LYRICAT_THREAD_COUNT` | The number of threads to use for parallel HTTP requests. Defaults to 8. |
| `LYRICAT_RETRY_COUNT` | The number of retries when communicating with Lyrica's server. Defaults to 3. |
| `LYRICAT_STATIC_SESSION_TOKEN` | (Required) The session token used to retrieve leaderboards. |
| `LYRICAT_DISCORD_TOKEN` | (Required) The Discord bot token. |
| `LYRICAT_DISCORD_MAINTAINER_ID` | The Discord user ID of the maintainer. |
| `LYRICAT_SKIP_COMMAND_REGISTRATION` | Skip command registration. Command registration is necessary for a new bot or when there is command update, but it makes startup very slow. Defaults to false. |
## Docker deploy
1. Download `docker-compose.yml.example` and rename it to `docker-compose.yml`.
2. Download `data/config.yml` and put it in the `data` dir
(specified in the volume mapping in `docker-compose.yml`).
3. Specify every required environment variables in `docker-compose.yml`.
4. Use AssetRipper to extract Lyrica's APK, and put the useful files in the `res` dir
(specified in the volume mapping in `docker-compose.yml`).
5. Run `docker compose up -d`.
If you want to build the image yourself,
clone this repo and rename `docker-compose.yml.example` to `docker-compose.yml`.
Change `image: ulysseszhan/lyricat:latest` to `build: .`.
Run `docker compose build`.
### Updating
Simply run `docker compose pull && docker compose up -d`.
### Migrating
Simply copy over `data.db` in the `data` dir (specified in the volume mapping in `docker-compose.yml`).
## License
AGPL-3.0-only.