Автоматическая проверка времени чтения в WeChat
Помощник для вызова членства в WeChat Reading — это инструмент, помогающий пользователям получать членство в WeChat Reading по более низкой цене, с помощью функций автоматического чтения и проверки, помогающих пользователям выполнять задачи вызова WeChat Reading, чтобы получить права членства. Инструмент поддерживает несколько платформ, несколько браузеров и предоставляет богатые параметры конфигурации и функции запланированных задач.
Categories:
Только ради более дешевой покупки членства в WeChat Reading.
Этот документ может устареть, самую свежую информацию можно найти по адресу: https://github.com/jqknono/weread-challenge-selenium

Правила WeChat Reading
- Офлайнное чтение включается в общее время, но требует подключения к Интернету для отправки отчетов
- Версия для веб-браузера, электронные чернила, мини-программа, прослушивание, прослушивание аудиокниг все включаются в общее время
- Для действий по автоматическому чтению или прослушиванию, превышающих определенную продолжительность, платформа будет определять на основе характеристик поведения пользователя, часть, превышающая лимит, не включается в общее время
- Чтение в течение дня считается действительным днем чтения только при превышении 5 минут
- Оплата 5 юаней сразу дает 2 дня членства, в последующие 30 дней необходимо пройти проверку 29 дней, общее время чтения должно превышать 30 часов, можно получить 30 дней членства и 30 книжных монет
- Оплата 50 юаней сразу дает 30 дней членства, в последующие 365 дней необходимо пройти проверку 360 дней, общее время чтения должно превышать 300 часов, можно получить 365 дней членства и 500 книжных монет
Согласно практическим операциям, также есть следующие неясные особенности:
- После проверки на 29-й день сразу получается награда в виде членства в книжном клубе, и можно сразу начать следующий цикл проверки членства, не нужно ждать 31-го дня для начала следующего цикла проверки, проверка на 29-й день считается как проверка предыдущего цикла, так и проверка следующего цикла.
- Кроме первого цикла, который требует 29 дней, в последующих циклах можно получить 32 дня членства за каждые 28 дней, 1+28*13=365, можно завершить 13 циклов в год, потратив 65 юаней, получить 32*13=416 дней членства и 390 книжных монет.
- Более выгодным все еще остается годовой вызов членства, но цикл дольше, риски больше.
Характеристики инструмента
- Использование браузера с графическим интерфейсом
- Поддержка локального и удаленного браузеров
- Случайная ширина и высота браузера
- Поддержка ожидания входа в систему
- Поддержка обновления QR-кода для входа
- Поддержка сохранения cookies
- Поддержка загрузки cookies
- Поддержка выбора книги X из недавно читаемых для начала чтения
- По умолчанию случайный выбор книги для начала чтения
- Поддержка автоматического чтения
- Поддержка перехода к следующей главе
- Поддержка возврата к первой главе после окончания чтения
- Поддержка выбора скорости чтения
- Случайное время чтения на странице
- Случайное время переворота страницы
- Скриншот текущего интерфейса каждую минуту
- Поддержка журнала
- Поддержка запланированных задач
- Поддержка настройки времени чтения
- Поддержка уведомлений по электронной почте
- Поддержка нескольких платформ:
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-код в WeChat для входа, 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-код в WeChat для входа, 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-код в WeChat для входа, 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-код в WeChat для входа, 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-код в WeChat для входа, 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 |
Согласие с условиями конфиденциальности |
Примечания
- Для накопления 30 часов за 28 дней необходимо читать не менее 65 минут каждый день, а не 60 минут.
- WeChat Reading может пропустить несколько минут при подсчете, ожидается получение 65 минут в день, рекомендуется настроить время чтения на 68 минут
- Сookie для входа по QR-коду в веб-версии действительны 30 дней, через 30 дней необходимо снова отсканировать QR-код для входа, подходит для месячного вызова членства
- Уведомления по электронной почте могут быть распознаны как спам, рекомендуется добавить белый список на стороне получателя
- Этот проект предназначен только для обучения и обмена, не используйте в коммерческих целях, не используйте в противоправных целях
- В случае возможного нарушения авторских прав, пожалуйста, свяжитесь с
[email protected], проект будет немедленно удален
Политика конфиденциальности
- Получение конфиденциальной информации
- Этот проект собирает частичную информацию
cookiesпользователя для статистики и отображения пользователей. - Собирает информацию об использовании пользователя, включая:
имя пользователя | время первого использования | время последнего использования | общее количество использований | тип браузера | категория операционной системы | настройка времени чтения | причина аномального выхода - Если вы не хотите, чтобы собирались какие-либо данные, установите параметр запуска
WEREAD_AGREE_TERMS=false
- Этот проект собирает частичную информацию
- Предупреждение о рисках
cookiesможно использовать для входа в WeChat Reading через веб-браузер, после входа можно выполнять операции с книжной полкой, но этот инструмент не будет использовать собранные данные для входа.- Защитные механизмы Tencent обеспечивают, что при аномальном входе в систему клиент WeChat на телефоне получит предупреждение о риске, можно подтвердить устройство входа в
настройках->устройствах входана клиенте WeChat. - Этот инструмент полностью реализован на js, легко декомпилируется и расширяется, третьи стороны могут продолжить разработку. Даже доверяя этому инструменту, следует регулярно подтверждать устройства входа при использовании автоматизированных инструментов, чтобы избежать вредоносных операций с книжной полкой.
Ссылки
- Ссылка для скачивания скрипта: weread-challenge.js
- Открытый исходный код: https://github.com/jqknono/weread-challenge-selenium
- Статистика: https://weread-challenge.techfetch.dev
- Источник статьи: https://blog.techfetch.dev