Skip to content

Annict から AniList にライブラリを同期する CLI ツール

License

Notifications You must be signed in to change notification settings

SlashNephy/annict2anilist

Repository files navigation

annict2anilist

Annict から AniList にライブラリを同期します。

image

同期は次のルールで行われます。

  • Annict 側がマスターとなり、「視聴ステータス」「話数」が同期されます。
    • Annict 側では登録されているが、AniList で記録がない場合は作成されます。
    • AniList 側では登録されているが、Annict 側で記録がない場合は何もしません。(Annict のデータを操作することはありません。)
  • SlashNephy/arm-supplementary を利用して、作品の紐付けを行っています。紐付けができなかった作品データは untethered.json に出力されます。

annict2anilist は ci7lus/imau の CLI バージョンです。

環境変数

以下の環境変数を .env.example を参考に .env に記述してください。

環境変数 Default Description
ANNICT_CLIENT_ID
ANNICT_CLIENT_SECRET
必須 Annict の OAuth クライアントです。ここ で発行できます。
リダイレクト URI には urn:ietf:wg:oauth:2.0:oob を指定してください。
スコープは 読み込み専用 で十分です。
ANILIST_CLIENT_ID
ANILIST_CLIENT_SECRET
必須 AniList の OAuth クライアントです。ここ で発行できます。
リダイレクト URI には https://anilist.co/api/v2/oauth/pin を指定してください。
TOKEN_DIRECTORY . トークン情報を格納するディレクトリを指定します。
未指定の場合はカレントディレクトリに格納します。
DRY_RUN 0 1 を指定すると書き込みリクエストを送信しません。デバッグ用です。

Build

$ make build

Run

初回起動時は認可を行うため、CLI で以下のコマンドを実行します。

$ make run-authorize

以下のコマンドを実行すると同期が行われます。

$ make run-batch

Run (docker-compose.yml)

以下のような docker-compose.yml を用意すると、コンテナとして動作可能になります。

一度 CLI で実行して認可を取得後、./token にトークン JSON を配置しておいてください。

version: '3.8'

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

About

Annict から AniList にライブラリを同期する CLI ツール

Topics

Resources

License

Stars

Watchers

Forks

Packages