From fefeca93865bcd80295e679414cc354bf675d3a5 Mon Sep 17 00:00:00 2001 From: chenyingzhou Date: Thu, 4 Feb 2021 11:56:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E5=B8=90=E5=8F=B7=E7=9B=B8=E4=BA=92?= =?UTF-8?q?=E5=8A=A9=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + docker/crontab_list.sh | 4 +- docker/proc_file.sh | 8 +++- githubAction.md | 6 +++ jdDreamFactoryShareCodes.js | 7 ++++ jdFactoryShareCodes.js | 7 ++++ jdFruitShareCodes.js | 7 ++++ jdPetShareCodes.js | 7 ++++ jdPlantBeanShareCodes.js | 7 ++++ jdShareCodes.js | 73 +++++++++++++++++++++++++++++++++++++ 10 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 jdShareCodes.js diff --git a/.gitignore b/.gitignore index 3b508184..d0bf507a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /box.dat /CookieSet.json /jdCookie.js +/logs diff --git a/docker/crontab_list.sh b/docker/crontab_list.sh index 9841a818..16bc9f6b 100644 --- a/docker/crontab_list.sh +++ b/docker/crontab_list.sh @@ -1,5 +1,5 @@ -# 每3天的23:50分清理一次日志 -50 23 */3 * * rm -rf /scripts/logs/*.log +# 每3天的23:50分清理一次日志(互助码不清理,proc_file.sh对该文件进行了去重) +50 23 */3 * * find /scripts/logs -name '*.log' | grep -v 'sharecode' | xargs rm -rf ##############短期活动############## # 年货节(活动时间:2021年1月9日-2021年2月9日) diff --git a/docker/proc_file.sh b/docker/proc_file.sh index 6def887d..b20de285 100644 --- a/docker/proc_file.sh +++ b/docker/proc_file.sh @@ -12,8 +12,6 @@ jdfruit="${logdDir}/jd_fruit.log" jdpet="${logdDir}/jd_pet.log" jdcrazyJoy="${logdDir}/jd_crazy_joy.log" -echo -e >$sharecodeFile - sed -n '/京东赚赚好友互助码】.*/'p $jdzzFile | awk '{print $4,$5}' | sort | uniq >>$sharecodeFile echo "提取京东赚赚助力码完成" @@ -35,6 +33,12 @@ echo "提取东东萌宠助力码完成" sed -n '/crazyJoy任务好友互助码】.*/'p $jdcrazyJoy | awk '{print $4,$5}' | sort | uniq >>$sharecodeFile echo "提取crazyJoy任务助力码完成" +cp $sharecodeFile ${sharecodeFile}.tmp +sed -i 's/ //' ${sharecodeFile}.tmp +cat ${sharecodeFile}.tmp | sort | uniq >$sharecodeFile +rm ${sharecodeFile}.tmp +echo "互助码排序和去重完成" + echo "===========================================================================" echo "整理完成,具体结果请查看${sharecodeFile}文件" diff --git a/githubAction.md b/githubAction.md index aee7b0ea..731c9a89 100644 --- a/githubAction.md +++ b/githubAction.md @@ -51,6 +51,12 @@ | `JDSGMH_SHARECODES` | 闪购盲盒
互助码 | 非必须 | 10/ | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) | | `JDNY_SHARECODES` | 京东压岁钱
互助码 | 非必须 | 1588/3 | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) | +##### 互助码日志文件环境变量 + +| Name | 归属 | 属性 | 说明 | +| :---------------: | :------------: | :----: | ------------------------------------------------------------ | +| `SHARE_CODE_FILE` | 互助码日志文件 | 非必须 | docker-compose下请填写`/scripts/logs/sharecode.log`,其他填写对应的互助码日志文路径 | + ##### 控制脚本功能环境变量 diff --git a/jdDreamFactoryShareCodes.js b/jdDreamFactoryShareCodes.js index d55878fe..b7b04382 100644 --- a/jdDreamFactoryShareCodes.js +++ b/jdDreamFactoryShareCodes.js @@ -10,6 +10,13 @@ let shareCodes = [ 'V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=@Bo-jnVs_m9uBvbRzraXcSA==@-OvElMzqeyeGBWazWYjI1Q==',//账号一的好友shareCode,不同好友中间用@符号隔开 '-OvElMzqeyeGBWazWYjI1Q==',//账号二的好友shareCode,不同好友中间用@符号隔开 ] + +// 从日志获取互助码 +const logShareCodes = require('./jdShareCodes'); +if (logShareCodes.DREAM_FACTORY_SHARE_CODES.length > 0 && !process.env.DREAM_FACTORY_SHARE_CODES) { + process.env.DREAM_FACTORY_SHARE_CODES = logShareCodes.DREAM_FACTORY_SHARE_CODES.join('&'); +} + // 判断github action里面是否有京喜工厂互助码 if (process.env.DREAM_FACTORY_SHARE_CODES) { if (process.env.DREAM_FACTORY_SHARE_CODES.indexOf('&') > -1) { diff --git a/jdFactoryShareCodes.js b/jdFactoryShareCodes.js index 7a949fbe..3972de84 100644 --- a/jdFactoryShareCodes.js +++ b/jdFactoryShareCodes.js @@ -10,6 +10,13 @@ let shareCodes = [ '',//账号一的好友shareCode,不同好友中间用@符号隔开 '',//账号二的好友shareCode,不同好友中间用@符号隔开 ] + +// 从日志获取互助码 +const logShareCodes = require('./jdShareCodes'); +if (logShareCodes.DDFACTORY_SHARECODES.length > 0 && !process.env.DDFACTORY_SHARECODES) { + process.env.DDFACTORY_SHARECODES = logShareCodes.DDFACTORY_SHARECODES.join('&'); +} + // 判断github action里面是否有东东工厂互助码 if (process.env.DDFACTORY_SHARECODES) { if (process.env.DDFACTORY_SHARECODES.indexOf('&') > -1) { diff --git a/jdFruitShareCodes.js b/jdFruitShareCodes.js index 4a278b70..e88c517f 100644 --- a/jdFruitShareCodes.js +++ b/jdFruitShareCodes.js @@ -10,6 +10,13 @@ let FruitShareCodes = [ '0a74407df5df4fa99672a037eec61f7e@dbb21614667246fabcfd9685b6f448f3@6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@56db8e7bc5874668ba7d5195230d067a',//账号一的好友shareCode,不同好友中间用@符号隔开 '6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@9c52670d52ad4e1a812f894563c746ea@8175509d82504e96828afc8b1bbb9cb3',//账号二的好友shareCode,不同好友中间用@符号隔开 ] + +// 从日志获取互助码 +const logShareCodes = require('./jdShareCodes'); +if (logShareCodes.FRUITSHARECODES.length > 0 && !process.env.FRUITSHARECODES) { + process.env.FRUITSHARECODES = logShareCodes.FRUITSHARECODES.join('&'); +} + // 判断github action里面是否有东东农场互助码 if (process.env.FRUITSHARECODES) { if (process.env.FRUITSHARECODES.indexOf('&') > -1) { diff --git a/jdPetShareCodes.js b/jdPetShareCodes.js index c1e668e7..6168ae5d 100644 --- a/jdPetShareCodes.js +++ b/jdPetShareCodes.js @@ -10,6 +10,13 @@ let PetShareCodes = [ 'MTAxODc2NTEzNTAwMDAwMDAwMjg3MDg2MA==@MTAxODc2NTEzMzAwMDAwMDAyNzUwMDA4MQ==@MTAxODc2NTEzMjAwMDAwMDAzMDI3MTMyOQ==@MTAxODc2NTEzNDAwMDAwMDAzMDI2MDI4MQ==',//账号一的好友shareCode,不同好友中间用@符号隔开 'MTAxODc2NTEzMjAwMDAwMDAzMDI3MTMyOQ==@MTAxODcxOTI2NTAwMDAwMDAyNjA4ODQyMQ==@MTAxODc2NTEzOTAwMDAwMDAyNzE2MDY2NQ==',//账号二的好友shareCode,不同好友中间用@符号隔开 ] + +// 从日志获取互助码 +const logShareCodes = require('./jdShareCodes'); +if (logShareCodes.PETSHARECODES.length > 0 && !process.env.PETSHARECODES) { + process.env.PETSHARECODES = logShareCodes.PETSHARECODES.join('&'); +} + // 判断github action里面是否有东东萌宠互助码 if (process.env.PETSHARECODES) { if (process.env.PETSHARECODES.indexOf('&') > -1) { diff --git a/jdPlantBeanShareCodes.js b/jdPlantBeanShareCodes.js index 81c5c0cb..f16da901 100644 --- a/jdPlantBeanShareCodes.js +++ b/jdPlantBeanShareCodes.js @@ -10,6 +10,13 @@ let PlantBeanShareCodes = [ '66j4yt3ebl5ierjljoszp7e4izzbzaqhi5k2unz2afwlyqsgnasq@olmijoxgmjutyrsovl2xalt2tbtfmg6sqldcb3q@e7lhibzb3zek27amgsvywffxx7hxgtzstrk2lba@olmijoxgmjutyx55upqaqxrblt7f3h26dgj2riy',//账号一的好友shareCode,不同好友中间用@符号隔开 'mlrdw3aw26j3wgzjipsxgonaoyr2evrdsifsziy@mlrdw3aw26j3wgzjipsxgonaoyr2evrdsifsziy',//账号二的好友shareCode,不同好友中间用@符号隔开 ] + +// 从日志获取互助码 +const logShareCodes = require('./jdShareCodes'); +if (logShareCodes.PLANT_BEAN_SHARECODES.length > 0 && !process.env.PLANT_BEAN_SHARECODES) { + process.env.PLANT_BEAN_SHARECODES = logShareCodes.PLANT_BEAN_SHARECODES.join('&'); +} + // 判断github action里面是否有种豆得豆互助码 if (process.env.PLANT_BEAN_SHARECODES) { if (process.env.PLANT_BEAN_SHARECODES.indexOf('&') > -1) { diff --git a/jdShareCodes.js b/jdShareCodes.js new file mode 100644 index 00000000..9dbe47f1 --- /dev/null +++ b/jdShareCodes.js @@ -0,0 +1,73 @@ +// 从日志中获取互助码 + +// process.env.SHARE_CODE_FILE = "/scripts/logs/sharecode.log"; +// process.env.JD_COOKIE = "cookie1&cookie2"; + +exports.JDZZ_SHARECODES = []; +exports.DDFACTORY_SHARECODES = []; +exports.DREAM_FACTORY_SHARE_CODES = []; +exports.PLANT_BEAN_SHARECODES = []; +exports.FRUITSHARECODES = []; +exports.PETSHARECODES = []; +exports.JDJOY_SHARECODES = []; + +let fileContent = ''; +if (process.env.SHARE_CODE_FILE) { + try { + const fs = require('fs'); + fileContent = fs.readFileSync(process.env.SHARE_CODE_FILE, 'utf8'); + } catch (err) { + console.error(err) + } +} +let lines = fileContent.split('\n'); + +let shareCodesMap = { + "JDZZ_SHARECODES": [], + "DDFACTORY_SHARECODES": [], + "DREAM_FACTORY_SHARE_CODES": [], + "PLANT_BEAN_SHARECODES": [], + "FRUITSHARECODES": [], + "PETSHARECODES": [], + "JDJOY_SHARECODES": [], +}; +for (let i = 0; i < lines.length; i++) { + if (lines[i].includes('京东赚赚')) { + shareCodesMap.JDZZ_SHARECODES.push(lines[i].split('】')[1].trim()); + } else if (lines[i].includes('东东工厂')) { + shareCodesMap.DDFACTORY_SHARECODES.push(lines[i].split('】')[1].trim()); + } else if (lines[i].includes('京喜工厂')) { + shareCodesMap.DREAM_FACTORY_SHARE_CODES.push(lines[i].split('】')[1].trim()); + } else if (lines[i].includes('京东种豆得豆')) { + shareCodesMap.PLANT_BEAN_SHARECODES.push(lines[i].split('】')[1].trim()); + } else if (lines[i].includes('东东农场')) { + shareCodesMap.FRUITSHARECODES.push(lines[i].split('】')[1].trim()); + } else if (lines[i].includes('东东萌宠')) { + shareCodesMap.PETSHARECODES.push(lines[i].split('】')[1].trim()); + } else if (lines[i].includes('crazyJoy')) { + shareCodesMap.JDJOY_SHARECODES.push(lines[i].split('】')[1].trim()); + } +} +for (let key in shareCodesMap) { + shareCodesMap[key] = shareCodesMap[key].reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []); // 去重 +} +let cookieCount = 0; +if (process.env.JD_COOKIE) { + if (process.env.JD_COOKIE.indexOf('&') > -1) { + cookieCount = process.env.JD_COOKIE.split('&').length; + } else { + cookieCount = process.env.JD_COOKIE.split('\n').length; + } +} +cookieCount = cookieCount === 1 ? 0 : cookieCount; // 只有一个帐号时,获取日志互助码没什么用 + +for (let key in shareCodesMap) { + exports[key] = []; + if (shareCodesMap[key].length === 0) { + continue; + } + for (let i = 0; i < cookieCount; i++) { + exports[key][i] = shareCodesMap[key].sort(() => Math.random() - 0.5).join('@'); + } +} +