微信読書自動チェックイン・自動読書時間増加ツール

微信読書チャレンジ会員アシスタントは、ユーザーがより低コストで微信読書会員を取得できるように支援するツールです。自動読書とチェックイン機能により、微信読書のチャレンジタスクを完了させ、会員特典を獲得します。このツールは複数のプラットフォームとブラウザをサポートし、豊富な設定オプションとスケジュールタスク機能を提供します。

微信読書会員を少しでも安く買うためだけに。

このドキュメントは古い可能性があります。最新情報はGitHubのオープンソースアドレスをご覧ください: https://github.com/jqknono/weread-challenge-selenium

微信読書会員を少しでも安く買うためだけに

微信読書ルール

  • オフライン読書は総時間に含まれますが、オンラインで報告が必要です
  • Web版、電子インクディスプレイ、ミニプログラム、聴書、オーディオブックの視聴はすべて総時間に含まれます
  • 一度の自動読書または聴取時間が長すぎる行為に対して、プラットフォームはユーザーの行動特性を組み合わせて判断し、長すぎる部分は総時間に含まれません
  • 当日読書が5分を超えると有効な読書日数としてカウントされます
  • 5元を支払うとすぐに2日間の会員資格が得られ、その後30日間のうち29日間チェックインし、読書時間が30時間を超えると、30日間の会員資格と30書籍コインが得られます
  • 50元を支払うとすぐに30日間の会員資格が得られ、その後365日間のうち360日間チェックインし、読書時間が300時間を超えると、365日間の会員資格と500書籍コインが得られます

実際の操作に基づくと、以下のように明示されていない特徴もあります:

  • 29日目にチェックインするとすぐに読書会員の報酬が得られ、すぐに次のラウンドのチャレンジ会員チェックインを開始でき、31日目まで待つ必要はありません。29日目のチェックインは前のラウンドと次のラウンドの両方にカウントされます。
  • 最初のラウンドを除き、その後は28日ごとに32日間の会員資格が得られ、1+28*13=365、1年で13ラウンド完了可能、費用は65元、32*13=416日間の会員資格と390書籍コインが得られます。
  • よりお得なのは年間チャレンジ会員ですが、期間が長く、リスクも大きくなります。

ツールの特徴

  • ヘッド付きブラウザを使用
  • ローカルブラウザとリモートブラウザをサポート
  • ランダムなブラウザの幅と高さをサポート
  • ログイン待機をサポート
  • ログインQRコードの更新をサポート
  • cookiesの保存をサポート
  • cookiesの読み込みをサポート
  • 最近読んだ本のX番目から読書を開始することをサポート
  • デフォルトでランダムに1冊の本を選んで読書を開始
  • 自動読書をサポート
  • 次の章に移動することをサポート
  • 読了後に最初の章に戻って読書を続けることをサポート
  • 読書速度を選択することをサポート
  • ランダムな1ページの読書時間
  • ランダムなページ送り時間
  • 毎分現在の画面をスクリーンショット
  • ログをサポート
  • スケジュールタスクをサポート
  • 読書時間を設定することをサポート
  • メール通知をサポート
  • マルチプラットフォームサポート: linux | windows | macos
  • サポートブラウザ: chrome | MicrosoftEdge | firefox
  • マルチユーザーをサポート
  • 異常時に強制リフレッシュ
  • 使用統計

Linux

直接実行

# nodejsをインストール
sudo apt install nodejs
# 古いバージョンのnodejsにはnpmのインストールが必要
sudo apt install npm
# 実行フォルダを作成
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# 依存関係をインストール
npm install selenium-webdriver
# スクリプトをダウンロード
wget https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -O weread-challenge.js
# 環境変数で実行パラメータを設定
export WEREAD_BROWSER="chrome"
# 実行
WEREAD_BROWSER="chrome" node weread-challenge.js

メール通知を使用するには、_nodemailer_をインストールしてください: npm install nodemailer

Docker Compose実行

services:
  app:
    image: jqknono/weread-challenge:latest
    pull_policy: always
    environment:
      - WEREAD_REMOTE_BROWSER=http://selenium:4444
      - WEREAD_DURATION=68
    volumes:
      - ./data:/app/data
    depends_on:
      selenium:
        condition: service_healthy

  selenium:
    image: selenium/standalone-chrome:4.26
    pull_policy: if_not_present
    shm_size: 2gb
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - SE_ENABLE_TRACING=false
      - SE_BIND_HOST=false
      - SE_JAVA_DISABLE_HOSTNAME_VERIFICATION=false
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:4444/wd/hub/status"]
      interval: 5s
      timeout: 60s
      retries: 10

docker-compose.ymlとして保存し、docker compose up -dを実行します。 初回起動後、微信でQRコードをスキャンしてログインする必要があります。QRコードは./data/login.pngに保存されます。

Docker実行

# selenium standaloneを実行
docker run --restart always -d --name selenium-live \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --shm-size="2g" \
  -p 4444:4444 \
  -p 7900:7900 \
  -e SE_ENABLE_TRACING=false \
  -e SE_BIND_HOST=false \
  -e SE_JAVA_DISABLE_HOSTNAME_VERIFICATION=false \
  -e SE_NODE_MAX_INSTANCES=10 \
  -e SE_NODE_MAX_SESSIONS=10 \
  -e SE_NODE_OVERRIDE_MAX_SESSIONS=true \
  selenium/standalone-chrome:4.26

# weread-challengeを実行
docker run --rm --name user-read \
  -v $HOME/weread-challenge/user/data:/app/data \
  -e WEREAD_REMOTE_BROWSER=http://172.17.0.2:4444 \
  -e WEREAD_DURATION=68 \
  weread-challenge:latest

# 別のユーザーを追加
docker run --rm --name user2-read \
  -v $HOME/weread-challenge/user2/data:/app/data \
  -e WEREAD_REMOTE_BROWSER=http://172.17.0.2:4444 \
  -e WEREAD_DURATION=68 \
  weread-challenge:latest

初回起動後、微信でQRコードをスキャンしてログインする必要があります。QRコードは./data/login.pngに保存されます。

タスクスケジューラを作成

docker-compose方式

WORKDIR=$HOME/weread-challenge
mkdir -p $WORKDIR
cd $WORKDIR
cat > $WORKDIR/docker-compose.yml <<EOF
services:
  app:
    image: jqknono/weread-challenge:latest
    pull_policy: always
    environment:
      - WEREAD_REMOTE_BROWSER=http://selenium:4444
      - WEREAD_DURATION=68
    volumes:
      - ./data:/app/data
    depends_on:
      selenium:
        condition: service_healthy

  selenium:
    image: selenium/standalone-chrome:4.26
    pull_policy: if_not_present
    shm_size: 2gb
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - SE_ENABLE_TRACING=false
      - SE_BIND_HOST=false
      - SE_JAVA_DISABLE_HOSTNAME_VERIFICATION=false
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:4444/wd/hub/status"]
      interval: 5s
      timeout: 60s
      retries: 10
EOF
# 初回起動後、微信でQRコードをスキャンしてログインする必要があります。QRコードは $HOME/weread-challenge/data/login.png に保存されます
# 毎朝7時に起動し、68分間読書します
(crontab -l 2>/dev/null; echo "00 07 * * *  cd $WORKDIR && docker compose up -d") | crontab -

docker方式

# ブラウザを起動
docker run --restart always -d --name selenium-live \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --shm-size="2g" \
  -p 4444:4444 \
  -p 7900:7900 \
  -e SE_ENABLE_TRACING=false \
  -e SE_BIND_HOST=false \
  -e SE_JAVA_DISABLE_HOSTNAME_VERIFICATION=false \
  -e SE_NODE_MAX_INSTANCES=3 \
  -e SE_NODE_MAX_SESSIONS=3 \
  -e SE_NODE_OVERRIDE_MAX_SESSIONS=true \
  -e SE_SESSION_REQUEST_TIMEOUT=10 \
  -e SE_SESSION_RETRY_INTERVAL=3 \
  selenium/standalone-chrome:4.26

WEREAD_USER="user"
mkdir -p $HOME/weread-challenge/$WEREAD_USER/data

# コンテナIPを取得
Selenium_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-live)

# 初回起動後、微信でQRコードをスキャンしてログインする必要があります。QRコードは $HOME/weread-challenge/$WEREAD_USER/data/login.png に保存されます
# 毎朝7時に起動し、68分間読書します
(crontab -l 2>/dev/null; echo "00 07 * * * docker run --rm --name ${WEREAD_USER}-read -v $HOME/weread-challenge/${WEREAD_USER}/data:/app/data -e WEREAD_REMOTE_BROWSER=http://${Selenium_IP}:4444 -e WEREAD_DURATION=68 -e WEREAD_USER=${WEREAD_USER} jqknono/weread-challenge:latest") | crontab -

Windows

# nodejsをインストール
winget install -e --id Node.js.Node.js
# 実行フォルダを作成
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# 依存関係をインストール
npm install selenium-webdriver
# PowerShellでスクリプトをダウンロード
Invoke-WebRequest -Uri https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -OutFile weread-challenge.js
# 環境変数で実行パラメータを設定
$env:WEREAD_BROWSER="MicrosoftEdge"
# 実行
node weread-challenge.js

Dockerの実行はLinuxと同じです。

MacOS

# nodejsをインストール
brew install node
# 実行フォルダを作成
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# 依存関係をインストール
npm install selenium-webdriver
# スクリプトをダウンロード
wget https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -O weread-challenge.js
# 環境変数で実行パラメータを設定
export WEREAD_BROWSER="chrome"
# 実行
node weread-challenge.js

Dockerの実行はLinuxと同じです。

マルチユーザー対応

# ブラウザを起動
docker run --restart always -d --name selenium-live \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --shm-size="2g" \
  -p 4444:4444 \
  -p 7900:7900 \
  -e SE_ENABLE_TRACING=false \
  -e SE_BIND_HOST=false \
  -e SE_JAVA_DISABLE_HOSTNAME_VERIFICATION=false \
  -e SE_NODE_MAX_INSTANCES=10 \
  -e SE_NODE_MAX_SESSIONS=10 \
  -e SE_NODE_OVERRIDE_MAX_SESSIONS=true \
  selenium/standalone-chrome:4.26

WEREAD_USER1="user1"
WEREAD_USER2="user2"
mkdir -p $HOME/weread-challenge/$WEREAD_USER1/data
mkdir -p $HOME/weread-challenge/$WEREAD_USER2/data

# コンテナIPを取得
Selenium_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-live)

# 初回起動後、微信でQRコードをスキャンしてログインする必要があります。QRコードは:
# /$HOME/weread-challenge/${WEREAD_USER1}/data/login.png
# /$HOME/weread-challenge/${WEREAD_USER2}/data/login.png
# 毎朝7時に起動し、68分間読書します
(crontab -l 2>/dev/null; echo "00 07 * * * docker run --rm --name ${WEREAD_USER1}-read -v $HOME/weread-challenge/${WEREAD_USER1}/data:/app/data -e WEREAD_REMOTE_BROWSER=http://${Selenium_IP}:4444 -e WEREAD_DURATION=68 -e WEREAD_USER=${WEREAD_USER1} jqknono/weread-challenge:latest") | crontab -
(crontab -l 2>/dev/null; echo "00 07 * * * docker run --rm --name ${WEREAD_USER2}-read -v $HOME/weread-challenge/${WEREAD_USER2}/data:/app/data -e WEREAD_REMOTE_BROWSER=http://${Selenium_IP}:4444 -e WEREAD_DURATION=68 -e WEREAD_USER=${WEREAD_USER2} jqknono/weread-challenge:latest") | crontab -

設定可能項目

環境変数 デフォルト値 選択肢 説明
WEREAD_USER weread-default - ユーザー識別子
WEREAD_REMOTE_BROWSER "" - リモートブラウザのアドレス
WEREAD_DURATION 10 - 読書時間
WEREAD_SPEED slow slow,normal,fast 読書速度
WEREAD_SELECTION random [0-4] 読書する本の選択
WEREAD_BROWSER chrome chrome,MicrosoftEdge,firefox ブラウザ
ENABLE_EMAIL false true,false メール通知
EMAIL_SMTP "" - メールSMTPサーバー
EMAIL_USER "" - メールユーザー名
EMAIL_PASS "" - メールパスワード
EMAIL_TO "" - 宛先
WEREAD_AGREE_TERMS true true,false プライバシー同意条項

注意事項

  • 28日で30時間を満たすには、毎日少なくとも65分必要で、毎日60分ではありません。
  • 微信読書の統計では数分が漏れることがあり、毎日65分を得ることを期待しているので、読書時間を68分に調整することをお勧めします
  • WebページのQRコードログインのcookiesの有効期限は30日で、30日後に再度QRコードでログインする必要があります。月間チャレンジ会員に適しています
  • メール通知がスパムとして認識される可能性があるため、受信側でホワイトリストを追加することをお勧めします
  • このプロジェクトは学習と交流のみを目的としており、商用利用や違法利用は禁止します
  • もし侵害が疑われる場合は、[email protected] までご連絡ください。このプロジェクトはすぐに削除されます

プライバシーポリシー

  • プライバシー取得
    • このプロジェクトは、使用者の cookies の一部情報を収集し、使用者統計と表示に使用します。
    • 使用者の使用情報を収集します。内容は以下の通りです: ユーザー名 | 初回使用時間 | 最近使用時間 | 総使用回数 | ブラウザタイプ | OSカテゴリ | 読書時間設定 | 異常終了理由
    • いかなる情報も収集されたくない場合は、起動パラメータ WEREAD_AGREE_TERMS=false を設定してください
  • リスクの警告
    • cookies は微信読書のWebログインに使用でき、ログイン後は本棚操作を実行できますが、このツールは収集した情報を使用してログイン操作を行いません
    • テンセントの保護メカニズムにより、異常なログインがあると、モバイルクライアントにリスク通知が表示され、モバイルクライアントの設定->ログインデバイスでログインデバイスを確認できます。
    • このツールは純粋なjs実装で、容易に逆難読化と拡張が可能で、サードパーティがさらに開発できます。このツールを信頼しても、自動化ツールを使用する際には、頻繁にログインデバイスを確認し、本棚が悪意のある操作を受けないようにしてください。

参考