diff --git a/parse/jd/jd_task_finshop.js b/parse/jd/jd_task_finshop.js new file mode 100644 index 0000000..aa4e320 --- /dev/null +++ b/parse/jd/jd_task_finshop.js @@ -0,0 +1,140 @@ +import {Template} from '../../template.js' +import jsdom from "jsdom"; + +export class Main extends Template { + constructor() { + super() + this.profile = { + title: '京东财富号签到', + headers: { + referer: 'https://finshop.jd.com/' + }, + sync: 1, + prompt: { + appId: '活动id' + }, + verify: 1, + tempExpire: 3600 + } + } + + async prepare() { + await this.field('appId') + let ua = this.userAgents().jd + let resourceLoader = new jsdom.ResourceLoader({ + userAgent: ua, + "referer": "https://finshop.jd.com/", + }); + let virtualConsole = new jsdom.VirtualConsole(); + this.jsConfig = { + "url": "https://finshop.jd.com/", + "referer": "https://finshop.jd.com/", + "userAgent": ua, + runScripts: "dangerously", + resources: resourceLoader, + includeNodeLocations: true, + storageQuota: 10000000, + pretendToBeVisual: true, + virtualConsole + } + } + + async batch(p) { + p = this.getTemp(p.pid) || p + if (!p.orgName) { + let device = { + appId: p.appId, + deviceInfo: `{"jsToken":"","fp":"${this.md5(new Date().getTime().toString())}","sdkToken":"jdd016DZNHFZEX6ISWPRAZUKJDKGFIRQJ5MRXPZHLTK3ZIVKLBTD4SEZNDR6S${this.rand(10, 99)}JO2TLV${this.rand(10, 99)}HB5MV6JW52RVAZNXKEXXHGYDCX5MIJ7NSC4DY01234567","eid":"FQ7Z2DTGYZSJM5FKY${this.rand(10, 99)}JLAURRHP2UZHK2ID7554EMNWWNNSK3JBCTLTR45IOP3Z5K3YJHOG${this.rand(10, 99)}SJAOB${this.rand(10, 99)}KVS3RH7G2U","appType":1}`, + "modelPreviewType": "1" + } + let getHome = await this.curl({ + 'url': `https://ms.jr.jd.com/gw/generic/uc/h5/m/getHomePageHeadInfo`, + form: `reqData=${this.dumps(device)}`, + } + ) + if (this.haskey(getHome, 'resultData.data.orgName')) { + p.nodeId = getHome.resultData.data.orgNodeId + p.orgName = getHome.resultData.data.orgName + } + else { + p.expired = true + } + } + + return p + } + + async main(p) { + let user = p.data.user; + let context = p.context; + console.log(`正在签到:`, context.orgName || context.appId) + let a = new jsdom.JSDOM(`