Annict から AniList にライブラリを同期します。
同期は次のルールで行われます。
- Annict 側がマスターとなり、「視聴ステータス」「話数」が同期されます。
- Annict 側では登録されているが、AniList で記録がない場合は作成されます。
- AniList 側では登録されているが、Annict 側で記録がない場合は何もしません。(Annict のデータを操作することはありません。)
- SlashNephy/arm-supplementary を利用して、作品の紐付けを行っています。紐付けができなかった作品データは
untethered.jsonに出力されます。
annict2anilist は ci7lus/imau の CLI バージョンです。
以下の環境変数を .env.example を参考に .env に記述してください。
| 環境変数 | Default | Description |
|---|---|---|
ANNICT_CLIENT_IDANNICT_CLIENT_SECRET |
必須 | Annict の OAuth クライアントです。ここ で発行できます。 リダイレクト URI には urn:ietf:wg:oauth:2.0:oob を指定してください。スコープは 読み込み専用 で十分です。 |
ANILIST_CLIENT_IDANILIST_CLIENT_SECRET |
必須 | AniList の OAuth クライアントです。ここ で発行できます。 リダイレクト URI には https://anilist.co/api/v2/oauth/pin を指定してください。 |
TOKEN_DIRECTORY |
. |
トークン情報を格納するディレクトリを指定します。 未指定の場合はカレントディレクトリに格納します。 |
DRY_RUN |
0 |
1 を指定すると書き込みリクエストを送信しません。デバッグ用です。 |
$ make build初回起動時は認可を行うため、CLI で以下のコマンドを実行します。
$ make run-authorize以下のコマンドを実行すると同期が行われます。
$ make run-batch以下のような compose.yaml を用意すると、コンテナとして動作可能になります。
一度 CLI で実行して認可を取得後、./token にトークン JSON を配置しておいてください。
services:
app:
container_name: annict2anilist
image: ghcr.io/slashnephy/annict2anilist:master
restart: always
environment:
ANNICT_CLIENT_ID: xxx
ANNICT_CLIENT_SECRET: xxx
ANILIST_CLIENT_ID: xxx
ANILIST_CLIENT_SECRET: xxx
TOKEN_DIRECTORY: /app/token
volumes:
- ./token:/app/token