Segna automaticamente il tempo di lettura su WeChat

WeChat Reading Challenge Member Helper è uno strumento che aiuta gli utenti a ottenere la membership di WeChat Reading a costi ridotti, tramite funzionalità di lettura e check-in automatizzate per completare le sfide e ottenere i benefici della membership. Supporta piattaforme e browser multipli, con opzioni di configurazione e funzionalità di pianificazione.

Solo per comprare la membership di WeChat Reading a un prezzo più basso.

Questa documentazione potrebbe essere obsoleta. Per informazioni aggiornate, visitare l’indirizzo sorgente: https://github.com/jqknono/weread-challenge-selenium

Solo per comprare la membership di WeChat Reading a un prezzo più basso

Regole di WeChat Reading

  • La lettura offline è inclusa nel tempo totale, ma richiede la sincronizzazione online.
  • La versione web, e-reader, mini-programma, ascolto e audiolibri sono inclusi nel tempo totale.
  • Per letture o ascolti automatici eccessivamente lunghi, la piattaforma valuterà in base al comportamento dell’utente, e la parte eccessiva non sarà conteggiata.
  • Il giorno è valido solo se la lettura supera 5 minuti.
  • Pagando 5 yuan si ottengono subito 2 giorni di membership; successivamente, entro 30 giorni, effettuando il check-in per 29 giorni e accumulando più di 30 ore di lettura, si ottengono 30 giorni di membership e 30 crediti libro.
  • Pagando 50 yuan si ottengono subito 30 giorni di membership; successivamente, entro 365 giorni, effettuando il check-in per 360 giorni e accumulando più di 300 ore di lettura, si ottengono 365 giorni di membership e 500 crediti libro.

In base alle operazioni pratiche, ci sono anche le seguenti caratteristiche non esplicitamente indicate:

  • Dopo il check-in del 29° giorno, si ottiene immediatamente la membership e si può iniziare subito il prossimo ciclo di sfida. Non è necessario aspettare il 31° giorno per iniziare il prossimo ciclo; il check-in del 29° giorno conta sia per il ciclo precedente che per quello successivo.
  • Oltre al primo ciclo che richiede 29 giorni, i cicli successivi richiedono solo 28 giorni per ottenere 32 giorni di membership. 1+28*13=365, in un anno è possibile completare 13 cicli, spendendo 65 yuan, ottenendo 32*13=416 giorni di membership e 390 crediti libro.
  • Tuttavia, la sfida annuale per la membership rimane più conveniente, anche se con un periodo più lungo e maggiori rischi.

Funzionalità dello strumento

  • Utilizza browser con interfaccia grafica
  • Supporta browser locali e remoti
  • Larghezza e altezza del browser casuali
  • Supporta attesa del login
  • Supporta il refresh del codice QR per il login
  • Supporta il salvataggio dei cookies
  • Supporta il caricamento dei cookies
  • Supporta la scelta del libro X tra quelli letti di recente per iniziare la lettura
  • Per impostazione predefinita sceglie casualmente un libro per iniziare la lettura
  • Supporta la lettura automatica
  • Supporta il salto al capitolo successivo
  • Supporta il ritorno al primo capitolo dopo la fine
  • Supporta la scelta della velocità di lettura
  • Tempo di lettura per pagina casuale
  • Tempo di sfoglia casuale
  • Screenshot dell’interfaccia ogni minuto
  • Supporta i log
  • Supporta i compiti pianificati
  • Supporta l’impostazione del tempo di lettura
  • Supporta le notifiche via email
  • Supporto multi-piattaforma: linux | windows | macos
  • Supporta browser: chrome | MicrosoftEdge | firefox
  • Supporta più utenti
  • Refresh forzato in caso di eccezione
  • Statistiche di utilizzo

Linux

Esecuzione diretta

# Installa nodejs
sudo apt install nodejs
# Per versioni vecchie di nodejs, installa npm
sudo apt install npm
# Crea la cartella di esecuzione
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# Installa le dipendenze
npm install selenium-webdriver
# Scarica lo script
wget https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -O weread-challenge.js
# Imposta i parametri di esecuzione tramite variabili d'ambiente
export WEREAD_BROWSER="chrome"
# Esegui
WEREAD_BROWSER="chrome" node weread-challenge.js

Per le notifiche via email, installa nodemailer: npm install nodemailer

Esecuzione con 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

Salva come docker-compose.yml ed esegui docker compose up -d.
Al primo avvio, è necessario scansionare il codice QR con WeChat per effettuare il login. Il codice QR è salvato in ./data/login.png

Esecuzione con Docker

# Esegui 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

# Esegui 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

# Aggiungi un altro utente
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

Al primo avvio, è necessario scansionare il codice QR con WeChat per effettuare il login. Il codice QR è salvato in ./data/login.png

Creazione di compiti pianificati

Metodo 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
# Al primo avvio, è necessario scansionare il codice QR con WeChat per effettuare il login. Il codice QR è salvato in $HOME/weread-challenge/data/login.png
# Avvia ogni giorno alle 7:00, legge per 68 minuti
(crontab -l 2>/dev/null; echo "00 07 * * *  cd $WORKDIR && docker compose up -d") | crontab -

Metodo docker

# Avvia il browser
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

# Ottieni l'IP del container
Selenium_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-live)

# Al primo avvio, è necessario scansionare il codice QR con WeChat per effettuare il login. Il codice QR è salvato in $HOME/weread-challenge/$WEREAD_USER/data/login.png
# Avvia ogni giorno alle 7:00, legge per 68 minuti
(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

# Installa nodejs
winget install -e --id Node.js.Node.js
# Crea la cartella di esecuzione
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# Installa le dipendenze
npm install selenium-webdriver
# Scarica lo script powershell
Invoke-WebRequest -Uri https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -OutFile weread-challenge.js
# Imposta i parametri di esecuzione tramite variabili d'ambiente
$env:WEREAD_BROWSER="MicrosoftEdge"
# Esegui
node weread-challenge.js

L’esecuzione con Docker è simile a Linux.

MacOS

# Installa nodejs
brew install node
# Crea la cartella di esecuzione
mkdir -p $HOME/Documents/weread-challenge
cd $HOME/Documents/weread-challenge
# Installa le dipendenze
npm install selenium-webdriver
# Scarica lo script
wget https://storage1.techfetch.dev/weread-challenge/weread-challenge.js -O weread-challenge.js
# Imposta i parametri di esecuzione tramite variabili d'ambiente
export WEREAD_BROWSER="chrome"
# Esegui
node weread-challenge.js

L’esecuzione con Docker è simile a Linux.

Supporto multi-utente

# Avvia il browser
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

# Ottieni l'IP del container
Selenium_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-live)

# Al primo avvio, è necessario scansionare il codice QR con WeChat per effettuare il login. Il codice QR è salvato in:
# /$HOME/weread-challenge/${WEREAD_USER1}/data/login.png
# /$HOME/weread-challenge/${WEREAD_USER2}/data/login.png
# Avvia ogni giorno alle 7:00, legge per 68 minuti
(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 -

Opzioni configurabili

Variabile d’ambiente Valore predefinito Valori disponibili Descrizione
WEREAD_USER weread-default - Identificatore utente
WEREAD_REMOTE_BROWSER "" - Indirizzo browser remoto
WEREAD_DURATION 10 - Durata della lettura
WEREAD_SPEED slow slow,normal,fast Velocità di lettura
WEREAD_SELECTION random [0-4] Selezione libro da leggere
WEREAD_BROWSER chrome chrome,MicrosoftEdge,firefox Browser
ENABLE_EMAIL false true,false Notifiche via email
EMAIL_SMTP "" - Server SMTP email
EMAIL_USER "" - Nome utente email
EMAIL_PASS "" - Password email
EMAIL_TO "" - Destinatario
WEREAD_AGREE_TERMS true true,false Accettazione termini privacy

Note importanti

  • Per accumulare 30 ore in 28 giorni, è necessario almeno 65 minuti al giorno, non 60.
  • WeChat Reading potrebbe perdere alcuni minuti nel conteggio; si consiglia di impostare la lettura a 68 minuti per ottenere 65 minuti effettivi.
  • I cookies della scansione QR hanno una validità di 30 giorni; dopo 30 giorni è necessario scansionare nuovamente il codice QR. Adatto per la sfida mensile della membership.
  • Le notifiche via email potrebbero essere identificate come spam; si consiglia di aggiungere l’indirizzo mittente alla whitelist.
  • Questo progetto è solo per scopi di studio e scambio; non utilizzare per scopi commerciali o illegali.
  • In caso di possibili violazioni del copyright, contattare [email protected]; il progetto verrà eliminato immediatamente.

Informativa sulla privacy

  • Raccolta dei dati personali
    • Questo progetto raccoglie parte delle informazioni cookies degli utenti per statistiche e visualizzazione.
    • Raccoglie informazioni sull’uso degli utenti, incluse: Nome utente | Data primo utilizzo | Data ultimo utilizzo | Totale utilizzi | Tipo browser | Tipo sistema operativo | Impostazioni durata lettura | Motivo uscita anomala
    • Se non si desidera essere tracciati, impostare il parametro WEREAD_AGREE_TERMS=false.
  • Avvertenze sui rischi
    • I cookies possono essere utilizzati per il login su WeChat Reading, consentendo operazioni sulla libreria, ma questo strumento non utilizzerà le informazioni raccolte per effettuare login.
    • Il meccanismo di protezione di Tencent assicura che in caso di login anomalo, l’app mobile riceverà un avviso di rischio. È possibile confermare i dispositivi di login nelle impostazioni dell’app mobile sotto Dispositivi di login.
    • Questo strumento è puramente in js, facilmente deobfuscabile ed estendibile. Terze parti possono continuare a sviluppare. Anche se si fida di questo strumento, si dovrebbe comunque controllare spesso i dispositivi di login per evitare operazioni malevole sulla libreria.

Riferimenti