# Scripts These supporting scripts are used to convert game assets and import information into the database. ### Installing Dependencies 1. Create a virtualenv by running `py -m venv venv` 2. Run `.\venv\scripts\activate` 3. Install dependencies by running `pip install -r requirements.txt` 4. Before running any script, make sure the virtualenv is activated by running `.\venv\scripts\activate` # Asset Extractor Usage: `py asset-extract.py [options] [game_options]` ### Prerequisites You must specify the path to these executables inside `paths.yaml` if they are not already on your path. 1. [`ffmpeg`](https://ffmpeg.org/download.html) 2. [`vgmstream-cli`](https://vgmstream.org/) ### Asset Configs You can customize the file extension and ffmpeg arguments of generated files through an `assets.yaml` file. Some existing assets configs have already been provided. Read the comment in the first line of the file to decide which one you want to use. ### Options These options must be specified before the `game` argument | Flag | Description | Default | |-----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------| | `--config` | Asset config file | `assets.fast.yaml` | | `--paths` | Paths config file | `paths.yaml` | | `--processes` | Number of processes to use when converting | Number of cores on your system | | `-o, --output, --out-dir, --output-dir` | Output directory | `../public/assets` | | `-n, --no-overwrite` | If set, don't overwrite existing files. (Note: if the script is terminated early, it may leave broken assets that need to be deleted if this flag is set) | (Unset) | | `--no-music` | If set, don't generate music files | (Unset) | | `--no-audio` | If set, don't generate other audio files (system voice, etc) | (Unset) | | `--no-jackets` | If set, don't generate jacket images | (Unset) | | `--no-images` | If set, don't generate other images (avatar images, etc) | (Unset) | ## Chunithm Extractor Usage: `py asset-extract.py [options] chuni --data-dir DATA_DIR --opt-dir OPT_DIR` ### Options These options must be specified after `chuni` | Flag | Description | |--------------|-------------------------------------------------------------| | `--data-dir` | Path to data directory, containing A000 (required) | | `--opt-dir` | Path to options directory, containing A001, etc. (required) | #### Example Usage `py asset-extract.py -n --config assets.fast.yaml chuni --data-dir C:\chuni\app\data --opt-dir C:\chuni\option` # Database Importer Usage: `py db-importer.py [options] [game_options]` The database importer requires the `DATABASE_URL` environment variable to be set, which can be set in an `.env` file in the format `DATABASE_URL=mysql://user:pass@host:port/db_name` (see the `--env` option) ### **Important**: your default database encoding must be unicode You can change the encoding by running `ALTER DATABASE aime CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;` # **WARNING: Back up your database** I am not responsible for misconfigurations that lead to database issues. **You should back up your database before making any changes to it.** ### Options These options must be specified before the `game` argument | Flag | Description | Default | |-------------|----------------------------------------------------------|-----------------| | `--env, -e` | Path to `.env` file to load `DATABASE_URL` variable from | `../.env.local` | ## Chunithm Importer Usage: `py db-importer.py [options] chuni --data-dir DATA_DIR --opt-dir OPT_DIR` ### Options These options must be specified after `chuni` | Flag | Description | |--------------|-------------------------------------------------------------| | `--data-dir` | Path to data directory, containing A000 (required) | | `--opt-dir` | Path to options directory, containing A001, etc. (required) | #### Example Usage `py db-import.py -e ../.env.local chuni --data-dir C:\chuni\app\data --opt-dir C:\chuni\option`