Compare commits

..

2 Commits

Author SHA1 Message Date
可达鸭
22a902c889 . 2025-07-16 13:28:11 +08:00
可达鸭
b3ed104be0 fileCrypto 2025-07-16 13:24:39 +08:00
64 changed files with 140 additions and 11537 deletions

58
fileCrypto.js Executable file
View File

@ -0,0 +1,58 @@
import {
promises as fs,
readdirSync,
lstatSync
} from 'fs';
import path from 'path';
import {
Buffer
} from 'buffer';
import {
fileURLToPath
} from 'url';
import ini from 'ini'
const __filename = fileURLToPath(
import.meta.url);
const __dirname = path.dirname(__filename);
const ENCRYPTION_MARKER = 'PsyDuck:';
async function isFileEncrypted(filePath) {
try {
const content = await fs.readFile(filePath, 'utf-8');
return content.startsWith(ENCRYPTION_MARKER);
} catch (error) {
if (error.code === 'ENOENT') {
console.error('文件不存在:', filePath);
}
return false;
}
}
function tripleReverseDecrypt(encryptedHexStr, originalPadding) {
let result = '';
for (let i = 0; i < encryptedHexStr.length; i += 3) {
const segment = encryptedHexStr.substr(i, 3);
result += [...segment].reverse().join('');
}
return originalPadding > 0 ? result.slice(0, -originalPadding) : result;
}
export async function decryptFile(inputPath, outputPath) {
try {
if (!await isFileEncrypted(inputPath)) {
console.log('文件未加密或格式不正确');
return false;
}
const encryptedContent = await fs.readFile(inputPath, 'utf-8');
const data = encryptedContent.slice(ENCRYPTION_MARKER.length);
const [paddingHex, encryptedHex] = data.split(':');
const originalPadding = parseInt(paddingHex, 16);
const decryptedHex = tripleReverseDecrypt(encryptedHex, originalPadding);
const base64Str = Buffer.from(decryptedHex, 'hex').toString('utf-8');
const fileContent = Buffer.from(base64Str, 'base64');
await fs.writeFile(outputPath, fileContent);
console.log(`文件解密成功: ${outputPath}`);
return true;
} catch (error) {
console.error('解密失败:', error);
return false;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,42 +1 @@
import {Template} from '../../template.js' PsyDuck:2:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c456966333c4d62353636386165363532363b2255396947797a47794b434761494143476349614947434761395a43667e626259586a676f4e4f614763496149474347614940384b4349614947384b4063414947634962436863357c795249677d63765957485c6a4b4b636767756f6947434761566f614b4349614947474a765565374a6749613168375f64436b636767756f694743476149414347674968746c434132336652497449603367334b65595258486e6c765a5a4857396341494763496149474347614266574037497e42665e6c62456158576350724c474d667e62625e6c6845315347496761494143476349614267574036494e4850723a643057435862346642607344324160674a7c6c4e4d613d6367756f67776f494143476349614947434761494143476349614a4753397642636346374962446f584772736f6a46723c7641673354756c407d4b6d6c7e4266335a69595a48615d6379326453307232653256674a593164675574305a52613d623e416037557953515759323976455948467a526937603751793855523672355c626e69626a52695235325053786962323a495067557c345a436652335659543239795a594346335d677a59375a65636c6e67754476436a623e6c62613d6c6e62425a5a434639694e4a56385a37665154486a435a47525b655e4a556b613464664a617e6346515d62357456576649634c7a446057447653515749696f7949483e6d60595248677751315459335441515a4647614c6f69474347614941434763496149474347614941436768546e436c796b474941434763496149474347614941434763496149474743763a583246384943794b4347614941434763496149474347614941434763496149474348624362485a444a6f6a475239717d494a44397a47794b434761494143476349614947434761494143476349614947434c62456248607d63355946784b434941434763496149474347614941434763496149474347614941434763496149475d6976636e4b56774a655f494969714d4d444b4349614947434761494143476349614947434761494143476349324c4961476f49414347634961494743476149414347634961466761576f49414347634961494743476149424349396361494743476149414347615b6f69474347614941434767496c694d634038416c674a7d6c686368723c645568636a7751746c45434e614a5647503359653a594755767a4b6940784943794b434761494143476349614947434761436533607d627a5c466e667463637d5763503243605e6c66634149476349614947434761494143476849714265485e6e4b4c437e626267396c4c4c6450726a6c6279354946444f6853795949615b6f694743476149414347684940394b43476149414347634962426c484c6e494c674d6349386160674a7c6c486d68623364756c635a7851646745734c614a5e4740365955336a77544a4264523c627a4779476a7a754d476970735b42434739636149474347614941434763496149474845715165376d697235326343327a4940346768443a4a5161576f494143476349614947434761494243477d6c787a56697e6745357c3739556175386269756536313d4f65596a41697b4b4941434763496149474349326341494763496149474347615a58775a735a324347496761494143476349614947434761494148657742693b4e48407e3a54324079636149474347614941436761566f69474347615660714937633f600d
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东车管家签到',
crontab: 4
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let sign = await this.curl({
'url': `https://api.m.jd.com/carPromotion_doSign?functionId=carPromotion_doSign&body={"obtainOrUseScore":1,"encryptAssignmentId":"3zex5T6aHbQRCTfGuv1jruLCgnUX","itemId":"1"}&appid=M-CAR`,
user,
algo: {
appId: 'd2328',
expire: {
"errCode": 203
},
}
}
)
if (this.haskey(sign, 'data.bean')) {
p.info.work = true
p.msg("签到奖励: 1豆")
}
else if (this.haskey(sign, 'data.subCode', '103')) {
p.info.work = true
p.log('任务已完成')
}
else {
p.log(sign)
}
}
}

View File

@ -1,58 +1 @@
import {Template} from '../../template.js' PsyDuck:1:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c45696533563b233536373b67356175397956497a47794b434961494743476149414347634961436748467a52624840396f324347496761494143476349614947434761494143476349624958533072646c6d6035556c6f4b49696175335237395561716f575871466c674b696d49494b4347614941434763496149474347615667734b434961494743476149414347634961436763357c795f6a47635d47794b43476149414347634961494743476164665d6977513a5f4549603263665e4c614c6f6947434761494143476349614947434a6263693d657744664f49496a71634149476349614947434761566f61476349614667615b4f49414347674976456a375a6549424859785a6243685d6f655b424347396361494743476149414357685964616858576144686760797365316d5753764a57635e67593e416058507a446c685a434a7363404967614942434937636f6947434761595e48653d626d426747507662686947735b3243474967614941434763496142675740364946585a785a6940574357726c425d686744754465485c6e63637a4b434961494743476149424353785a6153674979314946475337593c6940584f62516d48557339765269634738634149476349614947434761494143476349614947434e61546a48437a7a6f69576740384462484a796f7839564850726c403d657d617159553234793c4e42637751765465334865395253607232243a5f5e6576395253607232453a5a344a61416647503d65365953485b6a385252567d65365953485b6a6a464d6777436c605b685c64395862686644693958533072646c6d6033556a526a674c6c62615e69344165595d3d6b69556134473d6966446a67423c516258553753615f49496b693561435572397934655744364465335863397254606d603c556c656b63563a4959734b47494143476349614947434761494143476349614947584a765a5948437963614947434761494143476349614947434761494243686742746f4649673263414947634961494743476149414347634961494743476149414357685a786167485c6a6f4249473963614947434761494143476349614947434761494143476349614947434761494a436a77544a4264523c62694f6a47645d71434a496761494143476349614947434761494143476349614947434761566f61476349614947434761494143476349614947434761566f61476349614947434761494143476349324349496761494143476349614b4761576f494143476349614947774c6844624359785a6463685d6761505243686234764460434032416c674a7d6c3e43617d6f67756f674763496149474347614941434763496149474347613a4653697342336946474f62446258677a737f6c46423776516533447d6c607c4b4d667e5269336a67426c626c5e6571595e4760375179305552313a626e4d6037517933555759313958626866446a446c4239764a59365477597c6555474e665a5a53686843724a503443315a5e475f685962595647503e516a586078446b695d7230785a5537503750376a414d667a4a5b686939756a4958533072646c6d6035556c694b6a696f4a4478477d6c7e42665e6c624561585577593e416058507a446c685a484a60366947537163414947634961494743476149414347634961494743413233665249714c6f694743476149414347634961494743476149414357675968726e6a776f756f67476349614947434761494143476349614947434761494143476749764367654b6c6f4149496a7d794a5a4a69654c4f61476349614947434761494143476349614947434761566f61476349614947434761494143476349324349496761494143476349614b4761576f494143476349614947674d6c4948636037417c6c4a6d68683364726c6355786a5968586463615d43734964695b5858626c4a4e6c6234764a5965457c6a583d657d63365953485b6a66564d637754655b4e63576b756f67476349614947434761494143476349724a50496f6163665d5338596a4c4b5d6862446547657d63365953485b6a5355376d6972753a5968586463625d65585562494c34493049454440784943794b434761494143476349614947434761494143476349783946484571526e484e684b714955323579446657643344653958533072646c6d6035556c6b4b61576f4941434763496149474347614941434763496143673344753363625f6f49356f66557d47586f6447684a747a5968586463615d55774a3649503359755a5468686d6342526a5d667a6c4a4e6c6234764a5956486a4266586c656647576642307163414947634961494743476149414347684940394b4347614941434763496149474347615a58775a735a324347496761494143476349614947434761494143476349724c477d66787a5869376c455975394f676f55396944396f61456b433c6a34664259734a65395b5858626c4a4e6c6234764a5965457c6a583d657d63365953485b6a66564d637754365539595447495b634b434961494743476149414347634961466761576f494143476349614947384b40494143476349614947434c62426e484c684943794b43476149414347634961494743476143653363723263694f55773347635f653f49335e656b29716f616563635979434049676149414347634961466761576f494143476349614947674d6c4948636037417c6c4a6d68683364726c6355786a5968586463615d43734964695b5858627a4b6940784943794b434761494143476349614947434761436533607d627a5c466e667463637d5763503243605e6c66634149476349614947434761566f61476349614667715930634f670d3
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东社群红包',
prompt: {
activityId: "活动id1|id2"
},
sync: 1,
verify: true,
crontab: 3
}
}
async prepare() {
await this.field('activityId')
}
async main(p) {
let user = p.data.user;
let s = await this.curl({
'url': `https://api.m.jd.com/client.action?functionId=chatReward_doReward&appid=wechat_activity&client=h5&body={"activityId":"${p.context.activityId}"}`,
user,
algo: {
expire: {
"subCode": 103
}
}
}
)
let reward = await this.curl({
'url': `https://api.m.jd.com/client.action?functionId=chatReward_mainPage&appid=wechat_activity&client=h5&body={"activityId":"${p.context.activityId}"}`,
user,
algo: {
appId: "323f1",
}
}
)
if (this.haskey(reward, 'data.rewardInfo.rewardValue')) {
if (reward.data.rewardInfo.rewardType == 1) {
// p.msg(p.context.activityId)
p.msg(`红包: ${reward.data.rewardInfo.rewardValue}`)
}
else {
p.log(`优惠券: ${reward.data.rewardInfo.rewardValue}`)
}
}
else {
p.log("什么也没有")
}
if (this.haskey(reward, 'data')) {
p.info.work = true
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,50 +1 @@
import {Template} from '../../template.js' PsyDuck:1:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c456965336f645d5532393861664b45377c437146374c47497a47794b43476149414347634961494743476164665d6977513a5f454968714c4f61476349614947434761494143476349624a5f7757786f41496e67527642606963736341494763496149474347614941434767497c646557497664664d43796f714d484447714c4f6147634961494743476149414347634962436a3d657944664749696f314c4061476f4941434763496149474347614942436a7755653f4a496871634149476349614947434761566f61476349614667615b4f49414347674976456a375a6549424859785a6243685d6f655b4243473963614947434932634f6747634961495748553e626d4d6767527642606967785b4243473963614947434761494143676742365940584a765a5948576350724c475d68624465476578546e436c7a6b434941434763496149474343725a515857623979346557443644614349384971495532357944665764344443794b434761494143476349724a535857615958776e697231494947467e62625e6c6845715955775e6872624968334632466761576f494143476349614947774c684462436a77517469453447605954686868516154676740787365396a68547a4b43784b4349414347634961494743476149414347634961494757467a63603d4637496243684840724a51345863397254606d603c5166575a7338724953585d62326a43447d6a787a5662357c465c6857745a703a497d66783a5c6255713646416368593f6a4a5d613d623e4160375579535157693751353a5048586a39525356623a764a54365a79516467457d6a7a4a5668493b756a496c6d627e4569485032515e486a7751746265575576446c654b6a696f6a49784a6432653250385a386c404d6a76336c626e6d6261326c5e6a424a503849634c7a446057447653515749696f69456b42367e62625e6c6845715165585c62526c656b63563a4a494d637e5166576574446133684843725a5a536671336a536c4e607e32643249345d755d453358746a4e4d637751765465564c6a636e4e607232343d495455754d443342335e6a585b3236714a56575377505c61613745795a55444a744c6d4a5d36496963664d55744a71355067467862655d6d6d62365460323979316251653743355469623d6c516a536967547c6a533448706e4b6a433a7e61436d4749764465376c6a63703d4447537163414947634961494743476149414347634961494743413233665249714c6f694743476149414347634961494743476149414357675968726e6a776f756f67476349614947434761494143476349614947434761494143476349743c457e6b43494143476349614947434761494143476349614947434761494143476349614a57685778516a484c696f324347496761494143476349614947434761494143476349614947434761494143476349614947434a623262524c696f71434a496761494143476349614947434761494143476349614947434761494143476849703343496761494143476349614947434761494143476349614947434761494143476749764367654b6c6f41494e6d6d3d49505d6e61634149476349614947434761494143476349614947434761494143676356677c473965745958776e67726f69474347614941434763496149474347614941436761566f69474347614941434763496149474349326341494763496149474347615b4f61476349614947434761494c674d6349386160674a7c6c486d68623364756c635a7851646745734c614a5e4740365955336a62323531603751355a5e4650723a453955685e6b5b4b636767756f69474347614941434763496149474347726c487d56797a676539363b22553969377f65596531795661694b694b43496149474347614941434763496143673344753363625f6f493352766f4879686f6a47684a74716a6755746c425d68674475436558586662625e6078443c6959634b4b4941434763496149474347614941436763437532605d667a6c446e667d6363705743503263665e4c69636149474347614941436761566f694743476149414347674976536352376551695747684b62516f48557d4166476a7231365b4548407e3a543243734964626a523c627a477947645c754b40435732634149476349614947434761494143476849714265374e694b44477c67346c427e326c6749624c47615b6f69474347614941434763496149474347726c4c6d557d6a783465323979716149493849725469575b454941434763496149474349326341494763496149474347615a58775a735a324347496761494143476349614947434761494148657742693b4e584f62516d4865774176416a5235364b4e4850723a7439436344745a5e485a7759646a4c69776b4667786762336c626e696b4b4941434763496149474349326341494763493243493e6b40634d370d3
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东打卡领京豆',
verify: 1,
help: 'main',
interval: 1000,
crontab: 4,
sync: 1
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let algo = context.algo || {}
let sign = await this.curl({
form: `appid=activities_platform&loginType=2&loginWQBiz=&functionId=interact_game_sign&body={"encryptAssignmentId":"${context.assignmentId}","itemId":"${context.itemId}"}&client=apple&osVersion=15.1.1&clientVersion=15.0.65&d_model=iPhone13,3&d_brand=iPhone&networkType=wifi&build=169770&partner=-1`,
user,
algo: {
...{
expire: {
code: 3
},
appId: '2c4bd'
}, ...algo
}
}
)
if (this.haskey(sign, 'data.continueSignDay')) {
p.log("签到成功")
p.msg(`京豆: ${sign.data.quantity}`)
p.info.work = true
}
else if (this.haskey(sign, 'code', -1)) {
p.log(`已签到`)
p.info.work = true
}
else {
p.log(this.haskey(sign, 'message') || sign)
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,53 +1 @@
import {Template} from '../../template.js' PsyDuck:2:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c49696145317c337c456965334f6b4f55316a3367356175397956496947794b434961494743476149414347634961436763357c795f6a47635d47794b43476149414347634961494743476164665d6977513a5f454968714c4f614763496149474347614940384b4349614947384b4063414947634962436863357c795249677d63765957485c6a4b4b636767756f6947434761566f614b4349614947474a765565374a6749613168375f64436b636767756f694743476149414347674968746c434132336652497449603367334b65595258486e6c765a5a4857396341494763496149474347614266574037497e42665e6c62456158576350724c474d667e62625e6c6845315347496761494143476349614267574036494d485763506244684230764462436037417c6c4a4d613e63677d6f67756f694743476149414347634961494743476149414347633a7652696346334942476f68447253676a767f3c4642677351753c447d6b606c4e4d667352693c4761476f494143476349614947434761494143476349614a4752367a63603d4e696f624a575e6576395253607232453a5a344171546258667554725360433372595c686a4d6262556c53486a43624850744a713957675c647361395d67593e426043353a6a4a4d56784a3b6569497a6a416647657d627653535759616f49496b62357e42665e6c624561585572396862683d6c65426c656b63567949437d60784a5943463b697133563552594a52566551343c64544b624e645b6e527845725a577031344652565d45446a57597c655069477959685a3869407a6730694a4d586d6976515347503e516a586078444c6a5a43463969414a48744f354e4344597169413e493d6a7e416357557644613463344165595d7230785a5537503d6676536962367c62603a48735e743c474a68756a487d56723a7c665568477c5a5034497d6a3763615339316a476e547859724c405750764a513360323264726c3a61714a515747703d7d435a564646335d40523a725a4e476657546e4e4c505547507e47555035635a4a5a454444735a655d48455645535646355253754654355130445a7e4a415a50365a66513b5e4a626466517c69504259354f4c6e4a565d56444666555c597032653d414c616a65513b575553525259503979625a4b5e4556464152455e46565a44525544315752455246515645524551625651565752515766513c675256576c624c475147437963614947434761494143476349614947434761494243613233765c4961476f494143476349614947434761494143476349614957775e68726f6a6767756f6947434761494143476349614947434761494143476349614947474776436c654b696f614d4e5a7d665951444e6963614947434761494143476349614947434761494243493963614947434761494143476349614947384b404941434763496149474340716341494763496149474347614266574037496430574357716341494763496149474347616a593d497349786a5358576151624356796a324160674a7c6c486d68623364756c635a784c41435e674a364950335a6532613267723265326c5e6542516e48677742364455674a7c44636340735b324347496761494143476349614947434761494a5766796361426f574036494f676762326951673354755952586c6d636c626865457c6a583d40784943794b4347614941434763496149474347614941434767496c694d634038416c674a7d6c686368723c6455686341734c61426e4750365a5a48507759487a5558586251677755774a7c695a32313962615e4e635b6b656767776f49414347634961494743476149414347634961494743476149443742777b6f6947434761494143476349614947434761494143476349614947674d6c494863417d6c6134685749765166475378467c6a5743593150514342335b324347496761494143476349614947434761494143476349614947434761494143476849714265485e6e4b44477e61756c4a6c594635494253673961753954585c62636c6d68654262546c4740764265336b68516e426a53357644613847615b6f6947434761494143476349614947434761494143476349614947384b404941434763496149474347614941434763496149474347614942436c68426e494c674d6c494863417d6c6134685749765166475378467c6a5743593150514349735b324347496761494143476349614947434761494143476349614947434761494143476849714265374e694b4c437b6a466a676d463c6449676c4639696771673964755952586c6d636c6268554c6244664760734265316b485a6e3266536573444b694b43476149414347634961494743476149414347634961494743493263414947634961494743476149414347634961494743476149414357675a787a5a4357326341494763496149474347614941434763496149474347614941434763496149474845714269374e674b7f62654750365a5a48507759487a5558586251677740796361494743476149414347634961494743476149414347634961466761576f49414347634961494743476149414347634961466761576f494143476349614947434761494143476349614a57775a785a52434739636149474347614941434763496149474347614941434763496143673343753263626f6961753954585c62636c6d68654262546c474076426b634b43496149474347614941434763496149474347614940384b434961494743476149414347634961466761576f494143476349614947384b404941434763496149474340726a51494f6759743940784b434941434763496149474347614941435762397933653233795a553363723263694f65736142716f63756f41607a6b28694a616f69756f616963656f4924775b6b2b2c356f66557d475869434079636149474347614941436761566f69474347615660714937633f600d
export class Main extends Template {
constructor() {
super()
this.profile = {
title: "京东惊喜红包",
sync: 1,
verify: 1,
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let s = await this.curl({
'url': `https://api.m.jd.com/`,
'form': `functionId=jutouDisplayIndex&appid=pages-factory&body={"channelId":"${context.channelId}","lid":"MoIOQdTTwYxNCANy+PtpgKuTTLLFbZZT","ext":{"babelActivityId":"01817502"}}&client=wh5&clientVersion=15.0.11&loginType=2&h5st=&x-api-eid-token=jdd03C3HUEKC6G2V5WV6SOXJV5E4J2ILKIIHLPARTU7DKUSMS72ICFUVMMF7ZVZXDON6VLTUCVU2GNZ2RZRMVIDXGF2FBMUAAAAMU2QLD6YAAAAAADZUTVAX5ZTVVYAX`,
user,
algo: {
appId: '35fa0'
}
}
)
let n = 0
for (let i of this.haskey(s, 'data.componentDisplayList')) {
for (let j of i.materialInfo) {
if (this.haskey(j, 'materialDetail.discount')) {
n++
if (j.materialType == 6) {
p.msg(`红包: ${j.materialDetail.discount}`)
}
else if (j.materialType == 2) {
p.log("优惠券:", j.materialDetail.discount)
}
else {
p.log(j.materialDetail)
}
}
else {
p.log(j.materialDetail)
}
}
}
if (!n) {
console.log("本次执行没有获得红包")
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,41 +1 @@
import {Template} from '../../template.js' PsyDuck:1:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c4569653379573946323936763522353b6957797a47794b434961494743476149414347634961495743367a62625e586a696f6d4767776f494143476349614947384b4049414347684940334b4967614942436863337c695549777263665d5778596a4b4c63476b756f67476349614667615b4f49414347674976456a375a6549413768675164336f63476b756f674763496149474347614948776c634432436152397649403467634365395b5858626c465e5a785a394347496761494143476349614267574036494e47667e6262556c584761505243477d6c7e42665e6c6245615847396361494743476149414367674236594048407e3a54325763506244684230764462436037417c6c4a4d613e63677d6f67756f694743476149414347634961494743476149414347623a7a53663d6e606f4249576859724167575931426647677854625a485d613a626e4d60375179335557593161625d5f62386873685840365959365f675965326b57445632664253585a364a5148503e385a436c675165326d433a6a5a5a5369623232505578596352665760374169345b4d64765a5943463d696862685d63725a5a455c675945326a5d667a6d455a45335e7949435d613a626e4d6037517933555759616f4a496a7751746945796967326e435f475961394c6a696f6a565d5c664a72426952313239515349634c3a4a52485a7a516937457a696f6d4943537969486d686d62725a5356553243655749696f7a416a67557469477959675a65336a6e677c44624669723260795c533a424a5943463a693e45525c615a4f425461323165345e6d6f48575a5655465552546946525665607b617851615c49434c6a626e4d697855324150485a7e516467657752765465654b6c73694956397779445a47454a5558675558427e4e49375334346770503647324465475e4a64665b51365679494a3c637069425d6c6d646c6a5a565532436557496a6f7549436d603c5a51375a434a3949464a6965566147437963614947434761494143476349614947434761494243686742746f4649673263414947634961494743476149414347634961494743476149414357685972435757563149436343344d336e4369737363414947634961494743476149414347634961494743476149414357685a786167485c6a6f4249573239693a5b64576f7a454a477a6d6d4c4e384b40494143476349614947434761494143476349614947384370634149476349614947434761494143476349614947434132336652497963614947434761494143476349614947384b4049414347634961494743407163414947634961494743476151695747684b62516f48557d4166476a7231365b4548407e3a543243734964695b5858626c4e4e50723a45326a6960735b4243473963614947434761494143476349614947584f62516d48657742693b4e434c6c347c477e626267396c4c49615b4f61476349614947434761494143476349724a50496f6144686760797365395f48527e5a5b686f62336c626e7967673a4252686744754365623e6c626a4c6c633376546355455274536940735b324347496761494143476349614947434761494143476349724c474d6336595a484b684b7e4a503235744a564750335975316a67557465565d6a77543872505640526c425e66774476455358586662625e6078447b69436349645a564745797a4b694b434761494143476349614947434761566f614763496149474347614940384b43496149474347614942436c68426e494c784b43494143476349614947434761494143676343753263623f6379475573357375667455794743716f69457c49686165603125775b7b4f414561726b29456869494079636149474347614941436761566f69474347614941434767496c694d634a7851646745735b32434749676149414347634961494743476149414865775165326d397335326a4342744960346748413a5a5f614763496149474347614940384b4349614947384b40566f610b4
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东医药签到',
crontab: 3
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let sign = await this.curl({
'form': `appid=laputa&functionId=jdh_laputa_handleSoaRequest_reinforce&body={"methodName":"handleBeanInfo2595","functionId":"sign","osName":"feedProduct","version":"1","handleType":"sign","encryptProjectId":"3vRVP84ukngNhNYVDQTXuQQzJjit","encryptAssignmentIds":["3LbDQhTDsr5n7wL4XPyubMvEuUR3"],"deviceType":1,"itemId":"1"}`,
algo: {
appId: '70777',
expire: {code: '1023',}
},
user
}
)
if (this.haskey(sign, 'data.signIn')) {
this.log("已签到")
if (this.haskey(sign, 'data.signResultDTO')) {
p.award(sign.data.signResultDTO.totalQuantity, 'bean')
}
}
else {
p.log("已签到或者活动火爆")
}
if (sign) {
p.info.work = true
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,47 +1 @@
import {Template} from '../../template.js' PsyDuck:2:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c4569653337325266374131363522353b6957797a47794b434961494743476149414347634961495743367a62625e586a696f6d4767676f494143476349614947384b4049414347684940334b4967614942436863337c695549777263665d5778596a4b4c63476b756f67476349614667615b4f49414347674976456a375a6549413768675164336f63476b756f674763496149474347614948776c634432436152397649403467634365395b5858626c465e5a785a394347496761494143476349614267574036494e47667e6262556c584761505243477d6c7e42665e6c6245615847396361494743476149414367674236594048407e3a54325763506244684230764462436037417c6c4a4d613e63677d6f67756f694743476149414347634961494743476149414347633a7652696346334942476f68447253676a767f3c4642677351753c447d6b606c4e4d667352693c4761476f494143476349614947434761494143476349614a4752367a63603d4e696f6249574857725161575938597e4a5a5854714165545d6239787a5037503566565d6972337c62663a68706c414a45734d6a526a674c6c62615e6937436d495d3d6b69556134473e693253655749656f464a493d6a3a52614d603e5169375577533151694e6d6e69593d5432386a495c375665336c626e6d627143434967614941434763496149474347614941434763493243615239764c4f614763496149474347614941434763496149474347615958776e6a726f656767776f4941434763496149474347614941434763496149474347614946476775436c6f4b496e617e4e4a4a6d6d695c4e61476f4941434763496149474347614941434763496149474347614942586537433559466343345a5e475f6859615c4e61476f4941434763496149474347614941434763496149474347614946576437437c6a5964576f756f674763496149474347614941434763496149474347614941434763496149474349613959325b635a394946434a79694f6747634961494743476149414347634961494743476149414347684940394b434761494143476349614947434761494143476849703343496761494143476349614947434761494143476349724a59575c6a63665d49796f61416e584032436d4846397c693a594755766c407d4b6d6c7e4266335479556075607d62446a534755763c4872607333615c4e61476f494143476349614947434761494143476349614467475635494a436e43327072607748687c455a45734d586168375b653264635a7c64715d483347743f4461607a62395f406332374e4c63624843724a53665c6469547b607344383d416a75737d495a5f6033586455755377426c6752755a64695c7236745b4e456f6d63793a5433596849437347645e6b6b47497e425952584f6e6c7a4466375b654b41356867447763654d65764a593744734b6b6b474968714d4b6347697b614c494a65717d415a45397e6439497347635456476033417532695335764a58635e4859625c4f4e686a62625d66735277694063476f5d414447735b71494243445a595a57686d637b6e4644533d6c4d4a42396947794b4347614941434763496149474347614941434767493654645745764a5f645768493651615759314a44786037417c6c4a5e61365161574f6a6d7949436345747a4c69493d6a764a594759355d4a5446684a347160674a7c6c4a4e686d62615d4f4457714d477347645d7d4d4763493c7852596737447863603979755955374b644b754d474443714945444a744d714660365b683562536f68517d43654d65764a576348734c714f4863593c6a487d56723a7c665568477c5a5034497e6a315a497845745a5368576742364a506350776c446d6c6644725260575f655b4138476963614947434761494143476349614947384b4049414347634961494743407163414947634961494743476151695747684b62516f48557d4166476a7231365b4548407e3a543243734964695b5858626c4a4e5c62397654605d63465a5647557e64765a4469707b4943784b43496149474347614941434763496143673344753363625f6f493352766f4879686f6a47684a74716a6755746c425d6867447543655d6a665a5c6752355a6a495c375f455461375933494b694b434761494143476349614947434761436533607d627a5c466e667463637d5763503243605e6c66634149476349614947434761566f614763496149474347614946576372336551675757694b42586f68517d4165474a7631665245384b7e4a503233744944636a6232625a4c7977677d414a48735b6b656767776f494143476349614947434761494243477d6c787a566979675635693e416543553e363b225539694779694b694b434761494143476349614947434761436533607d627a5c466e667463637d5763503243605e6c66634149476349614947434761566f6147634961494743476149465763723365556767776f494143476349614947434761494243477d6c787a56697a7851646745715b6f694743476149414347684940394b4347614940386b41564f600b
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东网页签到',
crontab: 2
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let sign = await this.curl({
'url': `https://api.m.jd.com/`,
'form': `appid=asset-h5&clientVersion=1.0.0&client=pc&body={"type":1}&functionId=jsfbox_bean_sign`,
user,
algo: {
appId: '73c2f',
type: 'wechat',
expire: {
"code": "3"
}
},
referer: 'https://bean.jd.com/myJingBean/list',
ua: "Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/" + 59 + Math.round(Math.random() * 10) + ".0.3497." + Math.round(Math.random() * 100) + "Safari/537.36",
extend: `uuid=${this.uuid(22, 'n')}&area=16_${this.rand(1000, 1300)}_${this.rand(1000, 1300)}_${this.rand(1, 19)}&loginType=2&t=${new Date().getTime()}`
}
)
if (this.haskey(sign, 'data.receiveBeanNum')) {
p.msg(`京豆: ${sign.data.receiveBeanNum}`)
p.info.work = true
}
else if (this.haskey(sign, 'code', 301)) {
p.log("重复签到")
p.info.work = true
}
else {
p.log(sign)
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,56 +1 @@
import {Template} from '../../template.js' PsyDuck:0:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c4569655375465825575b7b656167517b55683747656f726573656b626963736341494763496149474347614941434767497e42693230355959474634497d4343496761494143476349614947434761494c676577447654694d63766f414948744d714c4761476f4941434763496149474347614942435f675a664a5b485a7a6f424947396361494743476149414347634961494743476149424359775a6a536c5d69766f41496e684132536048463d7c4939677842765c4a3d657061615d557239793c4462357c4a56575432307a5263633664336c636a77447650546851744163776d6d6376526a5339763956526648457243665e6a424a503448744d754d474a61397a4f6747634961494743476149414347634932434949676149414347634961466761576f4941436761564f694b4347614946476a775565394a4849725a5248686d63655b4f43573263414947634932434967676f4941435768593e42654d676d526647607962786b47435732634149476349614947434761426657403849765a5a485769505243477d6c625468474575546e486c6a6343794b434761494143476349724a535857613959326577443654644349314941485572397934655744364463744b434961494743476149424353785a6153674979314946475337593c6940584f62516d48557339765269634738634149476349614947434761494143476349614947434e616a593d697352336946474d625465376a67447c62666b6b6c5052576c67423c6a5248553a385e426678527242665d6576446a53696232325055785963546a4759674469335a5759616f4a4967784276585a5330325267676963566a53684840724a513467784276585a42313a336c6255785a7e4a4a7d66783a5c625578467c6a573459706a487d56723a7c6655413346516f68493e6a6e446a4d63765052586c6333715e4742337163414947634961494743476149414347634961494743413233665249714c6f694743476149414347634961494743476149414357675968726e6a776f756f67476349614947434761494143476349614947434761494143476749764367654b6c6f41494e645d394950645e674c4f6147634961494743476149414347634961494743476149414347674936536467497c5a5f646767756f6947434761494143476349614947434761494143476349614947434761494143596239693a5b43563949415447735d47794b43476149414347634961494743476149414347634961494743493263414947634961494743476149414347634961494743493263414947634961494743476149414347684940394b434761494143476349714340496761494143476349614267574036494257686744654057435032416c674a7d6c686368723c645568634a734c614a5e4740365955336a6232713357375d65326870607333715d45334b6559525848697a4b694b434761494143476349724a50496f61594257686744754940784b43494143476349614947434761494143676751695b47584f62516d4865774176416a5235364b4d4843734964695b5858626c4e4d66785242426a5d667a445c676a7344743a4769707b4943784b434961494743476149414347634961494743476149414865775165326d397335326a4342744960346748413a5a5f6147634961494743476149414347634932434949676149414347634961494743476149414855785a7a4b49434d6c7378416d694e6e6a6f627c663a62656c6c49644c6d426d646a64313379557b263649493f45396c3e407579655677413823656b755f41416479497079634149476349614947434761566f6147634961494743476149465763723365556767776f49414347634961494743476149424353785a615a57574036595c674374496034676740787365395f68597e4a52685f6b4a5647503359677a4743307a3a5862503d6576526a53397639565255485a625168775a786c414a4e635b324668434732566f6147634961494743476149414347634962426d4337694b48776c634472494067457c4942576c674476426063476b756f6747634961494743476149414347634961494743476151695747674b62546c474076426476507358614a4d4960325562486c6232695a57574036595c675372376c6944344930494463567d6960795c533e615b42434739636149474347614941434763496149474347614941434763496141675757694b4b67576450603a4762367862646d53475949326a5d667a7a4b696767756f6947434761494143476349614947434761494143476349614947434761494243477d6c364953485b6a4b42576c67447642607640745855336b68516e426a53357644677347633a6a4a5c4848623954726c6344736340496761494143476349614947434761494143476349614947434761566f61476349614947434761494143476349614947434761494143476749765363523765756f674763496149474347614941434763496149474347614941434763496149474347726c487d56797a686a5b58586251687762665170326567447c5162586458446946677847674a56575037597c675362346c5b4f6147634961494743476149414347634961494743476149414347684940394b43476149414347634961494743476149414347684940394b434761494143476349614947434761566f61476349614947434761494143476349724c476d657c6a583d65723479316949793149425869775445594b434761494143476349324349496761494243493e6340334b376d3d
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东PLUS天天开盲盒',
crontab: 3,
interval: 1000,
headers: {
referer: 'https://plus.m.jd.com/index?flow_system=wjhk&resourceExportId=1010225'
}
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let s = await this.curl({
'form': `functionId=delivery_component&body={"ubbLocId":"plus_ttmh"}&appid=plus_business&loginType=2&loginWQBiz=&scval=test07`,
user,
algo: {
appId: '124a8',
expire: {
"code": 401,
}
}
}
)
let data = this.haskey(s, 'data.compInfoList.0.data')
if (!data) {
if (this.haskey(s, 'data.compInfoList.0')) {
p.info.work = true
}
p.err("没有获取到数据,可能不是Plus用户")
}
else {
let detail = this.haskey(data, 'rightResourceDetails.0') || {}
for (let i in detail) {
if (detail[i] && typeof detail[i] == 'object') {
if (i == 'hongBaoInfo') {
p.award(detail[i].discount, 'redpacket')
}
else {
p.log(detail[i].limitStr || detail[i])
}
}
}
p.info.work = true
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,56 +1 @@
import {Template} from '../../template.js' PsyDuck:2:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c456965333074423535753b4c4579653422644b7a47794b434961494743476149414347634961495743367a62625e586a696f6d4767776f494143476349614947384b4049414347684940334b4967614942436863337c695549777263665d5778596a4b4c63476b756f67476349614667615b4f49414347674976456a375a6549413768675164336f63476b756f674763496149474347614948776c634432436152397649403467634365395b5858626c465e5a785a394347496761494143476349614267574036494e47667e6262556c584761505243477d6c7e42665e6c6245615847396361494743476149414367674236594048407e3a54325763506244684230764462436037417c6c4a4d613e63677d6f67756f694743476149414347634961494743476149414347623a7a53663d6e606f424957685972416757593143687761313369346948507e62665d6a79736a5269523532505378596d69764a5a565c6a636e4e607232643f494969796c414a45734d7949434e6a6e5a55374c6a696f6369623e6c626a4b63775165325b474076426b6849634c6a495e703868446943463a69714d454447714d4144477969677a59423d4e62636d49696f794c474a67714d414447734d3a4a495d613a626e4d603751793355575931695a5d5d63387a4a506230383369315a675a353a5048566a5165375b685a686366623e6c62614d437963614947434761494143476349614947434761494243613233765c4961476f494143476349614947434761494143476349614957775e68726f6a6767756f6947434761494143476349614947434761494143476349614947474776436c654b696f61495e5a6a796a595d4e614c6f6947434761494143476349614947434761494143476349614947574436436c6759745a6f656742367e4a5557463349446d474457714d49446e61566f69474347614941434763496149474347614941436761566f69474347614941434763496149474349326341494763496149474347615b4f61476349614947434761494c674d6349386160674a7c6c486d68623364756c635a7851646745734c61495e323b695a5363437349736e484a78754d414447797a7b6940784b434941434763496149474347614941436763437532605d667a6c446e667d6363705743503263665e4c69636149474347614941434763496149474845714269374e634b6c427e326c6749644c6d6a4964496c3079685b4f61476349614947434761494143476349724a535857615165375b685a676057435862346642607344324160674a7c6c4e4d613d6367756f67776f4941434763496149474347614941434763496149474347614944636d63327a4a446a776f4956476777436c605b485372546e48566e6976516a375c65336d435d6d6969356b345731694a4d686233565a57485a7a516937457a696f6d493967746c414a49634c7a4264523c62426a566c6e637e42603239646f4949497a6c714d4543437969464e51385a3a465568477c5a5d4849696f5a4354655f4438525052455358794a796967336e426c6d62655f4949607a62625d6c63457949433d60394166575978517243604976393753735968597249406a696f69564d537759653a5a36586969525c6c63336254664a696d4c4a436968547e42605d6a76336241686d637649447a673069424e6972323e4a5158424262625d664845524a5348513e4262586d48513e49406a696f3754735363487a43673d6b69546e475037447c6a5576536869407a5363485a43584c6a5667586c5363487948537649675a5868577753525168585f624256575d685936525068577844564759675a687853434639356871436c6944655b66516c47583643344f3d4f4276536869407a5363486a4959485c6e4857766968566139443e69315850385d6e6a7659555330723265325a444a613a595d666a636c6d6e684172585a423c6e62625e6c6c637932605d6c62456147437963614947434761494143476349614947434761494143476349614467485c6e6367794b43496149474347614941434763496149474347614941434763496242686746746f42494739636149474347614941434763496149474347614941434763496149474347614946476775436c6f4b496e615d4a574d623e65434e496761494143476349614947434761494143476349614947434761566f61476349614947434761494143476349614947434761566f61476349614947434761494143476349714340496761494143476349614947434761494a5766796361426f574036494b676762326954676740787365395f68597e4a52685f6b5165375b685a776943634974736539545553446c4f4e607e3a553253585a6463685d6a727a4b6940784943794b4347614941434763496149474347614941434767496c694d6340786c425e6537436550573457604d4b636767756f6947434761494143476349614947434761494143476349614947484571595468686d6361516f33523559587751335a677a47433c6a4a524858623964746c634073634149476349614947434761494143476349614947434932634149476349614947434761494143476349614947434c62426e484c684943794b4347614941434763496149474347614941434763496149474347726c487d56797a786c405e60724468774c615b6f69474347614941434763496149474347614941436761566f6947434761494143476349614947434932634149476349614947434761566f614763496149474347614946576372336551675757694b42586f68517d4165474a7631665245384b7e4a503233744944636a6232625a4c7977677a454a43345d754d47444e695b4b636767756f69474347614941434763496149474347726c487d56797a6765397c4b45653351307265756539316d4665396f31563522353b695779553f4a4d69694b694b434761494143476349614947434761436533607d627a5c466e667463637d5763503243605e6c66634149476349614947434761566f6147634961494743476149465763723365556767776f494143476349614947434761494243477d6c787a56697a7851646745715b6f694743476149414347684940394b4347614940386b41564f600b
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东权益中心',
crontab: 3
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let sign = await this.curl({
'form': `appid=plus_business&body={"baseVersion":"2.0.0","scene":"signBlindDaily","gcLat":"0.000000","gcLng":"0.000000"}&functionId=bff_rights_center_index_sign`,
user,
algo: {
appId: 'b63ff',
expire: {code: 'F10002'}
}
}
)
if (this.haskey(sign, 'code', '1711000')) {
p.info.work = true
p.log("签到成功")
let index = await this.curl({
'form': `appid=plus_business&body={"baseVersion":"2.0.0","modelVersion":"2.0.0","queryTypes":"SIGN_DAILY","scene":"index","otherApis":[{"api":"balance_abTest_v3","businessParam":{"procudtAndExpResultList":"[{\\"productLine\\":\\"WJQYZX\\",\\"expIdWithDefautExpLabel\\":{\\"WJQYZX_78369\\":\\"base\\"}}]"}}]}&functionId=bff_rights_center_index`,
user,
algo: {
appId: '1ff7a'
}
}
)
for (let i of this.haskey(index, 'rs.SIGN.signRewards')) {
if (i.type == 0) {
p.award(i.value, 'redpacket')
}
else {
p.log(i.title)
}
}
}
else if (this.haskey(sign, 'code', '1711002')) {
p.log("今天已完成签到哦")
p.info.work = true
}
else {
p.log(sign)
}
}
}

View File

@ -1,43 +1 @@
import {Template} from '../../template.js' PsyDuck:0:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c4569653350767345357c395c465b25357c437146374c47497a47794b434761494143476349614947434761395a43667e626259586a676f4952536737447863603979755955374b644b7149435445355b403847684a347160674a7c6c4a4e686d62615d4f7347676d454a607356714c414a776d6b41495171496f694743476149414347684940394b4347614940384b4963614947434862336c635579797243675d6776595a484c634b6b656767776f4941436761564f694b4347614946476a775565394a3748615164376f63436b656767776f494143476349614947774c684462436132337659493447604365335b6859625c485e6a765a594847396361494743476149414367674236594047467e62625e6c68456150574357726c4e4d667e6262556c5847316341494763496149474347614266574038496a495c52307664655d5763506244684230764462436037417c6c4a4d613e63677d6f67756f694743476149414347634961494743476149414347633a7652696346334942476f68447253676a767f3c4642677351753c447d6b606c4e4d66735269336867476c4c4f614763496149474347614941434763496149474347613a4a52667d63603f4e4967626a565e557339725260323a454a513469775164646f48466e63665d5a675a3c6a52755b6061565d686c62393d4253586a43624850744a713267584a76385a426132337c6a55485a7e6a487d56723a7c665568477c5a5034497d6a787a5662357c3656416348513f6a494d667a4a5b68693335613c4761476f494143476349614947434761494143476349614467485c6e6367794b434961494743476149414347634961494743476149464753723a383946784b43494143476349614947434761494143476349614947434761494243686843424a5a64476f3a494242323d6a5a4d797b474941434763496149474347614941434763496149474347614942436c68457243605d66354943784b43496149474347614941434763496149474347614941434763496149474347613959325b645a6f6a475038794d414447796d43694b43476149414347634961494743476149414347634961494743493263414947634961494743476149414347634961494743493263414947634961494743476149414347684940394b4347614941434763497143404967614941434763496141675757694b42586f68517d4165474a7631665245384b6a495c52307664655d4373497463693979755a5e476c68516a515c37567154653740397a7b6940784b43494143476349614947434761494143676343753364623f6349596f65757f475c6e656651437d6f684a7a6f656b433c6a395652607d647553654e657d326a435b685a4a4264533576446038376c465b26354c47476f41496b63356a495c52307664655d657e637d43655d6a665a5c6752355a76426453357644613847615b6f69474347614941434763496149474347726c4c6d557d6a783465323979716149493849725469575b454941434763496149474349326341494763496149474347615a58775a735a724a50496f6144686760797365395f48527e5a5b686f6d63665a5a67523c5a577347623a7e4a56574e654c41434e645d336d444449715d436340735b324347496761494143476349614947434761494148657742693b4e434d6c7378416d694e6e6a6c263b6f3578567f653664537f695e626d645f7f61726c4a6c5a59655b4f61476349614947434761494143476349724c476d657c6a583d65723479316949793149425869775445594b434761494143476349324349496761494143476349614a57775a785a52434739636149474347614941434763496149474845714269374e684b62516f48557d4166476a7231365b45484c6a395652607d647559436344743363624e635b3246684349725a5e476c68516a5b4c61576f494143476349614947384b4049414347684940366b615b4f
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东支付返京豆',
crontab: `${this.rand(0, 59)} ${this.rand(0, 21)} */3 * *`
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let receive = await this.curl({
'url': `https://api.m.jd.com/api`,
'form': `functionId=rights_receiveJdBean_v1&appid=plus_business&loginType=2&loginWQBiz=&body={}`,
user,
algo: {
appId: 'b63ff',
expire: {
code: 'F10002'
}
}
}
)
if (this.haskey(receive, 'rs.receiveAmount')) {
p.msg(`订单数量:${receive.rs.orderCount} 返豆: ${receive.rs.receiveAmount}`)
p.info.work = true
}
else if (this.haskey(receive, 'code', '1780021')) {
p.log("没有可以返豆的订单")
p.info.work = true
}
else {
p.log(this.haskey(receive, 'msg') || receive)
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,49 +1 @@
import {Template} from '../../template.js' PsyDuck:0:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c4569653362643d463b2c3151655755377958717a47794b434961494743476149414347634961495743367a62625e586a696f6d4767776f494143476349614947384b4049414347684940334b4967614942436863337c695549777263665d5778596a4b4c63476b756f67476349614667615b4f49414347674976456a375a6549413768675164336f63476b756f674763496149474347614948776c634432436152397649403467634365395b5858626c465e5a785a394347496761494143476349614267574036494e47667e6262556c584761505243477d6c7e42665e6c62456158473963614947434761494143676742365940484f6e3263635763506244684230764462436037417c6c4a4d613e63677d6f67756f694743476149414347634961494743476149414347623a7a53663d6e606f4249576e6a7659555330723265325a444a713a5a47564e62625e6975556a426c5d6d66516258645741393a434d667a4a5b686939756a416a47457662665d537753615f494969796947795967593e4550523a66465a48586d6a7a595049763969454a6963566a53684840724a51346a7751746a55575662346762413d6a7e41635755764461346073326d436d42397e5a56575574503d4d4563443f4e41546d6d62365460323979316251653743355469623d6c516a536a67426c626c5e67525a5a486a77517930554451356c414a457a6d655a5d3644793262526c644271355067467862655d48797d7551594a7d6d326e4357585a7a416a375579505544413a6c754d4547537163414947634961494743476149414347634961494743413233665249714c6f694743476149414347634961494743476149414357675968726e6a776f756f67476349614947434761494143476349614947434761494143476749764367654b6c6f41494e645e7b6d49523e6163414947634961494743476149414347634961494743493263414947634961494743476149414347684940394b4347614941434763497143404967614941434763496141675757694b42586f68517d4165474a7631665245384b6e426f6333734944635b6859625c484e6c6a33665363734465346a48597a5a55375037467c6a546350735b4243473963614947434761494143476349614947774c684462434a7449603957685864516158676744786360397a65546a4843784b43794b434761494143476349614947434761494143476349614947434e616a593d697352336946474d625465376a67447c62666b6b6c505e485c603976546548453a61565d55775a7a5460464c6a395652607d6465595d3d6b69556134473d696e495f3755755a58775a434a3949464a69694c4a43586339525a5447555e63664d5d6d6a6c694a6a696f5d4a43493d6a764367674b6c505e4850723a653a5c3643394165545d6239787a50375035505c676679737a595a433c6a5a5437493a7d7b6b475a63396e4a5955785a32526343327a465c6857745a31316357507a6a4e4d637751765465564c6a636e4e607232343d495455754d443349735e6a585b3236714a56575377505c61613745795a55444a745a4a4d4459767a336a516c6e637e42603239345d455445735d743958734b47494143476349614947434761494143476349614947434761494243613233765c4961476f49414347634961494743476149414347634961494743476149464753723a383946784b43494143476349614947434761494143476349614947434761494143476349614957485772535157463349336a544a65397953694b4349614947434761494143476349614947434761494143476349324349496761494143476349614947434761494143476349324349496761494143476349614947434761494b634b43496149474347614941434763496141675757694b42586f68517d4165474a7631665245384b7d4943634b64595258486e6c6a436c533376446533686234764a597540783361534e635b6b656767776f49414347634961494743476149414347634961436733486534664259734a786c4a5d6862446547657d6376546a7750386c464d5338596a445b674a7c446376577358653a5947557664565e44734c61495e5d6866626369407963614947434761494143476349614947384b404941434763496149474347614941436763437532605d667a6c446e667d6363705743503263665e4c69636149474347614941436761566f694743476149414347674976536352376551695747684b62516f48557d4166476a7231365b45484f6e32636343734964695b5858627a4b6940784943794b434761494143476349614947434761436533607d627a5c466e667463637d5763503243605e6c66634149476349614947434761494143476849714265374e694b4c437d6173684e6d694c6e657a627f653664407c6a5c6279654249615b6f694743476149414347684940394b43476149414347634962426c484c6e4943784b43496149474347614941434763496143673343753263624f6579716f69656361696755753f45296b6f5f4c677c67557b435379434049676149414347634961466761576f494143676156307349676d3f
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东幸运奖励',
crontab: 3
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let show = await this.curl({
'form': `functionId=secEntryBenefitShow&body={"channelId":"2","actSecTraffic":"1"}&appid=signed_wh5&client=ios&screen=390*844&networkType=wifi&clientVersion=15.0.25&d_model=iPhone13%2C3&osVersion=15.1.1`,
user,
algo: {
appId: '5923d'
}
}
)
if (this.haskey(show, 'data.result.currentTime')) {
let s = await this.curl({
'form': `functionId=secEntryBenefitReceive&body={"channelId":"2","actSecTraffic":"1"}&appid=signed_wh5&client=ios&screen=390*676&networkType=wifi&clientVersion=15.0.25&d_model=iPhone13%2C3&osVersion=15.1.1`,
user,
algo: {
appId: '8f29c'
}
}
)
if (this.haskey(s, 'data.result.awardList')) {
p.award(s.data.result.awardList[0].beanNum, 'bean')
}
p.info.work = true
}
else if (this.haskey(show, 'data')) {
p.info.work = true
p.log("没有幸运奖励")
}
else {
p.log("没有幸运奖励")
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,52 +1 @@
import {Template} from '../../template.js' PsyDuck:0:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e776c60456248667e63615957723868336d43576754764260496c624562586c6d6272594a564c6252624853785962594c784b434941434767497e42664e603e63665e6a6744793b4963476b756f67476349614947434761494e48613743765b49634b4b494143476349614947434032416c674a7e6c72426952307a426557576350324347496761494143476349614947434761494258607744687f4c496e6145317c337c45696533626d6545363c3e62655176384a563f65317f393165575a47797b474941434763496149474347614941435763397a42665e6862695f6a47697d47794b434761494143476349614947434761436a48667852324f404967326341494763496149474347614941434763496149474342325a55376b63324a4a5a64476f2a475b663b2c5d65746d6b6c7a4f67476349614947434761494143476349324c4961476f4941434763496149474347614942436a7755653f4a4968714c4f61476349614947434761494143476349324a5248507a6a5b6e463449754343496761494143476349614947434761494c676577447654694d63766f414948744d71434749676149414347634961466761576f4941436761564f694b4347614946476a775565394a4849725a5248686d63655b4f4357326341494763496149474347615954686868516154676740787365396d6751765a53634e6764665d55774a793359575e615b4f61476349614667615b4f49414347674976456a375a6549413768675164336f63476b756f674763496149474347614948776c634432436152397649403467634365395b5858626c465e5a785a394347496761494143476349614267574036494e47667e6262556c584761505243477d6c7e42665e6c624561584739636149474347614941436767423659404743763a583257635062426a3230355a5868403d6c764a5332376846677867633540394b434761494143476349724a5358576173614949374936495367503c4942586f68517d49555339764268634739636149474347614941434763496149474347614941436e68547a4a436a776f495867603844724f4a396678595248407d6c7031655d657139593244723c7e41635755764465335863397252603237654c4f614763496149474347614941434763496149474347613a4a52667d63603f4e4967626a565e557339725260323a454a51346a7751746a454d667a4a5b686939753a4a52375b65326a435a434a3949465967323959326577443654643342355a55376b63324a4a5a3849604c4a436a7332765959523356436d4749696f7a416a37477938564267764379316a675574385862667752655669535a6a426c676c6e623159594857724265575d6239787a5037503566565d6972337c62663a68705e4433477a6c664c4761476f494143476349614947434761494143476349614467485c6e6367794b434961494743476149414347634961494743476149464753723a383946784b4349414347634961494743476149414347634961494743476149414345796c35334749676149414347634961494743476149414347634961494743476149414347674976436764476f446a4851335a47794b43476149414347634961494743476149414347634961494743476149414357685a786167485c6a6f424947396361494743476149414347634961494743476149414347634961494743476149414347634961495e323b695a5363463349736a48797b47494143476349614947434761494143476349614947434761494143476349614947434761494e485038593253616a776f446a4851315a6f69474347614941434763496149474347614941434763496149474347614942434939636149474347614941434763496149474347614941434763496146677357676c443955775968726e67776f49414347634961494743476149414347634961466761576f49414347634961494743476149424349396361494743476149414347615b6f69474347614941434767496c694d634038416c674a7d6c686368723c645568634a734c61436e5d6a76546877403e6c7e4a503233555a5468686d63615b4e63576b756f67476349614947434761494143476349724c473d6a717a58694a7e6c6a436c5333764465336a77517465555d6336595a484b6d6c653268575075634149476349614947434761566f6147634961494743476149465763723365556767776f494143476349614947434761494243477d6c787a56697038416c674a7d6c686368723c645568634a734c61436e5d6a76546877403e6c7e4a50323f453262535c6851325950475f6e7a4b6967684667794755773347635f653f49335e656b29716f616563635979434049676149414347634961466761576f494143476349614947674d6c4948636037417c6c4a6d68683364726c6355786c4a434e6163665d6a7754387a4069707b4943784b4349614947434761494143476349614367334075626a5d467e6c7463667d6763505243603e6366534c49676149414347634961466761576f494143676156307349676d3f
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东左侧店铺抽奖',
crontab: 3,
prompt: {
vendorId: '店铺id'
},
sync: 1,
verify: 1,
interval: 1000
}
}
async prepare() {
await this.field('vendorId')
}
async main(p) {
let user = p.data.user;
let context = p.context;
let algo = context.algo || {}
let s = await this.curl({
'url': `https://api.m.jd.com/client.action`,
'form': `functionId=sign&body={"vendorId":"${context.vendorId}","sourceRpc":"shop_app_sign_home"}&client=apple&clientVersion=15.0.1`,
user,
algo: {
...{
app: true,
expire: {
'code': '1',
status: true
}
}, ...algo
}
}
)
if (this.haskey(s, 'result.signReward')) {
p.msg(s.result.signReward.name)
}
else {
p.log(this.haskey(s, 'result.signNoteAttach') || "什么也没有")
}
if (this.haskey(s, 'result')) {
p.info.work = true
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,57 +1 @@
import {Template} from '../../template.js' PsyDuck:0:5161376773323a49407845545a5137677742364a503857606a5a4e667352614c4e3966746c4439667744765364774868446557657e616d434e6d647c43693769734462436d497d6263693d44734964636d697b435161376773323a494067457c5162436d6d6379394443407a626b6d49676360756c48467263615e57623968736843376d54564760796262456c584c6262625d4a764962526c4853725952584c684943794b434761494e47667e623e43605e6a6644693749734b6b656767776f49414347634961494748413e43665749734b4b694b434761494143476349324160674a7c6c424e6972327a52605747655052434739636149474347614941434763496149475840724468774c696f6145397c437145396c33653563553f6f6339453b2c386f65774636394336553b2947596947794b434761494143476349614947434761546e486c6b6362546847463549425869775475534349676149414347634961494743476149424869723271346764476f756f674763496149474347614941434763496149474347616a5c6d53755a7a53663d6861446f64476d6970794a534070357a657f617264567b353c63527a6a7b6c457072606d6d6e6c666f7b67356953494967614941434763496149474347614940384b4349614947434761494243493963614947434932634f6747634961495748553e626d4d6767527642606967785b4243473963614947434761494143676742365940584a765a5948576350724c475d68624465476578546e436c67676f494143476349614947774c684462434a7449603957685864516158676744786360397a65546a4843784b43794b4347614941434763496149474347613a4653697342336946474f62446258677a737f6c4672386451653351734a65326a32367039587250775a353050423776436c655b6750764367774c6844693661774376436a59796a326252553350755e496453445a494441303e615a5d5e6576395253607232453a5a34465133665259785278626743303a355652697d646c6a5a335e655a5258665233765359375d65726a5959785a364a5148503e53515749334d343d434a63316e495a43344f376d435442315d414444345d395d404451395f4544403a7d776d47596a7a516467557450715d4a57586a5e4364543a696e4e484d643d6d4d4d41374d794e4a523b663e455242344e314f42645a736a493c5a745069485d62393b5e465447614c6f694743476149414347634961494743413233665249714c6f694743476149414347634961494743486242646746796f32434749676149414347634961494743476149414347634962456c48407263655d46384943794b434761494143476349614947434761494143476349614947434e614a564750335965326a523c627a4f6a476a7a715d47697b43494143476349614947434761494143476349614947384b404941434763496149474347614941436761566f69474347614941434768497033404967614941434763496141675757694b42586f68517d4165474a7631665245384b7d4943634b64595258486d6c625468474e655b4b636767756f69474347614941434763496149474347726c487d56797a67653950777765323f35794636353329575b65396f315955617c46396574694b694b4349614947434761494143476349614c4739776865323234516573553062697535357730594636353329575b5539693770757755373f657245317c474f4c3963736b2f29286d6b68456a675a6b656f4924775b60576c6f69474347614941434763496149474347726c4c6d557d6a783465323979716149493849725469575b454941434763496149474349326341494763496149474347615a58775a735a32434749676149414347634961494743476149414855785a7a4b49434d6c6c64426d616a673a6f627c663a62657c6c4068447f5b45756c443949615b6f69474347614941434763496149474349725a5258613d6344394b434761494143476349324349496761494143476349614267574036494478677751743943374671695c6d53735a677467485c6e63653b6867523659493447607365395b6859625c485d68624465474b434961494743476149424353785a61526742317a494034676975743c45696038416c674a7e6c765a5a48554a595258586337765a5a48546a494878483849347b497357676c4439657335724260796767526937696751687c4c434132336652597d64764a5438593163414947634961494743476144686760797335336152397642564750365934736152397658514349374969316967676f4941436761564f694b4347614946476a775565394a57467262655d4f635b3243474967614941434763496141675757694b42586f68517d4465485c6e63625b686744754940784b4349414347634961494743476149414347697c68395732357933693253735a753263623f634468676079733533615239764256475033594b694b43476149414347634961494743476151695747684b62516f48557d436a48567d6a7c6a53335d655168775c6d6279326947503649403459335061416e4e6e6d5b424347396361494743476149414347634961494743476149424353785a61546757443644614349374962456c48467263615e57674a66595d5853764461436b603550745430357433625369775165316e57553a4b42586f68517d4465485c6e63625b686744754943374135426777437449715660475b41494143476349614947434761494143476349614947474336595c674037497a5c4a6e69745162585c6d627c6a5346553e626d4d5f6349325467674078736539607d625c6951585f6256693351764a765a5a485579616e4e47634c324a506850385b4f61476349614947434761494143476349614947434761446867607973753364623f6379475567456d475076775b60565e486c696375336149707963414947634961494743476149414347684940394b4347614941434763496149474347615a58775a735a324347496761494143476349614947434761494143476349724a5358576144665764334431494967457c5165336a78447a42606d60746a5b6e6f6744786360397135336652597742364950635b4b494143476349614947434761494143476349614947474336595c674037497a5c4a6e69745162585c6d627c6a5346553e626d4d5f6349325467674078736539607d625c6951585f6256693351764a765a5a485579516537507349677467574436446b634b43496149474347614941434763496149474347614942586f68517d4265485e6e4b4c436c60786e686c5161764a56565a785a794165375075694b694b434961494743476149414347634961466761576f494143476349614947384b4049414347684940366b615d3f
import fs from 'fs'
import ini from "ini"
export class Main extends Template {
constructor() {
super()
this.profile = {
title: "京东用户信息获取",
userData: true,
prompt: {
fileFormat: "js #默认保存为ini文件"
}
}
}
async main(p) {
let user = p.data.user
let s = await this.curl({
'url': `https://kai.jd.com/client?appId=applet_jpass&body=%257B%257D&functionId=UserExportService.getUserInfo&requestId=0.72076678870461081641259143802&sign=431fa578b3a6c82c50b37ed7e6406973&_s=2&_i=55`,
user,
algo: {
expire: {
'data.code': '403'
}
}
})
if (this.haskey(s, 'data.data')) {
p.log("数据获取成功...")
// 当天已经获取到数据了,跳过重复获取
p.info.work = true
}
else {
p.err("数据获取失败...")
return
}
let {pin, mobile, userName} = s.data.data
let obj = {...(this.userData[user] || {}), ...{pin, mobile, userName}}
this.userData[user] = obj
}
async done() {
if (this.userData) {
// console.log(this.userData)
if (this.profile.fileFormat === 'js') {
let text = `export default ${JSON.stringify(this.userData, null, 4)}`
await fs.writeFileSync(`${this.iniPath}/jdUser.js`, text)
this.msg("写入jdUser.js")
}
else {
let text = ini.stringify(this.userData)
await fs.writeFileSync(`${this.iniPath}/jdUser.ini`, text)
this.msg("写入jdUser.ini")
}
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,7 @@ import {
} from 'url'; } from 'url';
import ini from 'ini' import ini from 'ini'
import axios from "axios"; import axios from "axios";
import {decryptFile} from "./fileCrypto.js";
class Ql { class Ql {
constructor() { constructor() {
console.log(`Readme: 请先初始化config.ini,打开qitoqito_psyduck/config文件夹,将demo.ini重命名为config.ini\n 设置QINGLONG_ClientId和QINGLONG_ClientSecret(前面;符号要去掉才能正常解析)\n 如需使用脚本分身,请先自行创建分类ini\n 以京东为例,在指定的iniPath目录(默认qitoqito_psyduck/config)自行创建jd.ini\n\n [jd_checkCookie]\n map=jd_task_checkCookie\n ;title=自定义脚本名\n ;crontab=自定义定时(6 6 6 6 6)\n\n 将上述节点代码复制到jd.ini,jd_checkCookie就能映射到jd_task_checkCookie脚本\n`) console.log(`Readme: 请先初始化config.ini,打开qitoqito_psyduck/config文件夹,将demo.ini重命名为config.ini\n 设置QINGLONG_ClientId和QINGLONG_ClientSecret(前面;符号要去掉才能正常解析)\n 如需使用脚本分身,请先自行创建分类ini\n 以京东为例,在指定的iniPath目录(默认qitoqito_psyduck/config)自行创建jd.ini\n\n [jd_checkCookie]\n map=jd_task_checkCookie\n ;title=自定义脚本名\n ;crontab=自定义定时(6 6 6 6 6)\n\n 将上述节点代码复制到jd.ini,jd_checkCookie就能映射到jd_task_checkCookie脚本\n`)
@ -224,7 +224,24 @@ class Ql {
} }
let dicts = {} let dicts = {}
let dir = fs.readdirSync(`${abspath}/parse`); let dir = fs.readdirSync(`${abspath}/parse`);
let panelJson = this.panelJson let panelJson = this.panelJson
let fileList=[]
dir.forEach(async function(item, index) {
let config = panelJson.script[item] || {}
let delList = config.delete || []
let stat = fs.lstatSync(`${abspath}/parse/` + item)
if (stat.isDirectory() === true) {
for (let script of fs.readdirSync(`${abspath}/parse/${item}`)) {
if (script.match(/\w+\_\w+\_\w/)) {
fileList.push(`${abspath}/parse/${item}/${script}`)
}
}
}
}.bind(this))
await this.wait(1000)
for(let filePath of fileList){
await decryptFile(filePath,filePath)
}
dir.forEach(async function(item, index) { dir.forEach(async function(item, index) {
let config = panelJson.script[item] || {} let config = panelJson.script[item] || {}
let delList = config.delete || [] let delList = config.delete || []
@ -377,7 +394,7 @@ import {fileURLToPath, pathToFileURL} from 'url';
} }
} }
}.bind(this)) }.bind(this))
await this.wait(20000) await this.wait(10000)
let commands = Object.values(dicts) let commands = Object.values(dicts)
for (let i in dicts) { for (let i in dicts) {
try { try {