위챗 독서 자동 체크인 및 시간 연장
위챗 독서 챌린지 멤버십 헬퍼는 사용자가 더 낮은 비용으로 위챗 독서 멤버십을 얻을 수 있도록 도와주는 도구로, 자동 독서 및 체크인 기능을 통해 위챗 독서 챌린지 작업을 완료하고 멤버십 혜택을 받을 수 있도록 합니다. 이 도구는 다중 플랫폼 및 다중 브라우저를 지원하며, 풍부한 구성 옵션과 예약 작업 기능을 제공합니다.
Categories:
위챗 독서 멤버십을 약간이라도 저렴하게 구매하기 위해서.
이 문서는 최신 버전이 아닐 수 있습니다. 최신 정보는 오픈소스 주소에서 확인할 수 있습니다: https://github.com/jqknono/weread-challenge-selenium

위챗 독서 규칙
- 오프라인 독서는 총 시간에 포함되지만, 인터넷에 연결되어 보고되어야 함
- 웹 버전, 잉크 스크린, 소형 프로그램, 오디오 북, 유성 북 청취는 총 시간에 포함됨
- 자동 독서 또는 청취 시간이 지나치게 긴 행동에 대해서는 플랫폼이 사용자 행동 특성을 결합하여 판단하며, 지나치게 긴 부분은 총 시간에 포함되지 않음 -当日에 5분 이상 독서해야 유효한 독서 일수로 인정됨
- 5위안을 지불하면 즉시 2일 멤버십을 얻고, 이후 30일 이내에 29일 체크인과 30시간 이상 독서를 하면 30일 멤버십과 30책 코인을 받을 수 있음
- 50위안을 지불하면 즉시 30일 멤버십을 얻고, 이후 365일 이내에 360일 체크인과 300시간 이상 독서를 하면 365일 멤버십과 500책 코인을 받을 수 있음
실제 작업에 따르면, 다음과 같은 명확히 설명되지 않은 특징들이 있습니다:
- 29일 차에 체크인하면 즉시 독서 멤버십 보상을 받으며, 바로 다음 라운드 챌린지 멤버십 체크인을 시작할 수 있습니다. 31일 차를 기다릴 필요 없이, 29일 차 체크인은 이전 라운드와 다음 라운드 모두에 포함됩니다.
- 첫 라운드는 29일이 필요하지만, 이후에는 28일마다 32일 멤버십을 얻을 수 있습니다. 1+28*13=365, 1년에 13라운드를 완료할 수 있으며, 비용은 65위안, 32*13=416일 멤버십과 390책 코인을 얻을 수 있습니다.
- 여전히 연간 카드 챌린지 멤버십이 더划算하지만, 주기가 더 길고 위험이 더 큽니다.
도구 특징
- 헤드리스 브라우저 사용
- 로컬 브라우저 및 원격 브라우저 지원
- 랜덤 브라우저 너비 및 높이
- 로그인 대기 지원
- 로그인 QR코드 새로 고침 지원
- 쿠키 저장 지원
- 쿠키 로드 지원
- 최근에 읽은 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코드를 스캔하여 로그인해야 합니다. 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분으로 독서 시간을 조정하는 것이 좋습니다
- 웹 페이지 QR코드 로그인 쿠키는 30일 유효기간이 있으며, 30일 후 다시 QR코드를 스캔하여 로그인해야 합니다. 월 챌린지 멤버십에 적합합니다
- 이메일 알림이 스팸으로 인식될 수 있으므로 수신 측에 화이트리스트를 추가하는 것이 좋습니다
- 이 프로젝트는 학습 및 교류 목적으로만 사용되며, 상업적 용도나 불법 용도로 사용하지 마십시오
- 잠재적 저작권 침해가 있는 경우
[email protected]로 연락 주시면 이 프로젝트는 즉시 삭제됩니다
개인정보 정책
- 개인정보 수집
- 이 프로젝트는 사용자의
쿠키일부 정보를 수집하여 사용자 통계 및 표시에 사용합니다. - 사용자의 사용 정보를 수집합니다:
사용자 이름 | 첫 사용 시간 | 최근 사용 시간 | 총 사용 횟수 | 브라우저 유형 | 운영 체제 유형 | 독서 시간 설정 | 예외 종료 원인 - 어떠한 정보도 수집되지 않기를 원한다면, 시작 매개변수
WEREAD_AGREE_TERMS=false로 설정할 수 있습니다.
- 이 프로젝트는 사용자의
- 위험 경고
쿠키는 위챗 독서 웹 로그인에 사용할 수 있으며, 로그인 후 책장 작업을 수행할 수 있지만 이 도구는 수집한 정보를 사용하여 로그인 작업을 수행하지 않습니다.- 텐센트 보호 메커니즘은 비정상 로그인 시 모바일 클라이언트에 위험 알림을 보내며, 모바일 클라이언트
설정->로그인 장치에서 로그인 장치를 확인할 수 있습니다. - 이 도구는 순수 JS로 구현되어 있어 역혼합 및 확장이 용이하며, 제3자는 계속 개발할 수 있습니다. 이 도구를 신뢰한다 하더라도 자동화 도구를 사용할 때는 종종 로그인 장치를 확인하여 책장이 악의적으로 조작되는 것을 방지해야 합니다.
참조
- 스크립트 다운로드 링크: weread-challenge.js
- 오픈소스 주소: https://github.com/jqknono/weread-challenge-selenium
- 통계: https://weread-challenge.techfetch.dev
- 글 출처: https://blog.techfetch.dev