{"id":47597901,"url":"https://github.com/sunniesnow/lyricat","last_synced_at":"2026-04-01T18:29:35.201Z","repository":{"id":214715150,"uuid":"737149092","full_name":"sunniesnow/lyricat","owner":"sunniesnow","description":"a Discord bot that provides querying service for things related to the game Lyrica","archived":false,"fork":false,"pushed_at":"2026-03-19T06:30:46.000Z","size":127,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-19T23:32:33.501Z","etag":null,"topics":["discord-bot","discordrb","docker-compose","docker-image","ruby","ruby-app"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunniesnow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-12-30T01:27:03.000Z","updated_at":"2026-03-19T06:27:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"60097bb2-4fae-499a-a941-2e758d666ca1","html_url":"https://github.com/sunniesnow/lyricat","commit_stats":null,"previous_names":["sunniesnow/lyricat"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/sunniesnow/lyricat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunniesnow%2Flyricat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunniesnow%2Flyricat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunniesnow%2Flyricat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunniesnow%2Flyricat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunniesnow","download_url":"https://codeload.github.com/sunniesnow/lyricat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunniesnow%2Flyricat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":["discord-bot","discordrb","docker-compose","docker-image","ruby","ruby-app"],"created_at":"2026-04-01T18:29:34.611Z","updated_at":"2026-04-01T18:29:35.187Z","avatar_url":"https://github.com/sunniesnow.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lyricat\n\nLyricat is a Discord bot that provides querying service for things related to the game Lyrica.\n\n## Deploy\n\nFollow the steps.\n\n1. Clone this repo and run `bundle install`.\n2. Use [AssetRipper](https://github.com/AssetRipper/AssetRipper)\nto extract [Lyrica's APK](https://apkcombo.com/lyrica/com.Rnova.lyrica/download/apk).\nSpecify the paths to useful files in `config.yml`\nor copy the useful files to the paths specified in `config.yml`.\n3. Specify every required environment variables. See [environment variables](#environment-variables).\n4. Copy `config.yml` to the dir specified by `LYRICAT_DATA_DIR`.\n5. Run `ruby main.rb`.\n\n### Environment variables\n\n| Name | Description |\n|-|-|\n| `LYRICAT_DATA_DIR` | The dir containing database and config files. Defaults to `./data`. |\n| `LYRICAT_RES_DIR` | The dir containing resource files. The base dir of items in `res` in config. Defaults to `./res`. |\n| `LYRICAT_CONFIG` | The path to config file. Relative to `LYRICAT_DATA_DIR`. Defaults to `config.yml`. |\n| `LYRICAT_DAN` | The path to the file specifying dan courses. Relative to `LYRICAT_DATA_DIR`. Defaults to `dan.yml`. |\n| `LYRICAT_ALIASES` | The path to the file specifying aliases. Relative to `LYRICAT_DATA_DIR`. Defaults to `aliases.yml`. |\n| `LYRICAT_THREAD_COUNT` | The number of threads to use for parallel HTTP requests. Defaults to 8. |\n| `LYRICAT_RETRY_COUNT` | The number of retries when communicating with Lyrica's server. Defaults to 3. |\n| `LYRICAT_STATIC_SESSION_TOKEN` | (Required) The session token used to retrieve leaderboards. |\n| `LYRICAT_DISCORD_TOKEN` | (Required) The Discord bot token. |\n| `LYRICAT_DISCORD_MAINTAINER_ID` | The Discord user ID of the maintainer. |\n| `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. |\n\n## Docker deploy\n\n1. Download `docker-compose.yml.example` and rename it to `docker-compose.yml`.\n2. Download `data/config.yml` and put it in the `data` dir\n(specified in the volume mapping in `docker-compose.yml`).\n3. Specify every required environment variables in `docker-compose.yml`.\n4. Use AssetRipper to extract Lyrica's APK, and put the useful files in the `res` dir\n(specified in the volume mapping in `docker-compose.yml`).\n5. Run `docker compose up -d`.\n\nIf you want to build the image yourself,\nclone this repo and rename `docker-compose.yml.example` to `docker-compose.yml`.\nChange `image: ulysseszhan/lyricat:latest` to `build: .`.\nRun `docker compose build`.\n\n### Updating\n\nSimply run `docker compose pull \u0026\u0026 docker compose up -d`.\n\n### Migrating\n\nSimply copy over `data.db` in the `data` dir (specified in the volume mapping in `docker-compose.yml`).\n\n## License\n\nAGPL-3.0-only.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunniesnow%2Flyricat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunniesnow%2Flyricat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunniesnow%2Flyricat/lists"}