tomacheese / my-pixiv

🖼️ pixiv client for myself
MIT License
8 stars 0 forks source link
pixiv

my-pixiv

pixiv client for myself.

Feature

Installation

このプロジェクト(クライアント)を利用するためには、有効な pixiv アカウントのリフレッシュトークンが必要です。
Twitter に関連する機能を利用する場合は、Twitter API v1.1 が利用できる各種トークンが必要です。

pixiv

「おすすめ」の取得、各種検索処理、イラストの「ブックマーク」登録に pixiv アカウントを利用します。

Retrieving Auth Token (with Selenium) などを参考にリフレッシュトークンを取得してください。

その後、以下の形式で data/token.json にリフレッシュトークン(<REFRESH-TOKEN>)を設定してください。

{
  "refresh_token": "<REFRESH-TOKEN>"
}

Twitter

イラストから取得できるツイートの「いいね」に最大 2 つの Twitter アカウントを利用できます。この機能を利用しない場合は設定する必要はありません。

Twitter API v1.1 が利用できる以下 4 つのキーが必要です。

以下の JSON の該当部分を置き換えた上で、 data/config.json に書き込んでください。

{
  "consumer_key": "<CONSUMER-KEY>",
  "consumer_secret": "<CONSUMER-SECRET>",
  "accounts": {
    "main": {
      "access_token": "<MAIN-ACCOUNT-ACCESS-TOKEN>",
      "access_token_secret": "<MAIN-ACCOUNT-ACCESS-TOKEN-SECRET>"
    },
    "sub": {
      "access_token": "<SUB-ACCOUNT-ACCESS-TOKEN>",
      "access_token_secret": "<SUB-ACCOUNT-ACCESS-TOKEN-SECRET>"
    }
  }
}

Boot

docker-compose.yml に以下を書き込みます。

version: '3.8'
services:
  view:
    image: ghcr.io/tomacheese/my-pixiv:latest
    volumes:
      - type: bind
        source: ./data
        target: /data/
    ports:
      - 8080:80
    init: true
    restart: always

  api:
    image: ghcr.io/tomacheese/my-pixiv-api:latest
    volumes:
      - type: bind
        source: ./data
        target: /data/
    init: true
    restart: always

docker-compose up --build -d で起動し、http://localhost:8080 でアクセスできます。

Development

Directory structure

このプロジェクトは、Nuxt.js フレームワークを用いたフロントエンドパッケージと Fastify フレームワークを用いたバックエンドパッケージ 、共通の型定義や関数などをまとめたパッケージの 3 つで構成されています。それぞれのパッケージ名およびディレクトリは以下の通りです。

これらを Yarn Workspaces を用いて monorepo プロジェクトとしています。

Routing

フロントエンドとバックエンドは異なるプロジェクトとして動作しています。しかし、インターネットに露出するポートは一つのみにしたいという理由から、nginx を用いて以下のようにルーティングしています。

Scripts

開発時はフロントエンドとバックエンドのそれぞれを独立して動作することをオススメします。以下のコマンドで起動できます。

この方法で起動した場合、フロントエンドは 0.0.0.0:3000 、バックエンドは 0.0.0.0:8000 でホストされます。

その他、開発用のスクリプトをいくつか scripts ディレクトリに配置しています。

License

このプロジェクトのライセンスは MIT License です。

Disclaimer

このプロジェクトを使用したことによって引き起こされた問題に関して開発者は一切の責任を負いません。

The developer is not responsible for any problems caused by the user using this project.