临近双十一,tb和jd都开始福利大战,每天消耗大量时间薅些蝇头小利不值当,但是用脚本跑那就很香了。这篇只介绍jd的脚本,东哥永远是我大哥!前几天给树莓派清了下灰,直接暴力冲洗,里边也没啥文件,又重装了遍Debian-Pi-Aarch64系统,重新设置了下,这次直接部署到树莓派上
。
lxk0301/jd_scripts项目有很多部署方法,此篇只介绍docker部署,两种docker方式都需要docker-compose
方式部署,如何安装compose
自行谷歌
文件获取
教程中的资源都可在此处获取,也可去项目界面获取
获取cookie
1.打开京东手机版
2.按F12
打开控制台,点击左上角的切换图标
3.点击我的
使用手机验证码登陆
4.登陆后切换到network
栏,点击lclear
清除条目,再点我的
,选择log.gif
,查看header
,复制出里面的cookie
5.在consle
下运行
var CV = '你复制拿到的cookie';
var CookieValue = CV.match(/pt_key=.+?;/) + CV.match(/pt_pin=.+?;/);
copy(CookieValue);
这样关键参数已经复制到剪贴板,直接使用即可
docker1部署
创建文件
jd_scripts #操作文件夹
├── logs #容器运行log文件存放文件夹
│ ├── XXXX.log #log文件自动生成,创建空logs文件夹即可
│ └── XXXX.log
├── my_crontab_list.sh #定时任务脚本,可不加,不自定义时使用仓库默认定时任务
└── docker-compose.yml #启动文件,启动前务必编辑
修改文件
my_crontab_list.sh
参考crontab_list.sh
文件内容,复制过来自行修改任务即可
需要会crontab命令
docker-compose.yml
文件参考内容如下
其中JD_COOKIE
必填,通知方式我采用PUSH_KEY
,如不一样可填写其他通知方式,互助码我用脚本自动上车,不需要填写,如有需要可自行填写,或者采用后文的脚本自动上车,如果采用自定义my_crontab_list.sh
,那么需要把volumes
和command
里注释掉的任务取消注释,删除#
即可
jd_scripts:
image: akyakya/jd_scripts
container_name: jd_scripts
restart: always
#如果需要自定定义定时任务的需要自己写好`my_crontab_list.sh`文件 ,取消下面的挂载注释 ,通过 `volumes`挂载进去。
volumes:
# - ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
- ./logs:/scripts/logs
tty: true
environment:
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是事例,根据自己的需求增加删除
#jd cookies
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX
- JD_COOKIE=
#微信server酱通
- PUSH_KEY=
#Bark App通知
- BARK_PUSH=
#telegram机器人通知
- TG_BOT_TOKEN=
- TG_USER_ID=
#钉钉机器人通知
- DD_BOT_TOKEN=
- DD_BOT_SECRET=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场
# 例: FRUITSHARECODES=京东农场的互助码
- FRUITSHARECODES=
#京东萌宠
# 例: PETSHARECODES=东东萌宠的互助码
- PETSHARECODES=
# 宠汪汪的喂食数量
- JOY_FEED_COUNT=40
#京小超
# - SUPERMARKET_SHARECODES=
#兑换多少数量的京豆(20,或者1000京豆,或者其他奖品的文字)
# 例: MARKET_COIN_TO_BEANS=1000
- MARKET_COIN_TO_BEANS=20
#是否开启debug模式打印日志
# 例: JD_DEBUG=false
- JD_DEBUG=
#如果使用自定义定时任务,取消下面一行的注释
#- CRONTAB_LIST_FILE=my_crontab_list.sh
command:
- /bin/sh
- -c
- |
#crontab /scripts/docker/my_crontab_list.sh #如果挂载了自定义任务文件,取消此条注释即可
crond
git -C /scripts/ pull
node
启动测试
目录文件配置好之后在 jd_scripts
目录执行
启动
docker-compose up -d #启动
docker-compose logs #打印日志
docker-compose pull #更新镜像
docker-compose stop #停止容器
docker-compose restart #重启容器
docker-compose down #停止并删除容器
测试
docker exec jd_scripts sh -c 'node jd_bean_sign.js' #手动执行签到脚本,也可替换为农场脚本,更改下脚本名称即可
docker exec jd_scripts sh -c 'ls jd_*.js | xargs -i node {}' #手动执行全部脚本
多账户并行
创建文件
jd_scripts_multi #操作文件夹
├── logX #容器X运行log文件存放文件夹,X需替换数字,与容器名对应,也可自行修改,参考yml文件挂载设置
├── my_crontab_list.sh #定时任务脚本,可不加,不自定义时使用仓库默认定时任务。每个容器内可自定义
└── docker-compose.yml #启动文件,启动前务必编辑
docker-compose.yml
内容如下:
jd_scripts1
和jd_scripts2
容器使用仓库默认定时任务crontab_list.sh
jd_scripts3
容器使用自定义定时任务my_crontab_list3.sh
jd_scripts4
和jd_scripts5
容器使用同一自定义定时任务my_crontab_list4.sh
自行修改environment
中的JD_COOKIE
和PUSH_KEY
version: '3'
services:
jd_scripts1:
image: akyakya/jd_scripts
restart: always
container_name: jd_scripts1
tty: true
volumes:
- ./logs1:/scripts/logs
environment:
- JD_COOKIE=pt_key=;
- PUSH_KEY=
- CRONTAB_LIST_FILE=crontab_list.sh
command:
- /bin/sh
- -c
- |
git -C /scripts/ pull
crond
node
jd_scripts2:
image: akyakya/jd_scripts
restart: always
container_name: jd_scripts2
tty: true
volumes:
- ./logs2:/scripts/logs
environment:
- JD_COOKIE=pt_key=;
- PUSH_KEY=
- CRONTAB_LIST_FILE=crontab_list.sh
command:
- /bin/sh
- -c
- |
git -C /scripts/ pull
crond
node
jd_scripts3:
image: akyakya/jd_scripts
restart: always
container_name: jd_scripts3
tty: true
volumes:
- ./logs3:/scripts/logs
- ./my_crontab_list3.sh:/scripts/docker/my_crontab_list.sh
environment:
- JD_COOKIE=pt_key=;
- PUSH_KEY=
- CRONTAB_LIST_FILE=my_crontab_list.sh
command:
- /bin/sh
- -c
- |
crontab /scripts/docker/my_crontab_list.sh
git -C /scripts/ pull
crond
node
jd_scripts4:
image: akyakya/jd_scripts
restart: always
container_name: jd_scripts4
tty: true
volumes:
- ./logs4:/scripts/logs
- ./my_crontab_list4.sh:/scripts/docker/my_crontab_list.sh
environment:
- JD_COOKIE=pt_key=;
- PUSH_KEY=
- CRONTAB_LIST_FILE=my_crontab_list.sh
command:
- /bin/sh
- -c
- |
crontab /scripts/docker/my_crontab_list.sh
git -C /scripts/ pull
crond
node
jd_scripts5:
image: akyakya/jd_scripts
restart: always
container_name: jd_scripts5
tty: true
volumes:
- ./logs5:/scripts/logs
- ./my_crontab_list4.sh:/scripts/docker/my_crontab_list.sh
environment:
- JD_COOKIE=pt_key=;
- PUSH_KEY=
- CRONTAB_LIST_FILE=my_crontab_list.sh
command:
- /bin/sh
- -c
- |
crontab /scripts/docker/my_crontab_list.sh
git -C /scripts/ pull
crond
node
文件配置好之后在 jd_scripts_multi
目录执行
docker-compose up -d #启动
docker-compose logs #打印日志
docker-compose pull #更新镜像
docker-compose stop #停止容器
docker-compose restart #重启容器
docker-compose down #停止并删除容器
docker3部署
树莓派系统默认有git
,docker-compose
,因此无需安装,直接使用即可。
下载文件
git clone https://github.com/chinnkarahoi/jd-scripts-docker
cd jd-scripts-docker
修改信息
注意使用专业软件,例如notepad++之类
将剪贴板中参数填入到./env/env1
文件中,将server酱
的SCKEY填入./env/all
文件的PUSH_KEY
下
启动测试
启动容器
docker-compose up --build --force-recreate --detach jd1
# jd1是容器名,同时会调用env1中的cookie,因此,如需添加第二个账号,应为,此时jd2会调用env2中cookie信息
docker-compose up --build --force-recreate --detach jd2
测试容器
#运行签到脚本测试,如无意外,会收到server酱发来的通知消息
#jd1
docker exec jd1 bash -c 'set -o allexport; source /all; source /env; source /jd-scripts-docker/resolve.sh; cd /scripts; node jd_bean_sign.js'
#jd2
docker exec jd2 bash -c 'set -o allexport; source /all; source /env; source /jd-scripts-docker/resolve.sh; cd /scripts; node jd_bean_sign.js'
手动执行
#手动运行所有脚本
#jd1
docker exec jd1 bash -c 'set -o allexport; source /all; source /env; source /jd-scripts-docker/resolve.sh; cd /scripts; ls jd_*.js | xargs -i node {}'
#jd2
docker exec jd2 bash -c 'set -o allexport; source /all; source /env; source /jd-scripts-docker/resolve.sh; cd /scripts; ls jd_*.js | xargs -i node {}'
容器会自动运行,平常无需手动,每天0点会自动运行一次所有脚本。
需要配置自定义控制的,请参考Secrets全集合
#其他命令
docker-compose logs #查看log
docker-compose down #停止并删除容器
其他
docker使用问题
权限问题
有时候一些错误是没有操作权限引起的,返回容器文件夹外
chmod -R 777 文件名
多账户并行
docker1
已经更新多帐户并行,docker3
更改下构建命令中的容器名就行
助力码问题
目前一共有种豆得豆
、东东农场
、东东萌宠
、京喜工厂
和东东工厂
五个助力码,需要自行在log
里找自己的助力码
上车脚本
下载后自行按照脚本的介绍添加助力码
和server酱
,数据库每月逢0清空(即0、10、20日),凌晨2点
定时任务需要使用crontab
,自行谷歌crontab定时任务
docker1
内存增长问题
这个问题我也不清除怎么回事,树莓派上docker1和docker3方式都有这个问题出现,但是阿里云上没有出现过
解决办法
1
构建容器时加入限制内存使用条件
····
tty: true
deploy:
resources:
limits:
cpus: '2'
memory: 50M
reservations:
cpus: '0.5'
memory: 20M
volumes:
····
启动命令
docker-compose --compatibility up -d
2
按照教程构建容器后,手动更改容器内存限制
docker update 容器 --memory-swap -1 -memory xxx
docker3
构建出错
某些机器无法使用默认构建容器命令,会出错,可换为以下命令试试
docker-compose up -d build --force-recreate jd1 #不保证可解决
获取助力码脚本
脚本未更新,只能获取种豆得豆
、东东农场
、东东萌宠
助力码,未有京喜工厂
和东东工厂
bash get-code.sh #bash不可用就换sh
参考文章
版权属于:mancornuto
本文链接:https://mancornuto.xyz/archives/0012.html
转载时须注明出处及本声明