Lecture automatique de WeChat pour marquer la durée

WeChat Reading Challenge Member Helper est un outil qui aide les utilisateurs à obtenir des membres de lecture WeChat à moindre coût. Grâce aux fonctions de lecture et de pointage automatiques, il aide les utilisateurs à accomplir les tâches de lecture WeChat afin d’obtenir les droits des membres. Cet outil prend en charge les navigateurs multiplateformes et multi-navigateurs, et fournit des options de configuration riches et des fonctions de tâches planifiées.

Juste pour acheter un abonnement WeChat Reading un peu moins cher.

Ce document peut être obsolète. Pour la dernière version, veuillez consulter l’adresse open source : https://github.com/jqknono/weread-challenge-selenium

Juste pour acheter un abonnement WeChat Reading un peu moins cher

Règles de WeChat Reading

  • La lecture hors ligne est prise en compte dans la durée totale, mais doit être signalée en ligne.
  • La version Web, l’écran à encre, le mini-programme, l’écoute de lecture, l’écoute de livres audio sont tous pris en compte dans la durée totale.
  • Pour les comportements de lecture ou d’écoute automatique trop longs, la plateforme les évaluera en fonction des caractéristiques du comportement de l’utilisateur. Les parties excessivement longues ne seront pas prises en compte dans la durée totale.
  • Une lecture effective est comptabilisée si elle dépasse 5 minutes dans la journée.
  • En payant 5 yuans, vous obtenez immédiatement 2 jours d’abonnement, puis vous devez marquer votre présence 29 jours sur 30 jours consécutifs avec une durée de lecture dépassant 30 heures pour obtenir 30 jours d’abonnement et 30 pièces de livres.
  • En payant 50 yuans, vous obtenez immédiatement 30 jours d’abonnement, puis vous devez marquer votre présence 360 jours sur 365 jours consécutifs avec une durée de lecture dépassant 300 heures pour obtenir 365 jours d’abonnement et 500 pièces de livres.

Selon les opérations réelles, il y a aussi les caractéristiques non explicitées suivantes :

  • Le 29ème jour du marquage de présence, vous obtenez immédiatement la récompense de membre de lecture, et vous pouvez immédiatement commencer le prochain cycle de marquage de présence pour le défi d’abonnement. Il n’est pas nécessaire d’attendre le 31ème jour pour commencer le prochain cycle de défi. Le marquage de présence du 29ème jour compte à la fois pour le cycle précédent et pour le prochain cycle.
  • Hormis le premier cycle qui nécessite 29 jours, chaque cycle suivant nécessite 28 jours pour obtenir 32 jours d’abonnement. 1+28*13=365, une année peut compléter 13 cycles, coûtant 65 yuans, obtenant 32*13=416 jours d’abonnement et 390 pièces de livres.
  • Le défi d’abonnement annuel reste plus avantageux, mais avec une période plus longue et un risque plus grand.

Caractéristiques de l’outil

  • Utilisation d’un navigateur avec interface graphique
  • Prise en charge des navigateurs locaux et distants
  • Largeur et hauteur aléatoires du navigateur
  • Prise en charge de l’attente de connexion
  • Prise en charge du rafraîchissement du code QR de connexion
  • Prise en charge de la sauvegarde des cookies
  • Prise en charge du chargement des cookies
  • Prise en charge du choix du Xème livre le plus récemment lu pour commencer la lecture
  • Par défaut, sélection aléatoire d’un livre pour commencer la lecture
  • Prise en charge de la lecture automatique
  • Prise en charge du saut au chapitre suivant
  • Prise en charge du retour au premier chapitre après la lecture
  • Prise en charge du choix de la vitesse de lecture
  • Temps de lecture aléatoire par page
  • Temps de changement de page aléatoire
  • Capture d’écran de l’interface toutes les minutes
  • Prise en charge des journaux
  • Prise en charge des tâches planifiées
  • Prise en charge du réglage du temps de lecture
  • Prise en charge des notifications par e-mail
  • Prise en charge multiplateforme : linux | windows | macos
  • Prise en charge des navigateurs : chrome | MicrosoftEdge | firefox
  • Prise en charge multi-utilisateur
  • Rafraîchissement forcé en cas d’exception
  • Utilisation statistique

Linux

Exécution directe

# Installer nodejs
sudo apt install nodejs
# Pour les versions anciennes de nodejs, npm doit être installé
sudo apt install npm
# Créer le dossier d'exécution
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# Installer les dépendances
npm install selenium-webdriver
# Télécharger le script
wget https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -O weread-challenge.js
# Définir les paramètres d'exécution via les variables d'environnement
export WEREAD_BROWSER="chrome"
# Exécuter
WEREAD_BROWSER="chrome" node weread-challenge.js

Pour la notification par e-mail, installez nodemailer : npm install nodemailer

Exécution 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

Enregistrer en tant que docker-compose.yml, exécuter docker compose up -d.
Après le démarrage initial, vous devez scanner le code QR avec WeChat pour vous connecter. Le code QR est enregistré dans ./data/login.png.

Exécution Docker

# Exécuter 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

# Exécuter 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

# Ajouter un autre utilisateur
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

Après le démarrage initial, vous devez scanner le code QR avec WeChat pour vous connecter. Le code QR est enregistré dans ./data/login.png.

Création de tâches planifiées

Méthode 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
# Après le démarrage initial, vous devez scanner le code QR avec WeChat pour vous connecter. Le code QR est enregistré dans $HOME/weread-challenge/data/login.png
# Démarrer chaque matin à 7 heures, lire pendant 68 minutes
(crontab -l 2>/dev/null; echo "00 07 * * *  cd $WORKDIR && docker compose up -d") | crontab -

Méthode docker

# Démarrer le navigateur
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

# Obtenir l'adresse IP du conteneur
Selenium_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-live)

# Après le démarrage initial, vous devez scanner le code QR avec WeChat pour vous connecter. Le code QR est enregistré dans $HOME/weread-challenge/$WEREAD_USER/data/login.png
# Démarrer chaque matin à 7 heures, lire pendant 68 minutes
(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

# Installer nodejs
winget install -e --id Node.js.Node.js
# Créer le dossier d'exécution
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# Installer les dépendances
npm install selenium-webdriver
# Télécharger le script powershell
Invoke-WebRequest -Uri https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -OutFile weread-challenge.js
# Définir les paramètres d'exécution via les variables d'environnement
$env:WEREAD_BROWSER="MicrosoftEdge"
# Exécuter
node weread-challenge.js

L’exécution Docker est similaire à Linux.

MacOS

# Installer nodejs
brew install node
# Créer le dossier d'exécution
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# Installer les dépendances
npm install selenium-webdriver
# Télécharger le script
wget https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -O weread-challenge.js
# Définir les paramètres d'exécution via les variables d'environnement
export WEREAD_BROWSER="chrome"
# Exécuter
node weread-challenge.js

L’exécution Docker est similaire à Linux.

Prise en charge multi-utilisateur

# Démarrer le navigateur
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

# Obtenir l'adresse IP du conteneur
Selenium_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-live)

# Après le démarrage initial, vous devez scanner le code QR avec WeChat pour vous connecter. Le code QR est enregistré dans :
# /$HOME/weread-challenge/${WEREAD_USER1}/data/login.png
# /$HOME/weread-challenge/${WEREAD_USER2}/data/login.png
# Démarrer chaque matin à 7 heures, lire pendant 68 minutes
(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 -

Options configurables

Variable d’environnement Valeur par défaut Valeurs possibles Description
WEREAD_USER weread-default - Identifiant utilisateur
WEREAD_REMOTE_BROWSER "" - Adresse du navigateur distant
WEREAD_DURATION 10 - Durée de lecture
WEREAD_SPEED slow slow,normal,fast Vitesse de lecture
WEREAD_SELECTION random [0-4] Choix du livre à lire
WEREAD_BROWSER chrome chrome,MicrosoftEdge,firefox Navigateur
ENABLE_EMAIL false true,false Notification par e-mail
EMAIL_SMTP "" - Serveur SMTP de messagerie
EMAIL_USER "" - Nom d’utilisateur de messagerie
EMAIL_PASS "" - Mot de passe de messagerie
EMAIL_TO "" - Destinataire
WEREAD_AGREE_TERMS true true,false Clause d’accord de confidentialité

Remarques

  • Pour remplir 30 heures en 28 jours, vous devez lire au moins 65 minutes par jour, pas 60 minutes.
  • La statistique de WeChat Reading peut manquer quelques minutes, en espérant obtenir 65 minutes par jour, il est recommandé d’ajuster la durée de lecture à 68 minutes.
  • Les cookies de connexion via le code QR Web ont une validité de 30 jours. Après 30 jours, vous devez vous reconnecter en scannant à nouveau le code QR, adapté aux défis mensuels d’abonnement.
  • Les notifications par e-mail peuvent être identifiées comme courrier indésirable. Il est recommandé d’ajouter une liste blanche chez le destinataire.
  • Ce projet est uniquement destiné à l’apprentissage et aux échanges. Veuillez ne pas l’utiliser à des fins commerciales ou illégales.
  • En cas d’éventuelles atteintes aux droits d’auteur, veuillez contacter [email protected], ce projet sera immédiatement supprimé.

Politique de confidentialité

  • Collecte de la confidentialité
    • Ce projet collecte certaines informations de cookies des utilisateurs afin de les utiliser pour les statistiques et l’affichage des utilisateurs.
    • Collecte les informations d’utilisation de l’utilisateur, comprenant : Nom d'utilisateur | Date de première utilisation | Date d'utilisation la plus récente | Nombre total d'utilisations | Type de navigateur | Catégorie du système d'exploitation | Durée de lecture définie | Raison de sortie anormale
    • Si vous ne souhaitez pas que des informations soient collectées, vous pouvez définir le paramètre de démarrage WEREAD_AGREE_TERMS=false.
  • Avertissement de risque
    • Les cookies peuvent être utilisés pour se connecter à la version Web de WeChat Reading. Après la connexion, les opérations de la bibliothèque peuvent être effectuées, mais cet outil n’utilisera pas les informations collectées pour effectuer des opérations de connexion.
    • Le mécanisme de protection de Tencent garantit qu’en cas de connexion anormale, l’application mobile recevra une alerte de risque, et vous pourrez confirmer l’appareil de connexion dans Paramètres -> Appareils connectés sur l’application mobile.
    • Cet outil est purement implémenté en js, facile à désobfusquer et à étendre, les tiers peuvent continuer à le développer. Même si vous faites confiance à cet outil, vous devez toujours confirmer régulièrement l’appareil de connexion lors de l’utilisation d’outils d’automatisation, afin d’éviter toute opération malveillante sur la bibliothèque.

Références