From ab3790e864e6eb8655bdfdaac412ae3bea01db18 Mon Sep 17 00:00:00 2001 From: star Date: Thu, 3 Jun 2021 21:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=BD=E5=88=B0=E5=AE=9E?= =?UTF-8?q?=E7=89=A9=E6=97=B6=E7=9A=84=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_star_shop.js | 79 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 5 deletions(-) diff --git a/jd_star_shop.js b/jd_star_shop.js index 05d67a65..a004b027 100644 --- a/jd_star_shop.js +++ b/jd_star_shop.js @@ -34,12 +34,12 @@ $.authorCodeList = [ let cookiesArr = []; let uniqueIdList = [ {'id':'637BQA','name':'成毅'},{'id':'XLDYRJ','name':'白宇'},{'id':'94FEDQ','name':'任嘉伦'},{'id':'GN949D','name':'刘宇宁'},{'id':'WG73ME','name':'李光洁'},{'id':'5JFCD6','name':'李纹翰'}, - {'id':'YCDXNN','name':'蔡徐坤'},{'id':'CX522V','name':'邓伦'},{'id':'877JM4','name':'张哲瀚'},{'id':'D22Q7C','name':'孟美岐'},{'id':'K6DARX','name':'龚俊'}, + {'id':'YCDXNN','name':'蔡徐坤'},{'id':'CX522V','name':'邓伦'},{'id':'877JM4','name':'张哲瀚'},{'id':'D22Q7C','name':'孟美岐'},{'id':'K6DARX','name':'龚俊'},{'id':'2SFR44','name':'白茶'}, {'id':'S99D9G','name':'刘浩存'},{'id':'ET5F23','name':'吴尊'},{'id':'TXU6GB','name':'刘雨欣'},{'id':'FBFN48','name':'李宇春'},{'id':'UK2SUY','name':'虞书欣'},{'id':'VS4PEM','name':'热依扎'}, {'id':'QE9757','name':'黄弈'},{'id':'2PFR4L','name':'张云龙'},{'id':'4A2M7K','name':'张伯芝'},{'id':'J8UWSP','name':'戚薇'},{'id':'3FU8S5','name':'周柯宇'},{'id':'P94VEU','name':'林志玲'}, {'id':'LW4LCK','name':'田鸿杰'},{'id':'MW9U5Z','name':'吴宇恒'},{'id':'AVDKNT','name':'张嘉倪'},{'id':'3PU8SZ','name':'阿云嘎'},{'id':'ZQ7TQR','name':'马家辉'}, {'id':'VZ4PEY','name':'翟潇闻'}, {'id':'ZH7TQ6','name':'李一桐'},{'id':'4C2M75','name':'张馨予'},{'id':'E55F2M','name':'雷米'},{'id':'M79U5N','name':'无穷小亮'},{'id':'762GUB','name':'刘昊然'},{'id':'8K7JM3','name':'止庵'}, - + {'id':'LQ4LCS','name':'倪妮'},{'id':'YTDXNL','name':'宫殿君'},{'id':'5RFCD9','name':'王菲菲'}, ]; /**奖品只有优惠券,不做他们家的任务 *{'id':'TRU6GG','name':'王一博'} @@ -68,8 +68,19 @@ if ($.isNode()) { for (let i = 0; i < cookiesArr.length; i++) { $.index = i + 1; $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } await main(); } $.inviteCodeList.push(...getRandomArrayElements($.authorCodeList, $.authorCodeList.length)); @@ -94,6 +105,7 @@ if ($.isNode()) { }) async function main() { + let sendMessage = ''; uniqueIdList = getRandomArrayElements(uniqueIdList, uniqueIdList.length); console.log(`现共查询到${uniqueIdList.length}个明星小店\n`); for (let j = 0; j < uniqueIdList.length; j++) { @@ -108,16 +120,28 @@ async function main() { } console.log(`\n`); } + console.log(`=============${$.UserName }:星店长奖励汇总================`); await $.wait(1000); $.rewards = []; await getReward(); for (let i = 0; i < $.rewards.length; i++) { if ($.rewards[i].prizeType === 1) { - console.log(`获得优惠券:${$.rewards[i].prizeDesc}`); + console.log(`获得优惠券`); } else if ($.rewards[i].prizeType === 6) { - console.log(`获得明星私房照一张,可进活动页面下载`); + console.log(`获得明星照片或者视频`); + } else if ($.rewards[i].prizeType === 5) { + if(!$.rewards[i].fillReceiverFlag){ + console.log(`获得实物:${$.rewards[i].prizeDesc || ''},未填写地址`); + sendMessage += `${$.UserName },获得实物:${$.rewards[i].prizeDesc || '' }\n`; + }else{ + console.log(`获得实物:${$.rewards[i].prizeDesc || ''},已填写地址`); + } + } else { + console.log(`获得其他:${$.rewards[i].prizeDesc || ''}`); } - //暂时只抽到这2样,未抽到实物 + } + if(sendMessage){ + await notify.sendNotify(`星店长`, sendMessage); } } @@ -140,6 +164,7 @@ async function getReward() { return new Promise(async resolve => { $.get(myRequest, (err, resp, data) => { try { + data = JSON.parse(data); if (data.code === 0) { $.rewards = data.data; } @@ -322,6 +347,50 @@ function getPostRequest(body) { return {url: url, method: method, headers: headers, body: body}; } +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} /** * 随机从一数组里面取 * @param arr