encrypted

This commit is contained in:
Faker 2022-04-19 20:10:14 +08:00
parent 7a7fe4bf63
commit 8c5ac5e28a
21 changed files with 7 additions and 3220 deletions

View File

@ -1,37 +0,0 @@
FROM node:lts-alpine3.12
LABEL AUTHOR="none" \
VERSION=0.1.4
ARG KEY="-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn\nNhAAAAAwEAAQAAAQEAvRQk2oQqLB01iVnJKrnI3tTfJyEHzc2ULVor4vBrKKWOum4dbTeT\ndNWL5aS+CJso7scJT3BRq5fYVZcz5ra0MLMdQyFL1DdwurmzkhPYbwcNrJrB8abEPJ8ltS\nMoa0X9ecmSepaQFedZOZ2YeT/6AAXY+cc6xcwyuRVQ2ZJ3YIMBrRuVkF6nYwLyBLFegzhu\nJJeU5o53kfpbTCirwK0h9ZsYwbNbXYbWuJHmtl5tEBf2Hz+5eCkigXRq8EhRZlSnXfhPr2\n32VCb1A/gav2/YEaMPSibuBCzqVMVruP5D625XkxMdBdLqLBGWt7bCas7/zH2bf+q3zac4\nLcIFhkC6XwAAA9BjE3IGYxNyBgAAAAdzc2gtcnNhAAABAQC9FCTahCosHTWJWckqucje1N\n8nIQfNzZQtWivi8GsopY66bh1tN5N01YvlpL4ImyjuxwlPcFGrl9hVlzPmtrQwsx1DIUvU\nN3C6ubOSE9hvBw2smsHxpsQ8nyW1IyhrRf15yZJ6lpAV51k5nZh5P/oABdj5xzrFzDK5FV\nDZkndggwGtG5WQXqdjAvIEsV6DOG4kl5TmjneR+ltMKKvArSH1mxjBs1tdhta4kea2Xm0Q\nF/YfP7l4KSKBdGrwSFFmVKdd+E+vbfZUJvUD+Bq/b9gRow9KJu4ELOpUxWu4/kPrbleTEx\n0F0uosEZa3tsJqzv/MfZt/6rfNpzgtwgWGQLpfAAAAAwEAAQAAAQEAnMKZt22CBWcGHuUI\nytqTNmPoy2kwLim2I0+yOQm43k88oUZwMT+1ilUOEoveXgY+DpGIH4twusI+wt+EUVDC3e\nlyZlixpLV+SeFyhrbbZ1nCtYrtJutroRMVUTNf7GhvucwsHGS9+tr+96y4YDZxkBlJBfVu\nvdUJbLfGe0xamvE114QaZdbmKmtkHaMQJOUC6EFJI4JmSNLJTxNAXKIi3TUrS7HnsO3Xfv\nhDHElzSEewIC1smwLahS6zi2uwP1ih4fGpJJbU6FF/jMvHf/yByHDtdcuacuTcU798qT0q\nAaYlgMd9zrLC1OHMgSDcoz9/NQTi2AXGAdo4N+mnxPTHcQAAAIB5XCz1vYVwJ8bKqBelf1\nw7OlN0QDM4AUdHdzTB/mVrpMmAnCKV20fyA441NzQZe/52fMASUgNT1dQbIWCtDU2v1cP6\ncG8uyhJOK+AaFeDJ6NIk//d7o73HNxR+gCCGacleuZSEU6075Or2HVGHWweRYF9hbmDzZb\nCLw6NsYaP2uAAAAIEA3t1BpGHHek4rXNjl6d2pI9Pyp/PCYM43344J+f6Ndg3kX+y03Mgu\n06o33etzyNuDTslyZzcYUQqPMBuycsEb+o5CZPtNh+1klAVE3aDeHZE5N5HrJW3fkD4EZw\nmOUWnRj1RT2TsLwixB21EHVm7fh8Kys1d2ULw54LVmtv4+O3cAAACBANkw7XZaZ/xObHC9\n1PlT6vyWg9qHAmnjixDhqmXnS5Iu8TaKXhbXZFg8gvLgduGxH/sGwSEB5D6sImyY+DW/OF\nbmIVC4hwDUbCsTMsmTTTgyESwmuQ++JCh6f2Ams1vDKbi+nOVyqRvCrAHtlpaqSfv8hkjK\npBBqa/rO5yyYmeJZAAAAFHJvb3RAbmFzLmV2aW5lLnByZXNzAQIDBAUG\n-----END OPENSSH PRIVATE KEY-----"
ENV DEFAULT_LIST_FILE=crontab_list.sh \
CUSTOM_LIST_MERGE_TYPE=append \
COOKIES_LIST=/scripts/logs/cookies.list \
REPO_URL=git@gitee.com:lxk0301/jd_scripts.git \
REPO_BRANCH=master
RUN set -ex \
&& apk update \
&& apk upgrade \
&& apk add --no-cache bash tzdata git moreutils curl jq openssh-client \
&& rm -rf /var/cache/apk/* \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& mkdir -p /root/.ssh \
&& echo -e $KEY > /root/.ssh/id_rsa \
&& chmod 600 /root/.ssh/id_rsa \
&& ssh-keyscan gitee.com > /root/.ssh/known_hosts \
&& git clone -b $REPO_BRANCH $REPO_URL /scripts \
&& cd /scripts \
&& mkdir logs \
&& npm config set registry https://registry.npm.taobao.org \
&& npm install \
&& cp /scripts/docker/docker_entrypoint.sh /usr/local/bin \
&& chmod +x /usr/local/bin/docker_entrypoint.sh
WORKDIR /scripts
ENTRYPOINT ["docker_entrypoint.sh"]
CMD [ "crond" ]

View File

@ -1,264 +0,0 @@
![Docker Pulls](https://img.shields.io/docker/pulls/lxk0301/jd_scripts?style=for-the-badge)
### Usage
```diff
+ 2021-03-21更新 增加bot交互spnode指令功能是否开启自动根据你的配置判断详见 https://gitee.com/lxk0301/jd_docker/pulls/18
**bot交互启动前置条件为 配置telegram通知并且未使用自己代理的 TG_API_HOST**
**spnode使用前置条件未启动bot交互** _后续可能去掉该限制_
使用bot交互+spnode后 后续用户的cookie维护更新只需要更新logs/cookies.conf即可
使用bot交互+spnode后 后续执行脚本命令请使用spnode否者无法使用logs/cookies.conf的cookies执行脚本定时任务也将自动替换为spnode命令执行
发送/spnode给bot获取可执行脚本的列表选择对应的按钮执行。(拓展使用:运行指定路径脚本,例:/spnode /scripts/jd_818.js)
spnode功能概述示例
spnode conc /scripts/jd_bean_change.js 为每个cookie单独执行jd_bean_change脚本伪并发
spnode 1 /scripts/jd_bean_change.js 为logs/cookies.conf文件里面第一行cookie账户单独执行jd_bean_change脚本
spnode jd_XXXX /scripts/jd_bean_change.js 为logs/cookies.conf文件里面pt_pin=jd_XXXX的cookie账户单独执行jd_bean_change脚本
spnode /scripts/jd_bean_change.js 为logs/cookies.conf所有cookies账户一起执行jd_bean_change脚本
**请仔细阅读并理解上面的内容使用bot交互默认开启spnode指令功能功能。**
+ 2021-03-9更新 新版docker单容器多账号自动互助
+开启方式docker-compose.yml 中添加环境变量 - ENABLE_AUTO_HELP=true
+助力原则:不考虑需要被助力次数与提供助力次数 假设有3个账号则生成 ”助力码1@助力码2@助力码3&助力码1@助力码2@助力码3&助力码1@助力码2@助力码3“
+原理说明1、定时调用 /scripts/docker/auto_help.sh collect 收集各个活动的助力码,整理、去重、排序、保存到 /scripts/logs/sharecodeCollection.log;
2、由于linux进程限制父进程无法获取子进程环境变量在每次脚本运行前在当前进程先调用 /scripts/docker/auto_help.sh export 把助力码注入到环境变量
+ 2021-02-21更新 https://gitee.com/lxk0301/jd_scripts仓库被迫私有老用户重新更新一下镜像https://hub.docker.com/r/lxk0301/jd_scripts)(docker-compose.yml的REPO_URL记得修改)后续可同步更新jd_script仓库最新脚本
+ 2021-02-10更新 docker-compose里面,填写环境变量 SHARE_CODE_FILE=/scripts/logs/sharecode.log, 多账号可实现自己互助(只限sharecode.log日志里面几个活动),注:已停用,请使用2021-03-9更新
+ 2021-01-22更新 CUSTOM_LIST_FILE 参数支持远程定时任务列表 (⚠️务必确认列表中的任务在仓库里存在)
+ 例1:配置远程crontab_list.sh, 此处借用 shylocks 大佬的定时任务列表, 本仓库不包含列表中的任务代码, 仅作示范
+ CUSTOM_LIST_FILE=https://raw.githubusercontent.com/shylocks/Loon/main/docker/crontab_list.sh
+
+ 例2:配置docker挂载本地定时任务列表, 用法不变, 注意volumes挂载
+ volumes:
+ - ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
+ environment:
+ - CUSTOM_LIST_FILE=my_crontab_list.sh
+ 2021-01-21更新 增加 DO_NOT_RUN_SCRIPTS 参数配置不执行的脚本
+ 例:DO_NOT_RUN_SCRIPTS=jd_family.js&jd_dreamFactory.js&jd_jxnc.js
建议填写完整文件名,不完整的文件名可能导致其他脚本被禁用。
例如“jd_joy”会匹配到“jd_joy_feedPets”、“jd_joy_reward”、“jd_joy_steal”
+ 2021-01-03更新 增加 CUSTOM_SHELL_FILE 参数配置执行自定义shell脚本
+ 例1:配置远程shell脚本, 我自己写了一个shell脚本https://raw.githubusercontent.com/iouAkira/someDockerfile/master/jd_scripts/shell_script_mod.sh 内容很简单下载惊喜农场并添加定时任务
+ CUSTOM_SHELL_FILE=https://raw.githubusercontent.com/iouAkira/someDockerfile/master/jd_scripts/shell_script_mod.sh
+
+ 例2:配置docker挂载本地自定义shell脚本,/scripts/docker/shell_script_mod.sh 为你在docker-compose.yml里面挂载到容器里面绝对路径
+ CUSTOM_SHELL_FILE=/scripts/docker/shell_script_mod.sh
+
+ tip如果使用远程自定义请保证网络畅通或者选择合适的国内仓库例如有部分人的容器里面就下载不到github的raw文件那就可以把自己的自定义shell写在gitee上或者换本地挂载
+ 如果是 docker 挂载本地,请保证文件挂载进去了,并且配置的是绝对路径。
+ 自定义 shell 脚本里面如果要加 crontab 任务请使用 echo 追加到 /scripts/docker/merged_list_file.sh 里面否则不生效
+ 注⚠️ 建议无shell能力的不要轻易使用当然你可以找别人写好适配了这个docker镜像的脚本直接远程配置
+ 上面写了这么多如果还看不懂,不建议使用该变量功能。
_____
! ⚠2020-12-11更新镜像启动方式虽然兼容旧版的运行启动方式但是强烈建议更新镜像和配置后使用
! 更新后`command:`指令配置不再需要
! 更新后可以使用自定义任务文件追加在默任务文件之后,比以前的完全覆盖多一个选择
! - 新的自定两个环境变量为 `CUSTOM_LIST_MERGE_TYPE`:自定文件的生效方式可选值为`append``overwrite`默认为`append` ; `CUSTOM_LIST_FILE`: 自定义文件的名字
! 更新镜像增减镜像更新通知,以后镜像如果更新之后,会通知用户更新
```
> 推荐使用`docker-compose`所以这里只介绍`docker-compose`使用方式
Docker安装
- 国内一键安装 `sudo curl -sSL https://get.daocloud.io/docker | sh`
- 国外一键安装 `sudo curl -sSL get.docker.com | sh`
- 北京外国语大学开源软件镜像站 `https://mirrors.bfsu.edu.cn/help/docker-ce/`
docker-compose 安装(群晖`nas docker`自带安装了`docker-compose`
```
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
`Ubuntu`用户快速安装`docker-compose`
```
sudo apt-get update && sudo apt-get install -y python3-pip curl vim git moreutils
pip3 install --upgrade pip
pip install docker-compose
```
### win10用户下载安装[docker desktop](https://www.docker.com/products/docker-desktop)
通过`docker-compose version`查看`docker-compose`版本,确认是否安装成功。
### 如果需要使用 docker 多个账户独立并发执行定时任务,[参考这里](./example/docker%E5%A4%9A%E8%B4%A6%E6%88%B7%E4%BD%BF%E7%94%A8%E7%8B%AC%E7%AB%8B%E5%AE%B9%E5%99%A8%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md#%E4%BD%BF%E7%94%A8%E6%AD%A4%E6%96%B9%E5%BC%8F%E8%AF%B7%E5%85%88%E7%90%86%E8%A7%A3%E5%AD%A6%E4%BC%9A%E4%BD%BF%E7%94%A8docker%E5%8A%9E%E6%B3%95%E4%B8%80%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F)
> 注⚠️:前提先理解学会使用这下面的教程
### 创建一个目录`jd_scripts`用于存放备份配置等数据迁移重装的时候只需要备份整个jd_scripts目录即可
需要新建的目录文件结构参考如下:
```
jd_scripts
├── logs
│   ├── XXXX.log
│   └── XXXX.log
├── my_crontab_list.sh
└── docker-compose.yml
```
- `jd_scripts/logs`建一个空文件夹就行
- `jd_scripts/docker-compose.yml` 参考内容如下(自己动手能力不行搞不定请使用默认配置)
- - [使用默认配置用这个](./example/default.yml)
- - [使用自定义任务追加到默认任务之后用这个](./example/custom-append.yml)
- - [使用自定义任务覆盖默认任务用这个](./example/custom-overwrite.yml)
- - [一次启动多容器并发用这个](./example/multi.yml)
- - [使用群晖默认配置用这个](./example/jd_scripts.syno.json)
- - [使用群晖自定义任务追加到默认任务之后用这个](./example/jd_scripts.custom-append.syno.json)
- - [使用群晖自定义任务覆盖默认任务用这个](./example/jd_scripts.custom-overwrite.syno.json)
- `jd_scripts/docker-compose.yml`里面的环境变量(`environment:`)配置[参考这里](../githubAction.md#互助码类环境变量) 和[本文末尾](../docker/Readme.md#docker专属环境变量)
- `jd_scripts/my_crontab_list.sh` 参考内容如下,自己根据需要调整增加删除,不熟悉用户推荐使用[默认配置](./crontab_list.sh)里面的内容:
```shell
# 每3天的23:50分清理一次日志(互助码不清理proc_file.sh对该文件进行了去重)
50 23 */3 * * find /scripts/logs -name '*.log' | grep -v 'sharecode' | xargs rm -rf
##############短期活动##############
# 小鸽有礼2(活动时间2021年1月28日2021年2月28日)
34 9 * * * node /scripts/jd_xgyl.js >> /scripts/logs/jd_jd_xgyl.log 2>&1
#女装盲盒 活动时间2021-2-19至2021-2-25
5 7,23 19-25 2 * node /scripts/jd_nzmh.js >> /scripts/logs/jd_nzmh.log 2>&1
#京东极速版天天领红包 活动时间2021-1-18至2021-3-3
5 0,23 * * * node /scripts/jd_speed_redpocke.js >> /scripts/logs/jd_speed_redpocke.log 2>&1
##############长期活动##############
# 签到
3 0,18 * * * cd /scripts && node jd_bean_sign.js >> /scripts/logs/jd_bean_sign.log 2>&1
# 东东超市兑换奖品
0,30 0 * * * node /scripts/jd_blueCoin.js >> /scripts/logs/jd_blueCoin.log 2>&1
# 摇京豆
0 0 * * * node /scripts/jd_club_lottery.js >> /scripts/logs/jd_club_lottery.log 2>&1
# 东东农场
5 6-18/6 * * * node /scripts/jd_fruit.js >> /scripts/logs/jd_fruit.log 2>&1
# 宠汪汪
15 */2 * * * node /scripts/jd_joy.js >> /scripts/logs/jd_joy.log 2>&1
# 宠汪汪喂食
15 */1 * * * node /scripts/jd_joy_feedPets.js >> /scripts/logs/jd_joy_feedPets.log 2>&1
# 宠汪汪偷好友积分与狗粮
13 0-21/3 * * * node /scripts/jd_joy_steal.js >> /scripts/logs/jd_joy_steal.log 2>&1
# 摇钱树
0 */2 * * * node /scripts/jd_moneyTree.js >> /scripts/logs/jd_moneyTree.log 2>&1
# 东东萌宠
5 6-18/6 * * * node /scripts/jd_pet.js >> /scripts/logs/jd_pet.log 2>&1
# 京东种豆得豆
0 7-22/1 * * * node /scripts/jd_plantBean.js >> /scripts/logs/jd_plantBean.log 2>&1
# 京东全民开红包
1 1 * * * node /scripts/jd_redPacket.js >> /scripts/logs/jd_redPacket.log 2>&1
# 进店领豆
10 0 * * * node /scripts/jd_shop.js >> /scripts/logs/jd_shop.log 2>&1
# 京东天天加速
8 */3 * * * node /scripts/jd_speed.js >> /scripts/logs/jd_speed.log 2>&1
# 东东超市
11 1-23/5 * * * node /scripts/jd_superMarket.js >> /scripts/logs/jd_superMarket.log 2>&1
# 取关京东店铺商品
55 23 * * * node /scripts/jd_unsubscribe.js >> /scripts/logs/jd_unsubscribe.log 2>&1
# 京豆变动通知
0 10 * * * node /scripts/jd_bean_change.js >> /scripts/logs/jd_bean_change.log 2>&1
# 京东抽奖机
11 1 * * * node /scripts/jd_lotteryMachine.js >> /scripts/logs/jd_lotteryMachine.log 2>&1
# 京东排行榜
11 9 * * * node /scripts/jd_rankingList.js >> /scripts/logs/jd_rankingList.log 2>&1
# 天天提鹅
18 * * * * node /scripts/jd_daily_egg.js >> /scripts/logs/jd_daily_egg.log 2>&1
# 金融养猪
12 * * * * node /scripts/jd_pigPet.js >> /scripts/logs/jd_pigPet.log 2>&1
# 点点券
20 0,20 * * * node /scripts/jd_necklace.js >> /scripts/logs/jd_necklace.log 2>&1
# 京喜工厂
20 * * * * node /scripts/jd_dreamFactory.js >> /scripts/logs/jd_dreamFactory.log 2>&1
# 东东小窝
16 6,23 * * * node /scripts/jd_small_home.js >> /scripts/logs/jd_small_home.log 2>&1
# 东东工厂
36 * * * * node /scripts/jd_jdfactory.js >> /scripts/logs/jd_jdfactory.log 2>&1
# 十元街
36 8,18 * * * node /scripts/jd_syj.js >> /scripts/logs/jd_syj.log 2>&1
# 京东快递签到
23 1 * * * node /scripts/jd_kd.js >> /scripts/logs/jd_kd.log 2>&1
# 京东汽车(签到满500赛点可兑换500京豆)
0 0 * * * node /scripts/jd_car.js >> /scripts/logs/jd_car.log 2>&1
# 领京豆额外奖励(每日可获得3京豆)
33 4 * * * node /scripts/jd_bean_home.js >> /scripts/logs/jd_bean_home.log 2>&1
# 微信小程序京东赚赚
10 11 * * * node /scripts/jd_jdzz.js >> /scripts/logs/jd_jdzz.log 2>&1
# 宠汪汪邀请助力
10 9-20/2 * * * node /scripts/jd_joy_run.js >> /scripts/logs/jd_joy_run.log 2>&1
# crazyJoy自动每日任务
10 7 * * * node /scripts/jd_crazy_joy.js >> /scripts/logs/jd_crazy_joy.log 2>&1
# 京东汽车旅程赛点兑换金豆
0 0 * * * node /scripts/jd_car_exchange.js >> /scripts/logs/jd_car_exchange.log 2>&1
# 导到所有互助码
47 7 * * * node /scripts/jd_get_share_code.js >> /scripts/logs/jd_get_share_code.log 2>&1
# 口袋书店
7 8,12,18 * * * node /scripts/jd_bookshop.js >> /scripts/logs/jd_bookshop.log 2>&1
# 京喜农场
0 9,12,18 * * * node /scripts/jd_jxnc.js >> /scripts/logs/jd_jxnc.log 2>&1
# 签到领现金
27 */4 * * * node /scripts/jd_cash.js >> /scripts/logs/jd_cash.log 2>&1
# 京喜app签到
39 7 * * * node /scripts/jx_sign.js >> /scripts/logs/jx_sign.log 2>&1
# 京东家庭号(暂不知最佳cron)
# */20 * * * * node /scripts/jd_family.js >> /scripts/logs/jd_family.log 2>&1
# 闪购盲盒
27 8 * * * node /scripts/jd_sgmh.js >> /scripts/logs/jd_sgmh.log 2>&1
# 京东秒秒币
10 7 * * * node /scripts/jd_ms.js >> /scripts/logs/jd_ms.log 2>&1
#美丽研究院
1 7,12,19 * * * node /scripts/jd_beauty.js >> /scripts/logs/jd_beauty.log 2>&1
#京东保价
1 0,23 * * * node /scripts/jd_price.js >> /scripts/logs/jd_price.log 2>&1
#京东极速版签到+赚现金任务
1 1,6 * * * node /scripts/jd_speed_sign.js >> /scripts/logs/jd_speed_sign.log 2>&1
# 删除优惠券(默认注释,如需要自己开启,如有误删,已删除的券可以在回收站中还原,慎用)
#20 9 * * 6 node /scripts/jd_delCoupon.js >> /scripts/logs/jd_delCoupon.log 2>&1
```
> 定时任务命之后,也就是 `>>` 符号之前加上 `|ts` 可在日志每一行前面显示时间,如下图:
> ![image](https://user-images.githubusercontent.com/6993269/99031839-09e04b00-25b3-11eb-8e47-0b6515a282bb.png)
- 目录文件配置好之后在 `jd_scripts`目录执行。
`docker-compose up -d` 启动修改docker-compose.yml后需要使用此命令使更改生效
`docker-compose logs` 打印日志;
`docker-compose logs -f` 打印日志,-f表示跟随日志
`docker logs -f jd_scripts` 和上面两条相比可以显示汉字;
`docker-compose pull` 更新镜像;多容器用户推荐使用`docker pull lxk0301/jd_scripts`
`docker-compose stop` 停止容器;
`docker-compose restart` 重启容器;
`docker-compose down` 停止并删除容器;
- 你可能会用到的命令
`docker exec -it jd_scripts /bin/sh -c ". /scripts/docker/auto_help.sh export > /scripts/logs/auto_help_export.log && node /scripts/xxxx.js |ts >> /scripts/logs/xxxx.log 2>&1"` 手动运行一脚本(有自动助力)
`docker exec -it jd_scripts /bin/sh -c "node /scripts/xxxx.js |ts >> /scripts/logs/xxxx.log 2>&1"` 手动运行一脚本(无自动助力)
`docker exec -it jd_scripts /bin/sh -c 'env'` 查看设置的环境变量
`docker exec -it jd_scripts /bin/sh -c 'crontab -l'` 查看已生效的crontab_list定时器任务
`docker exec -it jd_scripts sh -c "git pull"` 手动更新jd_scripts仓库最新脚本默认已有每天拉取两次的定时任务不推荐使用
`docker exec -it jd_scripts /bin/sh` 仅进入容器命令
`rm -rf logs/*.log` 删除logs文件夹里面所有的日志文件linux
`docker exec -it jd_scripts /bin/sh -c ' ls jd_*.js | grep -v jd_crazy_joy_coin.js |xargs -i node {}'` 执行所有定时任务
- 如果是群晖用户在docker注册表搜`jd_scripts`,双击下载映像。
不需要`docker-compose.yml`只需建个logs/目录,调整`jd_scripts.syno.json`里面对应的配置值然后导入json配置新建容器。
若要自定义`my_crontab_list.sh`,再建个`my_crontab_list.sh`文件,配置参考`jd_scripts.my_crontab_list.syno.json`。
![image](../icon/qh1.png)
![image](../icon/qh2.png)
![image](../icon/qh3.png)
### DOCKER专属环境变量
| Name | 归属 | 属性 | 说明 |
| :---------------: | :------------: | :----: | ------------------------------------------------------------ |
| `CRZAY_JOY_COIN_ENABLE` | 是否jd_crazy_joy_coin挂机 | 非必须 | `docker-compose.yml`文件下填写`CRZAY_JOY_COIN_ENABLE=Y`表示挂机,`CRZAY_JOY_COIN_ENABLE=N`表不挂机 |
| `DO_NOT_RUN_SCRIPTS` | 不执行的脚本 | 非必须 | 例:`docker-compose.yml`文件里面填写`DO_NOT_RUN_SCRIPTS=jd_family.js&jd_dreamFactory.js&jd_jxnc.js`, 建议填写完整脚本名,不完整的文件名可能导致其他脚本被禁用 |
| `ENABLE_AUTO_HELP` | 单容器多账号自动互助 | 非必须 | 例:`docker-compose.yml`文件里面填写`ENABLE_AUTO_HELP=true` |

View File

@ -1,155 +0,0 @@
#set -e
#日志路径
logDir="/scripts/logs"
# 处理后的log文件
logFile=${logDir}/sharecodeCollection.log
if [ -n "$1" ]; then
parameter=${1}
else
echo "没有参数"
fi
# 收集助力码
collectSharecode() {
if [ -f ${2} ]; then
echo "${1}:清理 ${preLogFile} 中的旧助力码,收集新助力码"
#删除预处理旧助力码
if [ -f "${logFile}" ]; then
sed -i '/'"${1}"'/d' ${logFile}
fi
#收集日志中的互助码
codes="$(sed -n '/'${1}'.*/'p ${2} | sed 's/京东账号/京东账号 /g' | sed 's// /g' | sed 's/】/】 /g' | awk '{print $4,$5,$6,$7}' | sort -gk2 | awk '!a[$2" "$3]++{print}')"
#获取ck文件夹中的pin值集合
if [ -f "/usr/local/bin/spnode" ]; then
ptpins="$(awk -F "=" '{print $3}' $COOKIES_LIST | awk -F ";" '{print $1}')"
else
ptpins="$(echo $JD_COOKIE | sed "s/[ &]/\\n/g" | sed "/^$/d" | awk -F "=" '{print $3}' | awk -F ";" '{print $1}')"
fi
#遍历pt_pin值
for item in $ptpins; do
#中文pin解码
if [ ${#item} > 20 ]; then
item="$(printf $(echo -n "$item" | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n")"
fi
#根据pin值匹配第一个code结果输出到文件中
echo "$codes" | grep -m1 $item >> $logFile
done
else
echo "${1}${2} 文件不存在,不清理 ${logFile} 中的旧助力码"
fi
}
# 导出助力码
exportSharecode() {
if [ -f ${logFile} ]; then
#账号数
cookiecount=$(echo ${JD_COOKIE} | grep -o pt_key | grep -c pt_key)
if [ -f /usr/local/bin/spnode ]; then
cookiecount=$(cat "$COOKIES_LIST" | grep -o pt_key | grep -c pt_key)
fi
echo "cookie个数${cookiecount}"
# 单个账号助力码
singleSharecode=$(sed -n '/'${1}'.*/'p ${logFile} | awk '{print $4}' | awk '{T=T"@"$1} END {print T}' | awk '{print substr($1,2)}')
# | awk '{print $2,$4}' | sort -g | uniq
# echo "singleSharecode:${singleSharecode}"
# 拼接多个账号助力码
num=1
while [ ${num} -le ${cookiecount} ]; do
local allSharecode=${allSharecode}"&"${singleSharecode}
num=$(expr $num + 1)
done
allSharecode=$(echo ${allSharecode} | awk '{print substr($1,2)}')
# echo "${1}:${allSharecode}"
#判断合成的助力码长度是否大于账号数,不大于,则可知没有助力码
if [ ${#allSharecode} -gt ${cookiecount} ]; then
echo "${1}:导出助力码"
echo "${3}=${allSharecode}"
export ${3}=${allSharecode}
else
echo "${1}:没有助力码,不导出"
fi
else
echo "${1}${logFile} 不存在,不导出助力码"
fi
}
#生成助力码
autoHelp() {
if [ ${parameter} == "collect" ]; then
# echo "收集助力码"
collectSharecode ${1} ${2} ${3}
elif [ ${parameter} == "export" ]; then
# echo "导出助力码"
exportSharecode ${1} ${2} ${3}
fi
}
#日志需要为这种格式才能自动提取
#Mar 07 00:15:10 【京东账号1xxxxxx的京喜财富岛好友互助码】3B41B250C4A369EE6DCA6834880C0FE0624BAFD83FC03CA26F8DEC7DB95D658C
#新增自动助力活动格式
# autoHelp 关键词 日志路径 变量名
############# 短期活动 #############
############# 长期活动 #############
#东东农场
autoHelp "东东农场好友互助码" "${logDir}/jd_fruit.log" "FRUITSHARECODES"
#东东萌宠
autoHelp "东东萌宠好友互助码" "${logDir}/jd_pet.log" "PETSHARECODES"
#种豆得豆
autoHelp "京东种豆得豆好友互助码" "${logDir}/jd_plantBean.log" "PLANT_BEAN_SHARECODES"
#京喜工厂
autoHelp "京喜工厂好友互助码" "${logDir}/jd_dreamFactory.log" "DREAM_FACTORY_SHARE_CODES"
#东东工厂
autoHelp "东东工厂好友互助码" "${logDir}/jd_jdfactory.log" "DDFACTORY_SHARECODES"
#crazyJoy
autoHelp "crazyJoy任务好友互助码" "${logDir}/jd_crazy_joy.log" "JDJOY_SHARECODES"
#京喜财富岛
autoHelp "京喜财富岛好友互助码" "${logDir}/jd_cfd.log" "JDCFD_SHARECODES"
#京喜农场
autoHelp "京喜农场好友互助码" "${logDir}/jd_jxnc.log" "JXNC_SHARECODES"
#京东赚赚
autoHelp "京东赚赚好友互助码" "${logDir}/jd_jdzz.log" "JDZZ_SHARECODES"
######### 日志打印格式需调整 #########
#口袋书店
autoHelp "口袋书店好友互助码" "${logDir}/jd_bookshop.log" "BOOKSHOP_SHARECODES"
#领现金
autoHelp "签到领现金好友互助码" "${logDir}/jd_cash.log" "JD_CASH_SHARECODES"
#闪购盲盒
autoHelp "闪购盲盒好友互助码" "${logDir}/jd_sgmh.log" "JDSGMH_SHARECODES"
#东东健康社区
autoHelp "东东健康社区好友互助码" "${logDir}/jd_health.log" "JDHEALTH_SHARECODES"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +0,0 @@
python_telegram_bot==13.0
requests==2.23.0
MyQR==2.3.1
telegram==0.0.1
tzlocal<3.0

View File

@ -1,13 +0,0 @@
# -*- coding: utf-8 -*-
# @Author : iouAkira(lof)
# @mail : e.akimoto.akira@gmail.com
# @CreateTime: 2020-11-02
# @UpdateTime: 2021-03-21
from setuptools import setup
setup(
name='jd-scripts-bot',
version='0.2',
scripts=['jd_bot', ],
)

View File

@ -1,229 +0,0 @@
# 每3天的23:50分清理一次日志(互助码不清理proc_file.sh对该文件进行了去重)
50 23 */3 * * find /scripts/logs -name '*.log' | grep -v 'sharecodeCollection' | xargs rm -rf
#收集助力码
30 * * * * sh +x /scripts/docker/auto_help.sh collect >> /scripts/logs/auto_help_collect.log 2>&1
##############活动##############
#宠汪汪
35 0-23/2 * * * node /scripts/jd_joy.js >> /scripts/logs/jd_joy.log 2>&1
#宠汪汪兑换
59 7,15,23 * * * node /scripts/jd_joy_reward.js >> /scripts/logs/jd_joy_reward.log 2>&1
#点点券
#10 6,20 * * * node /scripts/jd_necklace.js >> /scripts/logs/jd_necklace.log 2>&1
#惊喜签到
0 3,8 * * * node /scripts/jd_jxsign.js >> /scripts/logs/jd_jxsign.log 2>&1
#东东超市兑换奖品
59 23 * * * node /scripts/jd_blueCoin.js >> /scripts/logs/jd_blueCoin.log 2>&1
#财富岛
35 * * * * node /scripts/jd_cfd.js >> /scripts/logs/jd_cfd.log 2>&1
#京东汽车
10 4,20 * * * node /scripts/jd_car.js >> /scripts/logs/jd_car.log 2>&1
#金榜创造营
13 5,19 * * * node /scripts/jd_gold_creator.js >> /scripts/logs/jd_gold_creator.log 2>&1
#京东多合一签到
0 4,14 * * * node /scripts/jd_bean_sign.js >> /scripts/logs/jd_bean_sign.log 2>&1
#半点京豆雨
30 0-23/1 * * * node /scripts/jd_half_redrain.js >> /scripts/logs/jd_half_redrain.log 2>&1
#东东超市
39 * * * * node /scripts/jd_superMarket.js >> /scripts/logs/jd_superMarket.log 2>&1
#京东极速版红包
20 2,12 * * * node /scripts/jd_speed_redpocke.js >> /scripts/logs/jd_speed_redpocke.log 2>&1
#领京豆额外奖励
10 3,9 * * * node /scripts/jd_bean_home.js >> /scripts/logs/jd_bean_home.log 2>&1
#京东资产变动通知
0 12 * * * node /scripts/jd_bean_change.js >> /scripts/logs/jd_bean_change.log 2>&1
#京东极速版
0 1,7 * * * node /scripts/jd_speed_sign.js >> /scripts/logs/jd_speed_sign.log 2>&1
#我是大老板
35 0-23/1 * * * node /scripts/jd_wsdlb.js >> /scripts/logs/jd_wsdlb.log 2>&1
#
5 3,19 * * * node /scripts/jd_unsubscribe.js >> /scripts/logs/jd_unsubscribe.log 2>&1
#东东萌宠
45 6-18/6 * * * node /scripts/jd_pet.js >> /scripts/logs/jd_pet.log 2>&1
#挑一挑
1 3,9,18 * * * node /scripts/jd_jump.js >> /scripts/logs/jd_jump.log 2>&1
#
36 0,1-23/3 * * * node /scripts/jd_mohe.js >> /scripts/logs/jd_mohe.log 2>&1
#种豆得豆
44 0-23/6 * * * node /scripts/jd_plantBean.js >> /scripts/logs/jd_plantBean.log 2>&1
#东东农场
35 6-18/6 * * * node /scripts/jd_fruit.js >> /scripts/logs/jd_fruit.log 2>&1
#删除优惠券
0 3,20 * * * node /scripts/jd_delCoupon.js >> /scripts/logs/jd_delCoupon.log 2>&1
#
5 2,19 * * * node /scripts/jd_club_lottery.js >> /scripts/logs/jd_club_lottery.log 2>&1
#
40 * * * * node /scripts/jd_jdfactory.js >> /scripts/logs/jd_jdfactory.log 2>&1
#
0 0-23/1 * * * node /scripts/jd_super_redrain.js >> /scripts/logs/jd_super_redrain.log 2>&1
#领金贴
10 1 * * * node /scripts/jd_jin_tie.js >> /scripts/logs/jd_jin_tie.log 2>&1
#健康社区
13 2,5,20 * * * node /scripts/jd_health.js >> /scripts/logs/jd_health.log 2>&1
#秒秒币
10 2 * * * node /scripts/jd_ms.js >> /scripts/logs/jd_ms.log 2>&1
#
1 2,15,19 * * * node /scripts/jd_daily_lottery.js >> /scripts/logs/jd_daily_lottery.log 2>&1
#
9 0-23/3 * * * node /scripts/jd_ddnc_farmpark.js >> /scripts/logs/jd_ddnc_farmpark.log 2>&1
#京喜工厂
39 * * * * node /scripts/jd_dreamFactory.js >> /scripts/logs/jd_dreamFactory.log 2>&1
#闪购盲盒
20 4,16,19 * * * node /scripts/jd_sgmh.js >> /scripts/logs/jd_sgmh.log 2>&1
#
0 0 * * * node /scripts/jd_bean_change1.js >> /scripts/logs/jd_bean_change1.log 2>&1
#
1 0 * * * node /scripts/jd_shop.js >> /scripts/logs/jd_shop.log 2>&1
#摇钱树
23 0-23/2 * * * node /scripts/jd_moneyTree.js >> /scripts/logs/jd_moneyTree.log 2>&1
#排行榜
37 2 * * * node /scripts/jd_rankingList.js >> /scripts/logs/jd_rankingList.log 2>&1
#
32 0-23/6 * * * node /scripts/jd_pigPet.js >> /scripts/logs/jd_pigPet.log 2>&1
#
10-20/5 12 * * * node /scripts/jd_live.js >> /scripts/logs/jd_live.log 2>&1
#京东快递
40 0 * * * node /scripts/jd_kd.js >> /scripts/logs/jd_kd.log 2>&1
#美丽研究院
16 9,15,17 * * * node /scripts/jd_beauty.js >> /scripts/logs/jd_beauty.log 2>&1
#京喜牧场
48 0-23/3 * * * node /scripts/jd_jxmc.js >> /scripts/logs/jd_jxmc.log 2>&1
#京东试用
30 10 * * * node /scripts/jd_try.js >> /scripts/logs/jd_try.log 2>&1
#领现金
42 0-23/6 * * * node /scripts/jd_cash.js >> /scripts/logs/jd_cash.log 2>&1
#赚金币
0 8 * * * node /scripts/jd_zjb.js >> /scripts/logs/jd_zjb.log 2>&1
#
# 0 6 * * * node /scripts/getJDCookie.js >> /scripts/logs/getJDCookie.log 2>&1
#京东赚赚
10 0 * * * node /scripts/jd_jdzz.js >> /scripts/logs/jd_jdzz.log 2>&1
#获取互助码
20 13 * * 6 node /scripts/jd_get_share_code.js >> /scripts/logs/jd_get_share_code.log 2>&1
#
15-55/20 * * * * node /scripts/jd_health_collect.js >> /scripts/logs/jd_health_collect.log 2>&1
#京东到家果园
10 0,8,11,17 * * * node /scripts/jd_jddj_fruit.js >> /scripts/logs/jd_jddj_fruit.log 2>&1
#京东到家
5 0,6,12 * * * node /scripts/jd_jddj_bean.js >> /scripts/logs/jd_jddj_bean.log 2>&1
#京东到家收水滴
10 * * * * node /scripts/jd_jddj_collectWater.js >> /scripts/logs/jd_jddj_collectWater.log 2>&1
#京东到家
5-40/5 * * * * node /scripts/jd_jddj_getPoints.js >> /scripts/logs/jd_jddj_getPoints.log 2>&1
#京东到家
20 */4 * * * node /scripts/jd_jddj_plantBeans.js >> /scripts/logs/jd_jddj_plantBeans.log 2>&1
#
13 3 * * * node /scripts/jd_drawEntrance.js >> /scripts/logs/jd_drawEntrance.log 2>&1
#特务
1,10 0 * * * node /scripts/jd_superBrand.js >> /scripts/logs/jd_superBrand.log 2>&1
#送豆得豆
5 0,12 * * * node /scripts/jd_SendBean.js >> /scripts/logs/jd_SendBean.log 2>&1
#
20 0,2 * * * node /scripts/jd_wish.js >> /scripts/logs/jd_wish.log 2>&1
#财富岛气球
5 * * * * node /scripts/jd_cfd_loop.js >> /scripts/logs/jd_cfd_loop.log 2>&1
#宠汪汪偷狗粮
40 0-21/3 * * * node /scripts/jd_joy_steal.js >> /scripts/logs/jd_joy_steal.log 2>&1
#京小鸽
18 4,11 * * * node /scripts/jd_jxg.js >> /scripts/logs/jd_jxg.log 2>&1
#
20 6,7 * * * node /scripts/jd_morningSc.js >> /scripts/logs/jd_morningSc.log 2>&1
#领现金兑换
0 0 * * * node /scripts/jd_cash_exchange.js >> /scripts/logs/jd_cash_exchange.log 2>&1
#快手水果
33 1,8,12,19 * * * node /scripts/jd_ks_fruit.js >> /scripts/logs/jd_ks_fruit.log 2>&1
#宠汪汪喂食
15 0-23/1 * * * node /scripts/jd_joy_feedPets.js >> /scripts/logs/jd_joy_feedPets.log 2>&1
#宠汪汪赛跑
15 10,12 * * * node /scripts/jd_joy_run.js >> /scripts/logs/jd_joy_run.log 2>&1
#领京豆
38 8,13 * * * node /scripts/jd_mdou.js >> /scripts/logs/jd_mdou.log 2>&1
#
0 1 * * * node /scripts/jd_cleancart.js >> /scripts/logs/jd_cleancart.log 2>&1
#店铺签到
2 2 * * * node /scripts/jd_dpqd.js >> /scripts/logs/jd_dpqd.log 2>&1
#推一推
2 12 * * * node /scripts/jd_tyt.js >> /scripts/logs/jd_tyt.log 2>&1
#
55 6 * * * node /scripts/jd_unsubscriLive.js >> /scripts/logs/jd_unsubscriLive.log 2>&1
#女装盲盒
45 2,20 * * * node /scripts/jd_nzmh.js >> /scripts/logs/jd_nzmh.log 2>&1
#开卡74
47 3 25-30,1 11,12 * node /scripts/jd_opencard74.js >> /scripts/logs/jd_opencard74.log 2>&1
#开卡75
47 2 1-15 12 * node /scripts/jd_opencard75.js >> /scripts/logs/jd_opencard75.log 2>&1
#开卡76
47 3 3-12 12 * node /scripts/jd_opencard76.js >> /scripts/logs/jd_opencard76.log 2>&1
#积分换话费
43 5,17 * * * node /scripts/jd_dwapp.js >> /scripts/logs/jd_dwapp.log 2>&1
# 领券中心签到
5 0 * * * node /scripts/jd_ccSign.js >> /scripts/logs/jd_ccSign.log 2>&1
#邀请有礼
20 9 * * * node /scripts/jd_yqyl.js >> /scripts/logs/jd_yqyl.log 2>&1
#
20 3,6,9 * * * node /scripts/jd_dreamfactory_tuan.js >> /scripts/logs/jd_dreamfactory_tuan.log 2>&1
#京喜领红包
23 0,6,12,21 * * * node /scripts/jd_jxlhb.js >> /scripts/logs/jd_jxlhb.log 2>&1
#超级直播间盲盒抽京豆
1 18,20 * * * node /scripts/jd_super_mh.js >> /scripts/logs/jd_super_mh.log 2>&1
# 内容鉴赏官
5 2,5,16 * * * node /scripts/jd_connoisseur.js >> /scripts/logs/jd_connoisseur.log 2>&1
# 京喜财富岛月饼
5 * * * * node /scripts/jd_cfd_mooncake.js >> /scripts/logs/jd_cfd_mooncake.log 2>&1
# 东东世界
15 3,16 * * * node /scripts/jd_ddworld.js >> /scripts/logs/jd_ddworld.log 2>&1
# 小魔方
31 2,8 * * * node /scripts/jd_mf.js >> /scripts/logs/jd_mf.log 2>&1
# 魔方
11 7,19 * * * node /scripts/jd_mofang.js >> /scripts/logs/jd_mofang.log 2>&1
# 芥么签到
11 0,9 * * * node /scripts/jd_jmsign.js >> /scripts/logs/jd_jmsign.log 2>&1
# 芥么赚豪礼
37 0,11 * * * node /scripts/jd_jmzhl.js >> /scripts/logs/jd_jmzhl.log 2>&1
# 幸运扭蛋
24 9 * 10-11 * node /scripts/jd_lucky_egg.js >> /scripts/logs/jd_lucky_egg.log 2>&1
# 东东世界兑换
0 0 * * * node /scripts/jd_ddworld_exchange.js >> /scripts/logs/jd_ddworld_exchange.log 2>&1
# 天天提鹅
20 * * * * node /scripts/jd_daily_egg.js >> /scripts/logs/jd_daily_egg.log 2>&1
# 发财大赢家
1 2,10 * * * node /scripts/jd_fcdyj.js >> /scripts/logs/jd_fcdyj.log 2>&1
# 翻翻乐
20 * * * * node /scripts/jd_big_winner.js >> /scripts/logs/jd_big_winner.log 2>&1
# 京东极速版签到免单
18 8,12,20 * * * node /scripts/jd_speed_signfree.js >> /scripts/logs/jd_speed_signfree.log 2>&1
# 牛牛福利
1 9,19 * * * node /scripts/jd_nnfl.js >> /scripts/logs/jd_nnfl.log 2>&1
#赚京豆
10,40 0,1 * * * node /scripts/jd_syj.js >> /scripts/logs/jd_syj.log 2>&1
#搞基大神-饭粒
46 1,19 * * * node /scripts/jd_fanli.js >> /scripts/logs/jd_fanli.log 2>&1
#农场集勋章
16 7,16 * * * node /scripts/jd_medal.js >> /scripts/logs/jd_medal.log 2>&1
#京东签到翻牌
10 8,18 * * * node /scripts/jd_sign_graphics.js >> /scripts/logs/jd_sign_graphics.log 2>&1
#京喜财富岛合成生鲜
45 * * * * node /scripts/jd_cfd_fresh.js >> /scripts/logs/jd_cfd_fresh.log 2>&1
#财富岛珍珠兑换
59 0-23/1 * * * node /scripts/jd_cfd_pearl_ex.js >> /scripts/logs/jd_cfd_pearl_ex.log 2>&1
#美丽研究院--兑换
1 7,12,19 * * * node /scripts/jd_beauty_ex.js >> /scripts/logs/jd_beauty_ex.log 2>&1
#锦鲤
5 0 * * * node /scripts/jd_angryKoi.js >> /scripts/logs/jd_angryKoi.log 2>&1
#京东赚京豆一分钱抽奖
10 0 * * * node /scripts/jd_lottery_drew.js >> /scripts/logs/jd_lottery_drew.log 2>&1
#京东保价
41 23 * * * node /scripts/jd_price.js >> /scripts/logs/jd_price.log 2>&1
#金榜年终奖
10 0,2 * * * node /scripts/jd_split.js >> /scripts/logs/jd_split.log 2>&1
#京东小魔方--收集兑换
10 7 * * * node /scripts/jd_mofang_ex.js >> /scripts/logs/jd_mofang_ex.log 2>&1
#骁龙
10 9,17 * * * node /scripts/jd_xiaolong.js >> /scripts/logs/jd_xiaolong.log 2>&1
#京东我的理想家
10 7 * * * node /scripts/jd_lxLottery.js >> /scripts/logs/jd_lxLottery.log 2>&1
#京豆兑换为喜豆
33 9 * * * node /scripts/jd_exchangejxbeans.js >> /scripts/logs/jd_exchangejxbeans.log 2>&1
#早起签到
1 6,7 * * * python3 /jd/scripts/jd_zqfl.py >> /jd/log/jd_zqfl.log 2>&1

View File

@ -1,252 +0,0 @@
#!/bin/sh
set -e
# 放在这个初始化python3环境目的减小镜像体积一些不需要使用bot交互的用户可以不用拉体积比较大的镜像
# 在这个任务里面还有初始化还有目的就是为了方便bot更新了新功能的话只需要重启容器就完成更新
function initPythonEnv() {
echo "开始安装运行jd_bot需要的python环境及依赖..."
apk add --update python3-dev py3-pip py3-cryptography py3-numpy py-pillow
echo "开始安装jd_bot依赖..."
#测试
#cd /jd_docker/docker/bot
#合并
cd /scripts/docker/bot
pip3 install --upgrade pip
pip3 install -r requirements.txt
python3 setup.py install
}
#启动tg bot交互前置条件成立开始安装配置环境
if [ "$1" == "True" ]; then
initPythonEnv
if [ -z "$DISABLE_SPNODE" ]; then
echo "增加命令组合spnode 使用该命令spnode jd_xxxx.js 执行js脚本会读取cookies.conf里面的jd cokie账号来执行脚本"
(
cat <<EOF
#!/bin/sh
set -e
first=\$1
cmd=\$*
echo \${cmd/\$1/}
if [ \$1 == "conc" ]; then
for job in \$(cat \$COOKIES_LIST | grep -v "#" | paste -s -d ' '); do
{ export JD_COOKIE=\$job && node \${cmd/\$1/}
}&
done
elif [ -n "\$(echo \$first | sed -n "/^[0-9]\+\$/p")" ]; then
echo "\$(echo \$first | sed -n "/^[0-9]\+\$/p")"
{ export JD_COOKIE=\$(sed -n "\${first}p" \$COOKIES_LIST) && node \${cmd/\$1/}
}&
elif [ -n "\$(cat \$COOKIES_LIST | grep "pt_pin=\$first")" ];then
echo "\$(cat \$COOKIES_LIST | grep "pt_pin=\$first")"
{ export JD_COOKIE=\$(cat \$COOKIES_LIST | grep "pt_pin=\$first") && node \${cmd/\$1/}
}&
else
{ export JD_COOKIE=\$(cat \$COOKIES_LIST | grep -v "#" | paste -s -d '&') && node \$*
}&
fi
EOF
) >/usr/local/bin/spnode
chmod +x /usr/local/bin/spnode
fi
echo "spnode需要使用的到cookie写入文件该文件同时也为jd_bot扫码获自动取cookies服务"
if [ -z "$JD_COOKIE" ]; then
if [ ! -f "$COOKIES_LIST" ]; then
echo "" >"$COOKIES_LIST"
echo "未配置JD_COOKIE环境变量$COOKIES_LIST文件已生成,请将cookies写入$COOKIES_LIST文件格式每个Cookie一行"
fi
else
if [ -f "$COOKIES_LIST" ]; then
echo "cookies.conf文件已经存在跳过,如果需要更新cookie请修改$COOKIES_LIST文件内容"
else
echo "环境变量 cookies写入$COOKIES_LIST文件,如果需要更新cookie请修改cookies.conf文件内容"
echo $JD_COOKIE | sed "s/[ &]/\\n/g" | sed "/^$/d" >$COOKIES_LIST
fi
fi
CODE_GEN_CONF=/scripts/logs/code_gen_conf.list
echo "生成互助消息需要使用的到的 logs/code_gen_conf.list 文件,后续需要自己根据说明维护更新删除..."
if [ ! -f "$CODE_GEN_CONF" ]; then
(
cat <<EOF
#格式为
#互助类型-机器人ID-提交代码(根据bot作者配置得来)-活动脚本日志文件名-活动代码(根据bot作者配置得来)-查找互助码需要用到的定位字符串
#长期活动示例
#long-@TuringLabbot-jd_sgmh.log-sgmh-暂无
#临时活动示例
#temp-@TuringLabbot-jd_sgmh.log-sgmh-暂无
#每天变化活动示例
#daily-@TuringLabbot-jd_818.log-818-暂无
#种豆得豆
long-@TuringLabbot-/submit_activity_codes-jd_plantBean.log-bean-种豆得豆好友互助码】
#京东农场
long-@TuringLabbot-/submit_activity_codes-jd_fruit.log-farm-东东农场好友互助码】
#京东萌宠
long-@TuringLabbot-/submit_activity_codes-jd_pet.log-pet-东东萌宠好友互助码】
#东东工厂
long-@TuringLabbot-/submit_activity_codes-jd_jdfactory.log-ddfactory-东东工厂好友互助码】
#京喜工厂
long-@TuringLabbot-/submit_activity_codes-jd_dreamFactory.log-jxfactory-京喜工厂好友互助码】
#临时活动
temp-@TuringLabbot-/submit_activity_codes-jd_sgmh.log-sgmh-您的好友助力码为:
#临时活动
temp-@TuringLabbot-/submit_activity_codes-jd_cfd.log-jxcfd-主】你的互助码:
temp-@TuringLabbot-/submit_activity_codes-jd_global.log-jdglobal-好友助力码为
#分红狗活动
long-@LvanLamCommitCodeBot-/jdcrazyjoy-jd_crazy_joy.log-@N-crazyJoy任务好友互助码】
#签到领现金
long-@LvanLamCommitCodeBot-/jdcash-jd_cash.log-@N-您的助力码为
#京东赚赚
long-@LvanLamCommitCodeBot-/jdzz-jd_jdzz.log-@N-京东赚赚好友互助码】
EOF
) >$CODE_GEN_CONF
else
echo "logs/code_gen_conf.list 文件已经存在跳过初始化操作"
fi
echo "容器jd_bot交互所需环境已配置安装已完成..."
curl -sX POST "https://api.telegram.org/bot$TG_BOT_TOKEN/sendMessage" -d "chat_id=$TG_USER_ID&text=恭喜🎉你获得feature容器jd_bot交互所需环境已配置安装已完成并启用。请发送 /help 查看使用帮助。如需禁用请在docker-compose.yml配置 DISABLE_BOT_COMMAND=True" >>/dev/null
fi
#echo "暂停更新配置,不要尝试删掉这个文件,你的容器可能会起不来"
#echo '' >/scripts/logs/pull.lock
echo "定义定时任务合并处理用到的文件路径..."
defaultListFile="/scripts/docker/$DEFAULT_LIST_FILE"
echo "默认文件定时任务文件路径为 ${defaultListFile}"
mergedListFile="/scripts/docker/merged_list_file.sh"
echo "合并后定时任务文件路径为 ${mergedListFile}"
echo "第1步将默认定时任务列表添加到并后定时任务文件..."
cat $defaultListFile >$mergedListFile
echo "第2步判断是否存在自定义任务任务列表并追加..."
if [ $CUSTOM_LIST_FILE ]; then
echo "您配置了自定义任务文件:$CUSTOM_LIST_FILE,自定义任务类型为:$CUSTOM_LIST_MERGE_TYPE..."
# 无论远程还是本地挂载, 均复制到 $customListFile
customListFile="/scripts/docker/custom_list_file.sh"
echo "自定义定时任务文件临时工作路径为 ${customListFile}"
if expr "$CUSTOM_LIST_FILE" : 'http.*' &>/dev/null; then
echo "自定义任务文件为远程脚本,开始下载自定义远程任务。"
wget -O $customListFile $CUSTOM_LIST_FILE
echo "下载完成..."
elif [ -f /scripts/docker/$CUSTOM_LIST_FILE ]; then
echo "自定义任务文件为本地挂载。"
cp /scripts/docker/$CUSTOM_LIST_FILE $customListFile
fi
if [ -f "$customListFile" ]; then
if [ $CUSTOM_LIST_MERGE_TYPE == "append" ]; then
echo "合并默认定时任务文件:$DEFAULT_LIST_FILE 和 自定义定时任务文件:$CUSTOM_LIST_FILE"
echo -e "" >>$mergedListFile
cat $customListFile >>$mergedListFile
elif [ $CUSTOM_LIST_MERGE_TYPE == "overwrite" ]; then
echo "配置了自定义任务文件:$CUSTOM_LIST_FILE,自定义任务类型为:$CUSTOM_LIST_MERGE_TYPE..."
cat $customListFile >$mergedListFile
else
echo "配置配置了错误的自定义定时任务类型:$CUSTOM_LIST_MERGE_TYPE自定义任务类型为只能为append或者overwrite..."
fi
else
echo "配置的自定义任务文件:$CUSTOM_LIST_FILE未找到,使用默认配置$DEFAULT_LIST_FILE..."
fi
else
echo "当前只使用了默认定时任务文件 $DEFAULT_LIST_FILE ..."
fi
echo "第3步判断是否配置了随机延迟参数..."
if [ $RANDOM_DELAY_MAX ]; then
if [ $RANDOM_DELAY_MAX -ge 1 ]; then
echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中..."
sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_joy_reward.js\|jd_joy_steal.js\|jd_joy_feedPets.js\|jd_car_exchange.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $mergedListFile
fi
else
echo "未配置随机延迟对应的环境变量,故不设置延迟任务..."
fi
echo "第4步判断是否配置自定义shell执行脚本..."
if [ 0"$CUSTOM_SHELL_FILE" = "0" ]; then
echo "未配置自定shell脚本文件跳过执行。"
else
if expr "$CUSTOM_SHELL_FILE" : 'http.*' &>/dev/null; then
echo "自定义shell脚本为远程脚本开始下载自定义远程脚本。"
wget -O /scripts/docker/shell_script_mod.sh $CUSTOM_SHELL_FILE
echo "下载完成,开始执行..."
echo "#远程自定义shell脚本追加定时任务" >>$mergedListFile
sh -x /scripts/docker/shell_script_mod.sh
echo "自定义远程shell脚本下载并执行结束。"
else
if [ ! -f $CUSTOM_SHELL_FILE ]; then
echo "自定义shell脚本为docker挂载脚本文件但是指定挂载文件不存在跳过执行。"
else
echo "docker挂载的自定shell脚本开始执行..."
echo "#docker挂载自定义shell脚本追加定时任务" >>$mergedListFile
sh -x $CUSTOM_SHELL_FILE
echo "docker挂载的自定shell脚本执行结束。"
fi
fi
fi
echo "第5步删除不运行的脚本任务..."
if [ $DO_NOT_RUN_SCRIPTS ]; then
echo "您配置了不运行的脚本:$DO_NOT_RUN_SCRIPTS"
arr=${DO_NOT_RUN_SCRIPTS//&/ }
for item in $arr; do
sed -ie '/'"${item}"'/d' ${mergedListFile}
done
fi
echo "第6步设定下次运行docker_entrypoint.sh时间..."
echo "删除原有docker_entrypoint.sh任务"
sed -ie '/'docker_entrypoint.sh'/d' ${mergedListFile}
# 12:00前生成12:00后的cron12:00后生成第二天12:00前的cron一天只更新两次代码
if [ $(date +%-H) -lt 12 ]; then
random_h=$(($RANDOM % 12 + 12))
else
random_h=$(($RANDOM % 12))
fi
random_m=$(($RANDOM % 60))
echo "设定 docker_entrypoint.sh cron为"
echo -e "\n# 必须要的默认定时任务请勿删除" >>$mergedListFile
echo -e "${random_m} ${random_h} * * * docker_entrypoint.sh >> /scripts/logs/default_task.log 2>&1" | tee -a $mergedListFile
echo "第7步 自动助力"
if [ -n "$ENABLE_AUTO_HELP" ]; then
#直接判断变量如果未配置会导致sh抛出一个错误所以加了上面一层
if [ "$ENABLE_AUTO_HELP" = "true" ]; then
echo "开启自动助力"
#在所有脚本执行前,先执行助力码导出
sed -i 's/node/ . \/scripts\/docker\/auto_help.sh export > \/scripts\/logs\/auto_help_export.log \&\& node /g' ${mergedListFile}
else
echo "未开启自动助力"
fi
fi
echo "第8步增加 |ts 任务日志输出时间戳..."
sed -i "/\( ts\| |ts\|| ts\)/!s/>>/\|ts >>/g" $mergedListFile
echo "第9步执行proc_file.sh脚本任务..."
sh /scripts/docker/proc_file.sh
echo "第10步加载最新的定时任务文件..."
if [[ -f /usr/bin/jd_bot && -z "$DISABLE_SPNODE" ]]; then
echo "bot交互与spnode 前置条件成立替换任务列表的node指令为spnode"
sed -i "s/ node / spnode /g" $mergedListFile
#conc每个cookies独立并行执行脚本示例cookies数量多使用该功能可能导致内存爆掉默认不开启 有需求请在自定义shell里面实现
#sed -i "/\(jd_xtg.js\|jd_car_exchange.js\)/s/spnode/spnode conc/g" $mergedListFile
fi
crontab $mergedListFile
echo "第11步将仓库的docker_entrypoint.sh脚本更新至系统/usr/local/bin/docker_entrypoint.sh内..."
cat /scripts/docker/docker_entrypoint.sh >/usr/local/bin/docker_entrypoint.sh
echo "发送通知"
export NOTIFY_CONTENT=""
cd /scripts/docker
node notify_docker_user.js

View File

@ -1,57 +0,0 @@
#!/bin/sh
set -e
#获取配置的自定义参数
if [ -n "$1" ]; then
run_cmd=$1
fi
(
if [ -f "/scripts/logs/pull.lock" ]; then
echo "存在更新锁定文件跳过git pull操作..."
else
echo "设定远程仓库地址..."
cd /scripts
git remote set-url origin "$REPO_URL"
git reset --hard
echo "git pull拉取最新代码..."
git -C /scripts pull --rebase
echo "npm install 安装最新依赖"
npm install --prefix /scripts
fi
) || exit 0
# 默认启动telegram交互机器人的条件
# 确认容器启动时调用的docker_entrypoint.sh
# 必须配置TG_BOT_TOKEN、TG_USER_ID
# 且未配置DISABLE_BOT_COMMAND禁用交互
# 且未配置自定义TG_API_HOST因为配置了该变量说明该容器环境可能并能科学的连到telegram服务器
if [[ -n "$run_cmd" && -n "$TG_BOT_TOKEN" && -n "$TG_USER_ID" && -z "$DISABLE_BOT_COMMAND" && -z "$TG_API_HOST" ]]; then
ENABLE_BOT_COMMAND=True
else
ENABLE_BOT_COMMAND=False
fi
echo "------------------------------------------------执行定时任务任务shell脚本------------------------------------------------"
#测试
# sh /jd_docker/docker/default_task.sh "$ENABLE_BOT_COMMAND" "$run_cmd"
#合并
sh /scripts/docker/default_task.sh "$ENABLE_BOT_COMMAND" "$run_cmd"
echo "--------------------------------------------------默认定时任务执行完成---------------------------------------------------"
if [ -n "$run_cmd" ]; then
# 增加一层jd_bot指令已经正确安装成功校验
# 以上条件都满足后会启动jd_bot交互否还是按照以前的模式启动最大程度避免现有用户改动调整
if [[ "$ENABLE_BOT_COMMAND" == "True" && -f /usr/bin/jd_bot ]]; then
echo "启动crontab定时任务主进程..."
crond
echo "启动telegram bot指令交主进程..."
jd_bot
else
echo "启动crontab定时任务主进程..."
crond -f
fi
else
echo "默认定时任务执行结束。"
fi

View File

@ -1,62 +0,0 @@
jd_scripts:
image: lxk0301/jd_scripts
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过0.2单核的20%
# 经过实际测试建议不低于200M
# deploy:
# resources:
# limits:
# cpus: '0.2'
# memory: 200M
container_name: jd_scripts
restart: always
volumes:
- ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
- ./logs:/scripts/logs
tty: true
# 因为更换仓库地址可能git pull的dns解析不到可以在配置追加hosts
extra_hosts:
- "gitee.com:180.97.125.228"
- "github.com:13.229.188.59"
- "raw.githubusercontent.com:151.101.228.133"
environment:
#脚本更新仓库地址,配置了会切换到对应的地址
- REPO_URL=git@gitee.com:lxk0301/jd_scripts.git
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是示例,根据自己的需求增加删除
#jd cookies
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX;
# 例(多账号): JD_COOKIE=pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&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=
#企业微信机器人通知
- QYWX_KEY=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场
# 例: FRUITSHARECODES=京东农场的互助码
- FRUITSHARECODES=
#京东萌宠
# 例: PETSHARECODES=东东萌宠的互助码
- PETSHARECODES=
# 宠汪汪的喂食数量
- JOY_FEED_COUNT=
#东东超市
# - SUPERMARKET_SHARECODES=
#兑换多少数量的京豆20或者1000京豆,或者其他奖品的文字)
# 例: MARKET_COIN_TO_BEANS=1000
- MARKET_COIN_TO_BEANS=
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。
#并不是所有的脚本都会被启用延迟因为有一些脚本需要整点触发。延迟的目的有两个1是降低抢占cpu资源几率2是降低检查风险主要是1
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数执行延迟的意思。
- RANDOM_DELAY_MAX=120
#使用自定义定任务追加默认任务之后上面volumes挂载之后这里配置对应的文件名
- CUSTOM_LIST_FILE=my_crontab_list.sh

View File

@ -1,62 +0,0 @@
jd_scripts:
image: lxk0301/jd_scripts
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过0.2单核的20%
# 经过实际测试建议不低于200M
# deploy:
# resources:
# limits:
# cpus: '0.2'
# memory: 200M
container_name: jd_scripts
restart: always
volumes:
- ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
- ./logs:/scripts/logs
tty: true
# 因为更换仓库地址可能git pull的dns解析不到可以在配置追加hosts
extra_hosts:
- "gitee.com:180.97.125.228"
- "github.com:13.229.188.59"
- "raw.githubusercontent.com:151.101.228.133"
environment:
#脚本更新仓库地址,配置了会切换到对应的地址
- REPO_URL=git@gitee.com:lxk0301/jd_scripts.git
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是示例,根据自己的需求增加删除
#jd cookies
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX;
#例(多账号): JD_COOKIE=pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&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=
#企业微信机器人通知
- QYWX_KEY=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场
# 例: FRUITSHARECODES=京东农场的互助码
- FRUITSHARECODES=
#京东萌宠
# 例: PETSHARECODES=东东萌宠的互助码
- PETSHARECODES=
# 宠汪汪的喂食数量
- JOY_FEED_COUNT=
#东东超市
# - SUPERMARKET_SHARECODES=
#兑换多少数量的京豆20或者1000京豆,或者其他奖品的文字)
# 例: MARKET_COIN_TO_BEANS=1000
- MARKET_COIN_TO_BEANS=
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。
#并不是所有的脚本都会被启用延迟因为有一些脚本需要整点触发。延迟的目的有两个1是降低抢占cpu资源几率2是降低检查风险主要是1
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数执行延迟的意思。
- RANDOM_DELAY_MAX=120
#使用自定义定任务覆盖默认任务上面volumes挂载之后这里配置对应的文件名和自定义文件使用方式为overwrite
- CUSTOM_LIST_FILE=my_crontab_list.sh
- CUSTOM_LIST_MERGE_TYPE=overwrite

View File

@ -1,59 +0,0 @@
jd_scripts:
image: lxk0301/jd_scripts
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过0.2单核的20%
# 经过实际测试建议不低于200M
# deploy:
# resources:
# limits:
# cpus: '0.2'
# memory: 200M
container_name: jd_scripts
restart: always
volumes:
- ./logs:/scripts/logs
tty: true
# 因为更换仓库地址可能git pull的dns解析不到可以在配置追加hosts
extra_hosts:
- "gitee.com:180.97.125.228"
- "github.com:13.229.188.59"
- "raw.githubusercontent.com:151.101.228.133"
environment:
#脚本更新仓库地址,配置了会切换到对应的地址
- REPO_URL=git@gitee.com:lxk0301/jd_scripts.git
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是示例,根据自己的需求增加删除
#jd cookies
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX;
# 例(多账号): JD_COOKIE=pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&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=
#企业微信机器人通知
- QYWX_KEY=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场
# 例: FRUITSHARECODES=京东农场的互助码
- FRUITSHARECODES=
#京东萌宠
# 例: PETSHARECODES=东东萌宠的互助码
- PETSHARECODES=
# 宠汪汪的喂食数量
- JOY_FEED_COUNT=
#东东超市
# - SUPERMARKET_SHARECODES=
#兑换多少数量的京豆20或者1000京豆,或者其他奖品的文字)
# 例: MARKET_COIN_TO_BEANS=1000
- MARKET_COIN_TO_BEANS=
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。
#并不是所有的脚本都会被启用延迟因为有一些脚本需要整点触发。延迟的目的有两个1是降低抢占cpu资源几率2是降低检查风险主要是1
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数执行延迟的意思。
- RANDOM_DELAY_MAX=120

View File

@ -1,83 +0,0 @@
### 使用此方式,请先理解学会使用[docker办法一](https://github.com/LXK9301/jd_scripts/tree/master/docker#%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95jd_scripts%E7%94%A8%E4%BA%8E%E5%AD%98%E6%94%BE%E5%A4%87%E4%BB%BD%E9%85%8D%E7%BD%AE%E7%AD%89%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E9%87%8D%E8%A3%85%E7%9A%84%E6%97%B6%E5%80%99%E5%8F%AA%E9%9C%80%E8%A6%81%E5%A4%87%E4%BB%BD%E6%95%B4%E4%B8%AAjd_scripts%E7%9B%AE%E5%BD%95%E5%8D%B3%E5%8F%AF)的使用方式
> 发现有人好像希望不同账户任务并发执行,不想一个账户执行完了才能再执行另一个,这里写一个`docker办法一`的基础上实现方式,其实就是不同账户创建不同的容器,他们互不干扰单独定时执行自己的任务。
配置使用起来还是比较简单的,具体往下看
### 文件夹目录参考
![image](https://user-images.githubusercontent.com/6993269/97781779-885ae700-1bc8-11eb-93a4-b274cbd6062c.png)
### 具体使用说明直接在图片标注了,文件参考[图片下方](https://github.com/LXK9301/jd_scripts/new/master/docker#docker-composeyml%E6%96%87%E4%BB%B6%E5%8F%82%E8%80%83),配置完成后的[执行命令]()
![image](https://user-images.githubusercontent.com/6993269/97781610-a1af6380-1bc7-11eb-9397-903b47f5ad6b.png)
#### `docker-compose.yml`文件参考
```yaml
version: "3"
services:
jd_scripts1: #默认
image: lxk0301/jd_scripts
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过 0.2单核的20%
# 经过实际测试建议不低于200M
# deploy:
# resources:
# limits:
# cpus: '0.2'
# memory: 200M
restart: always
container_name: jd_scripts1
tty: true
volumes:
- ./logs1:/scripts/logs
environment:
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
# 互助助码等参数可自行增加,如下。
# 京东种豆得豆
# - PLANT_BEAN_SHARECODES=
jd_scripts2: #默认
image: lxk0301/jd_scripts
restart: always
container_name: jd_scripts2
tty: true
volumes:
- ./logs2:/scripts/logs
environment:
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
jd_scripts4: #自定义追加默认之后
image: lxk0301/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=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
- CUSTOM_LIST_FILE=my_crontab_list.sh
jd_scripts5: #自定义覆盖默认
image: lxk0301/jd_scripts
restart: always
container_name: jd_scripts5
tty: true
volumes:
- ./logs5:/scripts/logs
- ./my_crontab_list5.sh:/scripts/docker/my_crontab_list.sh
environment:
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
- CUSTOM_LIST_FILE=my_crontab_list.sh
- CUSTOM_LIST_MERGE_TYPE=overwrite
```
#### 目录文件配置好之后在 `jd_scripts_multi`目录执行
`docker-compose up -d` 启动;
`docker-compose logs` 打印日志;
`docker-compose pull` 更新镜像;
`docker-compose stop` 停止容器;
`docker-compose restart` 重启容器;
`docker-compose down` 停止并删除容器;
![image](https://user-images.githubusercontent.com/6993269/97781935-8fcec000-1bc9-11eb-9d1a-d219e7a1caa9.png)

View File

@ -1,65 +0,0 @@
{
"cap_add" : [],
"cap_drop" : [],
"cmd" : "",
"cpu_priority" : 50,
"devices" : null,
"enable_publish_all_ports" : false,
"enable_restart_policy" : true,
"enabled" : true,
"env_variables" : [
{
"key" : "PATH",
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key" : "CDN_JD_DAILYBONUS",
"value" : "true"
},
{
"key" : "JD_COOKIE",
"value" : "pt_key=xxx;pt_pin=xxx;"
},
{
"key" : "PUSH_KEY",
"value" : ""
},
{
"key" : "CUSTOM_LIST_FILE",
"value" : "my_crontab_list.sh"
}
],
"exporting" : false,
"id" : "3a2f6f27c23f93bc104585c22569c760cc9ce82df09cdb41d53b491fe1d0341c",
"image" : "lxk0301/jd_scripts",
"is_ddsm" : false,
"is_package" : false,
"links" : [],
"memory_limit" : 0,
"name" : "jd_scripts",
"network" : [
{
"driver" : "bridge",
"name" : "bridge"
}
],
"network_mode" : "default",
"port_bindings" : [],
"privileged" : false,
"shortcut" : {
"enable_shortcut" : false
},
"use_host_network" : false,
"volume_bindings" : [
{
"host_volume_file" : "/docker/jd_scripts/my_crontab_list.sh",
"mount_point" : "/scripts/docker/my_crontab_list.sh",
"type" : "rw"
},
{
"host_volume_file" : "/docker/jd_scripts/logs",
"mount_point" : "/scripts/logs",
"type" : "rw"
}
]
}

View File

@ -1,69 +0,0 @@
{
"cap_add" : [],
"cap_drop" : [],
"cmd" : "",
"cpu_priority" : 50,
"devices" : null,
"enable_publish_all_ports" : false,
"enable_restart_policy" : true,
"enabled" : true,
"env_variables" : [
{
"key" : "PATH",
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key" : "CDN_JD_DAILYBONUS",
"value" : "true"
},
{
"key" : "JD_COOKIE",
"value" : "pt_key=xxx;pt_pin=xxx;"
},
{
"key" : "PUSH_KEY",
"value" : ""
},
{
"key" : "CUSTOM_LIST_FILE",
"value" : "my_crontab_list.sh"
},
{
"key" : "CUSTOM_LIST_MERGE_TYPE",
"value" : "overwrite"
}
],
"exporting" : false,
"id" : "3a2f6f27c23f93bc104585c22569c760cc9ce82df09cdb41d53b491fe1d0341c",
"image" : "lxk0301/jd_scripts",
"is_ddsm" : false,
"is_package" : false,
"links" : [],
"memory_limit" : 0,
"name" : "jd_scripts",
"network" : [
{
"driver" : "bridge",
"name" : "bridge"
}
],
"network_mode" : "default",
"port_bindings" : [],
"privileged" : false,
"shortcut" : {
"enable_shortcut" : false
},
"use_host_network" : false,
"volume_bindings" : [
{
"host_volume_file" : "/docker/jd_scripts/my_crontab_list.sh",
"mount_point" : "/scripts/docker/my_crontab_list.sh",
"type" : "rw"
},
{
"host_volume_file" : "/docker/jd_scripts/logs",
"mount_point" : "/scripts/logs",
"type" : "rw"
}
]
}

View File

@ -1,83 +0,0 @@
{
"cap_add" : null,
"cap_drop" : null,
"cmd" : "",
"cpu_priority" : 0,
"devices" : null,
"enable_publish_all_ports" : false,
"enable_restart_policy" : true,
"enabled" : false,
"env_variables" : [
{
"key" : "PATH",
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key" : "CDN_JD_DAILYBONUS",
"value" : "true"
},
{
"key" : "JD_COOKIE",
"value" : "pt_key=AAJfjaNrADASxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxx5;"
},
{
"key" : "TG_BOT_TOKEN",
"value" : "13xxxxxx80:AAEkNxxxxxxzNf91WQ"
},
{
"key" : "TG_USER_ID",
"value" : "12xxxx206"
},
{
"key" : "PLANT_BEAN_SHARECODES",
"value" : ""
},
{
"key" : "FRUITSHARECODES",
"value" : ""
},
{
"key" : "PETSHARECODES",
"value" : ""
},
{
"key" : "SUPERMARKET_SHARECODES",
"value" : ""
},
{
"key" : "CRONTAB_LIST_FILE",
"value" : "crontab_list.sh"
}
],
"exporting" : false,
"id" : "18af38bc0ac37a40e4b9608a86fef56c464577cc160bbdddec90155284fcf4e5",
"image" : "lxk0301/jd_scripts",
"is_ddsm" : false,
"is_package" : false,
"links" : [],
"memory_limit" : 0,
"name" : "jd_scripts",
"network" : [
{
"driver" : "bridge",
"name" : "bridge"
}
],
"network_mode" : "default",
"port_bindings" : [],
"privileged" : false,
"shortcut" : {
"enable_shortcut" : false,
"enable_status_page" : false,
"enable_web_page" : false,
"web_page_url" : ""
},
"use_host_network" : false,
"volume_bindings" : [
{
"host_volume_file" : "/docker/jd_scripts/logs",
"mount_point" : "/scripts/logs",
"type" : "rw"
}
]
}

View File

@ -1,62 +0,0 @@
version: "3"
services:
jd_scripts1: #默认
image: lxk0301/jd_scripts
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过 0.2单核的20%
# 经过实际测试建议不低于200M
# deploy:
# resources:
# limits:
# cpus: '0.2'
# memory: 200M
restart: always
container_name: jd_scripts1
tty: true
volumes:
- ./logs1:/scripts/logs
environment:
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
# 互助助码等参数可自行增加,如下。
# 京东种豆得豆
# - PLANT_BEAN_SHARECODES=
jd_scripts2: #默认
image: lxk0301/jd_scripts
restart: always
container_name: jd_scripts2
tty: true
volumes:
- ./logs2:/scripts/logs
environment:
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
jd_scripts4: #自定义追加默认之后
image: lxk0301/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=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
- CUSTOM_LIST_FILE=my_crontab_list.sh
jd_scripts5: #自定义覆盖默认
image: lxk0301/jd_scripts
restart: always
container_name: jd_scripts5
tty: true
volumes:
- ./logs5:/scripts/logs
- ./my_crontab_list5.sh:/scripts/docker/my_crontab_list.sh
environment:
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
- TG_USER_ID=12xxxx206
- CUSTOM_LIST_FILE=my_crontab_list.sh
- CUSTOM_LIST_MERGE_TYPE=overwrite

View File

@ -1,20 +0,0 @@
const notify = require('../sendNotify');
const fs = require('fs');
const notifyPath = '/scripts/logs/notify.txt';
async function image_update_notify() {
if (fs.existsSync(notifyPath)) {
const content = await fs.readFileSync(`${notifyPath}`, 'utf8');//读取notify.txt内容
if (process.env.NOTIFY_CONTENT && !content.includes(process.env.NOTIFY_CONTENT)) {
await notify.sendNotify("⚠Docker镜像版本更新通知⚠", process.env.NOTIFY_CONTENT);
await fs.writeFileSync(`${notifyPath}`, process.env.NOTIFY_CONTENT);
}
} else {
if (process.env.NOTIFY_CONTENT) {
notify.sendNotify("⚠Docker镜像版本更新通知⚠", process.env.NOTIFY_CONTENT)
await fs.writeFileSync(`${notifyPath}`, process.env.NOTIFY_CONTENT);
}
}
}
!(async() => {
await image_update_notify();
})().catch((e) => console.log(e))

View File

@ -1,27 +0,0 @@
#!/bin/sh
if [[ -f /usr/bin/jd_bot && -z "$DISABLE_SPNODE" ]]; then
CMD="spnode"
else
CMD="node"
fi
echo "处理jd_crazy_joy_coin任务。。。"
if [ ! $CRZAY_JOY_COIN_ENABLE ]; then
echo "默认启用jd_crazy_joy_coin杀掉jd_crazy_joy_coin任务并重启"
eval $(ps -ef | grep "jd_crazy_joy_coin" | grep -v "grep" | awk '{print "kill "$1}')
echo '' >/scripts/logs/jd_crazy_joy_coin.log
$CMD /scripts/jd_crazy_joy_coin.js | ts >>/scripts/logs/jd_crazy_joy_coin.log 2>&1 &
echo "默认jd_crazy_joy_coin重启完成"
else
if [ $CRZAY_JOY_COIN_ENABLE = "Y" ]; then
echo "配置启用jd_crazy_joy_coin杀掉jd_crazy_joy_coin任务并重启"
eval $(ps -ef | grep "jd_crazy_joy_coin" | grep -v "grep" | awk '{print "kill "$1}')
echo '' >/scripts/logs/jd_crazy_joy_coin.log
$CMD /scripts/jd_crazy_joy_coin.js | ts >>/scripts/logs/jd_crazy_joy_coin.log 2>&1 &
echo "配置jd_crazy_joy_coin重启完成"
else
eval $(ps -ef | grep "jd_crazy_joy_coin" | grep -v "grep" | awk '{print "kill "$1}')
echo "已配置不启用jd_crazy_joy_coin任务仅杀掉"
fi
fi

File diff suppressed because one or more lines are too long