Skip to content

Commit 346a01f

Browse files
authored
Add files via upload
1 parent daa1efd commit 346a01f

1 file changed

Lines changed: 332 additions & 0 deletions

File tree

jiFenApisign.js

Lines changed: 332 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,332 @@
1+
2+
/*
3+
4+
@𝐃𝐃
5+
=========================================
6+
7+
微信:
8+
小哥有礼小程序
9+
10+
11+
=========================================
12+
13+
说明:
14+
15+
小哥有礼小程序 签到可以获得京豆
16+
17+
圈x获取不到ck就把body改成header
18+
19+
20+
⚠️1个ck 签到
21+
22+
定时建议 一天只用跑一次脚 自己设置没有其他任务
23+
24+
25+
26+
=========================================
27+
28+
一共1个cookie 一共1个Secrets 多账号换行
29+
30+
31+
<> <> JIFENAPIHEADER
32+
33+
34+
35+
=========================================
36+
surge:本地
37+
签到获取ck
38+
小哥有礼小程序 = type=http-request,pattern=^https:\/\/lop-proxy\.jd\.com\/*,requires-body=1,max-size=0,script-path=fanciersign.js
39+
40+
41+
42+
43+
=========================================
44+
圈x:本地
45+
签到获取ck
46+
^https:\/\/lop-proxy\.jd\.com\/* url script-request-body fanciersign.js
47+
48+
49+
50+
51+
52+
=========================================
53+
loon:本地
54+
签到获取ck
55+
http-request ^https:\/\/lop-proxy\.jd\.com\/* script-path=fanciersign.js, requires-body=true, timeout=10, tag=小哥有礼小程序
56+
57+
58+
59+
60+
61+
=========================================
62+
小火箭:本地
63+
签到获取ck
64+
小哥有礼小程序 = type=http-request,script-path=fanciersign.js,pattern=^https:\/\/lop-proxy\.jd\.com\/*,max-size=131072,requires-body=true,timeout=10,enable=true
65+
66+
67+
68+
69+
70+
MITM= lop-proxy.jd.com
71+
=========================================
72+
73+
74+
75+
*/
76+
77+
78+
79+
80+
81+
82+
83+
84+
85+
86+
87+
88+
89+
90+
91+
92+
93+
94+
95+
const DD ='小哥有礼小程序';
96+
97+
const $ = new Env(DD);
98+
99+
const notify = $.isNode() ? require('./sendNotify') : '';
100+
101+
$.idx = ($.idx = ($.getval('xgylSuffix') || '1') - 1) > 0 ? ($.idx + 1 + '') : ''; // 账号扩展字符
102+
103+
const logs=0;//设置0关闭日志,1开启日志
104+
105+
const noNolog=0;//1关闭系统通知,0打开系统通知
106+
107+
let dd = "" //
108+
109+
110+
const jiFenApiheaderArr = [];
111+
112+
let jiFenApiheader = $.getdata('jiFenApiheader');
113+
114+
115+
if ($.isNode()) {
116+
if (process.env.JIFENAPIHEADER && process.env.JIFENAPIHEADER.indexOf('#') > -1) {
117+
jiFenApiheader = process.env.JIFENAPIHEADER.split('#');
118+
console.log(`您选择的是用"#"隔开\n`)
119+
}
120+
else if (process.env.JIFENAPIHEADER && process.env.JIFENAPIHEADER.indexOf('\n') > -1) {
121+
jiFenApiheader = process.env.JIFENAPIHEADER.split('\n');
122+
console.log(`您选择的是用换行隔开\n`)
123+
} else {
124+
jiFenApiheader = process.env.JIFENAPIHEADER.split()
125+
};
126+
127+
Object.keys(jiFenApiheader).forEach((item) => {
128+
if (jiFenApiheader[item]) {
129+
jiFenApiheaderArr.push(jiFenApiheader[item])
130+
}
131+
});
132+
133+
console.log(`============ 脚本执行-国际标准时间(UTC):${new Date().toLocaleString()} =============\n`);
134+
135+
}else{
136+
137+
jiFenApiheaderArr.push($.getdata("jiFenApiheader"));
138+
139+
//
140+
let xgylCount = ($.getval('xgylCount') || '1') - 0;
141+
for (let i = 2; i <= xgylCount; i++) {
142+
if ($.getdata(`jiFenApiheader${i}`)) {
143+
144+
jiFenApiheaderArr.push($.getdata(`jiFenApiheader${i}`));
145+
}
146+
147+
}
148+
}
149+
150+
!(async () => {
151+
if (typeof $request != "undefined") {
152+
await jiFenAsign()
153+
} else{
154+
155+
if (!jiFenApiheaderArr[0]) {
156+
$.msg($.name, '运行前需要获取cookie点击前往\n', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
157+
return;
158+
} else {console.log(`\n************ 脚本共${jiFenApiheaderArr.length}${$.name}账号 ************\n`
159+
);
160+
console.log(`\n============ 脚本执行时间(TM):${new Date(new Date().getTime() + 0 * 60 * 60 * 1000).toLocaleString('zh', {hour12: false})} =============\n`)}
161+
162+
for (let i = 0; i < jiFenApiheaderArr.length; i++) {
163+
if(jiFenApiheaderArr[i]){
164+
jiFenApiheader = jiFenApiheaderArr[i];
165+
$.UserName = decodeURIComponent(jiFenApiheader.match(/pin=(.+?);/) && jiFenApiheader.match(/pin=(.+?);/)[1])
166+
$.nickName = '';
167+
$.index = i + 1;
168+
console.log(`\n开始执行【${$.name}${$.index}${$.nickName || $.UserName}\n`)
169+
170+
}
171+
await jiFenApi();
172+
await detail();
173+
await jiFen();
174+
await Msg();
175+
176+
}
177+
178+
}
179+
})()
180+
.catch((e) => $.logErr(e))
181+
.finally(() => $.done())
182+
183+
184+
185+
186+
187+
188+
189+
190+
191+
192+
193+
function jiFenApi(timeout=1) {
194+
return new Promise((resolve) => {
195+
setTimeout( ()=>{
196+
let Url = {
197+
url : `https://lop-proxy.jd.com/jiFenApi/signInAndGetReward`,
198+
headers : JSON.parse(jiFenApiheader),
199+
body: '[{"userNo":"$cooMrdGatewayUid$"}]',
200+
}
201+
$.post(Url, async (err, resp, data) => {
202+
try {
203+
data = JSON.parse(data);
204+
if(logs==1)console.log(data)
205+
$.jiFenApi = data;
206+
if($.jiFenApi.code== 0)
207+
dd+= "【每日签到】+"+$.jiFenApi.content[0].title+"";
208+
if($.jiFenApi.code== -1)
209+
dd+= "【每日签到】"+$.jiFenApi.errorMsg+"";
210+
} catch (e) {
211+
$.logErr(e, resp);
212+
} finally {
213+
resolve()
214+
}
215+
})
216+
},timeout)
217+
})
218+
}
219+
220+
221+
function detail(timeout=1) {
222+
return new Promise((resolve) => {
223+
setTimeout( ()=>{
224+
let Url = {
225+
url : `https://lop-proxy.jd.com/jiFenApi/signInQuery`,
226+
headers : JSON.parse(jiFenApiheader),
227+
body: '[{"userNo":"$cooMrdGatewayUid$"}]',
228+
}
229+
$.post(Url, async (err, resp, data) => {
230+
try {
231+
data = JSON.parse(data);
232+
if(logs==1)console.log(data)
233+
$.detail = data;
234+
if($.detail.code== 1)
235+
dd+= ":已签到"+$.detail.content.signInTotalDays+"天\n";
236+
} catch (e) {
237+
$.logErr(e, resp);
238+
} finally {
239+
resolve()
240+
}
241+
})
242+
},timeout)
243+
})
244+
}
245+
246+
247+
248+
249+
function jiFen(timeout=1) {
250+
return new Promise((resolve) => {
251+
setTimeout( ()=>{
252+
let Url = {
253+
url : `https://lop-proxy.jd.com/jiFenApi/queryUserBeansNumber`,
254+
headers : JSON.parse(jiFenApiheader),
255+
body: '[{"userNo":"$cooMrdGatewayUid$"}]',
256+
}
257+
$.post(Url, async (err, resp, data) => {
258+
try {
259+
data = JSON.parse(data);
260+
if(logs==1)console.log(data)
261+
$.jiFen = data;
262+
if($.jiFen.code== 1)
263+
dd+= "【累计京豆】"+$.jiFen.content+"京豆\n";
264+
} catch (e) {
265+
$.logErr(e, resp);
266+
} finally {
267+
resolve()
268+
}
269+
})
270+
},timeout)
271+
})
272+
}
273+
274+
275+
276+
277+
278+
279+
function Msg() {
280+
281+
if(noNolog==0)$.msg($.name,"",`【京东账号${$.index}】昵称:${$.UserName}\n${dd}`)
282+
283+
}
284+
285+
286+
287+
288+
289+
290+
291+
292+
293+
function jiFenAsign() {
294+
295+
if ($request.url.indexOf("jiFenApi/signInQuery") > 0) {
296+
297+
const jiFenApiheader = JSON.stringify($request.headers);
298+
if(jiFenApiheader)
299+
$.setdata(jiFenApiheader,"jiFenApiheader" + $.idx);
300+
301+
$.msg($.name + $.idx,"","[获取签到数据]✅成功");}
302+
}
303+
304+
305+
306+
307+
308+
309+
310+
311+
312+
313+
314+
315+
316+
317+
318+
319+
320+
321+
322+
323+
324+
325+
326+
327+
328+
329+
330+
331+
332+
function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)}

0 commit comments

Comments
 (0)