While still receiving maintenance updates, this project is being sunset in favor of the modular approach rewrite at FairyJoke/fairyjoke-api, that uses an extensive plugin system for games.
FairyJoke is a rhythm games database project with a public API.
The long term goal is to serve as a repository for static data such as lists of songs, difficulties, a list of different rhythm games and their accompanying release dates and platforms.
Think https://remywiki.com/ but more developer-friendly to be incorporated and used into other projects without scrapping web pages.
-
Easy to use API.
-
Search
-
Song jackets
FairyJoke is built with Python using FastAPI and SQLAlchemy. The frontend uses Jinja2 templates and Materialize CSS.
The plan is to allow sourcing the data either from game dumps or trustable sources (such as a wiki or official songs list). It will mostly depend on what's available for each game, and what's easier to import.
For some data such as a list of games and their release dates, I'm envisionning a folder with text files that users could contribute to easily on GitHub, see the import/games
folder in the 1.0 branch for an example.
git clone https://github.com/Tina-otoge/FairyJokeAPI
cd FairyJokeAPI
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app:app --reload
Or alternatively
git clone https://github.com/Tina-otoge/FairyJokeAPI
cd FairyJokeAPI
./scripts/run.sh
Not tested but it should work on Windows, just do .\.\venv\Scripts\Activate.ps1
instead.
Please do. The project is nicely splitted into smaller modules to make it easier to add support for more games. I will answer opened issues and help you with PRs as much as I can.