├── README.md ├── danchaofan ├── README.md ├── hbd.jpeg ├── hbd.png └── ziyong │ ├── 58tongcheng │ └── wbtc.js │ ├── baishi │ ├── 1 │ └── bsly.js │ ├── danchaofan.json │ ├── didiguoyuan │ └── dd_fruit.js │ ├── doulailingjidan │ ├── 1 │ └── dlljd.js │ ├── dushimuchang │ ├── 1 │ ├── dsmc.js │ └── dsmc_ql.js │ ├── elm │ ├── elm.js │ └── elm_leaf.js │ ├── guangqisanling │ └── gqsl.js │ ├── guoquanshangcheng │ ├── 1 │ └── gqsc.js │ ├── hanghangshengcai │ ├── 1 │ └── hhsc.js │ ├── huoyunxieshen │ └── hyxs.js │ ├── jianzouyouji │ └── jzyl.js │ ├── jiuzhangtoutiao │ └── jztt.js │ ├── kuaishoujisuban │ ├── enhance.json │ ├── ks.js │ ├── ks.json │ ├── ksjsb-sever.js │ ├── ksjsb.js │ ├── ksjsb.json │ ├── ksjsb_poor.js │ ├── ksjsbenhance.js │ ├── ksjsbmixed(1).js │ ├── mixed.json │ └── readme.md │ ├── kuaiyin │ ├── 1 │ └── kuaiyin.js │ ├── kugou │ └── kgyy.js │ ├── kugoudaziban │ └── kgdzb.js │ ├── lianxiangshangcheng │ ├── 1 │ └── lxsc.js │ ├── lvmiao │ ├── 1 │ └── lm.js │ ├── meituan │ ├── meituan.js │ └── meituan1.js │ ├── pinganwakuang │ ├── 1 │ └── pawk.js │ ├── qutangzhuan │ ├── 1 │ └── qtz.js │ ├── rexiangshequan │ └── rxsq.js │ ├── shiyantoutiao │ ├── 1 │ └── sytt.js │ ├── taikang │ ├── 1 │ └── tkzx.js │ ├── tengxunzixuangu │ └── txstockV2.js │ ├── tuhu │ └── readme.md │ ├── wangyi │ ├── 1 │ └── wyyx.js │ ├── wenlvkandian │ └── wlkd.js │ ├── youdaocidian │ └── ydcd.js │ ├── yuedu │ └── yuedu.js │ ├── zhongan │ ├── 1 │ ├── zajkqd.js │ ├── zan.js │ └── zanjk.js │ ├── zhongqing │ ├── Youth_Read.conf │ ├── Youth_Read.js │ ├── Youth_cookie.conf │ ├── youth.js │ └── youth_gain.js │ ├── zhuishushenqi │ └── zssq.js │ └── zqFast │ ├── zqkdFast_daily.js │ ├── zqkdFast_kkz.js │ ├── zqkdFast_read.js │ ├── zqkdFast_reward.js │ └── zqkdFast_shareRead.js ├── elmck.js ├── invalid ├── 1_jrtt_android.js ├── 399乐园.js ├── NFT.js ├── bjqc.js ├── cyh.js ├── dsj.js ├── dygy.js ├── elm.js ├── flg.js ├── gyj.js ├── jc_Adv_video.js ├── jc_Rotary.js ├── jc_box.js ├── jc_kkz.js ├── jc_qd.js ├── jc_today_score.js ├── jc_withdraw.js ├── jc_wz.js ├── jrttjsb.js ├── kaka.js ├── kg.js ├── kgdzb.js ├── ks.js ├── ksjsb.js ├── ksjsb0507.js ├── ksjsb_lower_income.js ├── kt.js ├── main_wx_bhxcy.js ├── mate云端.js ├── meituan.js ├── sl.js ├── tpyqc.js ├── txspfl.js ├── txstockV2.js ├── wmj.js ├── wx书亦烧仙草.js ├── wx众安健康.js ├── wx劲酒.js ├── wx周大生会员福利社.js ├── wx咸鱼吃鱼.js ├── wx太平洋汽车max抽奖看脸截止到7-31.js ├── wx海底捞.js ├── wx老白干.js ├── wx走路小程序.js ├── wx遛遛它.js ├── wx雀巢咖啡.js ├── yctt.js ├── ydcd.js ├── zlsc.js ├── 九章头条.js ├── 今日头条-1_jrtt.js ├── 全免漫画.js ├── 和家亲-临渊.js ├── 姿美健康.js ├── 富豪人生随便玩玩.js ├── 小程序小游戏合集.js ├── 应用试客.js ├── 快手低保.js ├── 快手低保1.js ├── 快音.js ├── 抖抖健身.js ├── 捞金乐园.js ├── 撸点现金-有喜有鱼.js ├── 撸点现金-知巷.js ├── 撸点现金-知驿.js ├── 桃源ios专用安卓秒黑.js ├── 欢乐s.js ├── 海尔智家.js ├── 白嫖之王.js ├── 联通10元福利.js ├── 自由之刃(绑定帐号版).js ├── 自由之刃.js ├── 萌推app.js ├── 豆伴ios.js ├── 赚点是点.js ├── 赶集直招.js ├── 超节约.js ├── 超节约授权抓包.js ├── 酷狗音乐安卓.js └── 预言.py ├── little_money ├── 58tc.js ├── CryptoJS.js ├── QQ阅读.js ├── ddgy.js ├── elmV3.js ├── ks.js ├── ks_fruit.js ├── meituan.js ├── pdd-多多果园.js ├── txs.js ├── 同程旅行果园.js ├── 电信.js ├── 联通.js ├── 追书神器.js ├── 青碳行-ios版本.js └── 顺丰速运.js └── little_points ├── dinds.js ├── e0575.js ├── hfhx.js ├── lt.js ├── wx乐事.js ├── wx仰韶会员俱乐部.js ├── wx合生元.js ├── wx奥康.js ├── wx好想你.js ├── wx康师傅畅饮社.js ├── wx新天威旅游.js ├── wx新禾.js ├── wx有蜜积分.js ├── wx杰士邦.js ├── wx汇源福利社.js ├── wx泰康在线保险.js ├── wx特仑苏.js ├── wx特步.py ├── wx相宜本草.js ├── wx苏泊尔.py ├── wx金典.js ├── xmly.js ├── 全球购骑士特权.js ├── 北京汽车.js ├── 北京现代.js ├── 广汽三菱103.js ├── 广汽传祺.js ├── 掌上温岭app.js ├── 红旗智联.js ├── 罗技粉丝俱乐部.js ├── 老板电器服务微商城.js ├── 自由之仁修复瓣.js └── 飞凡汽车.js /README.md: -------------------------------------------------------------------------------- 1 | # little_wool 2 | 不用fork,可以星标,收集市面上公开的脚本,部分没有收集到的欢迎投稿,部分删除或未删除邀请码,本人邀请码绝不会贴上去。 3 | 4 | 5 | 更换分类,添加的脚本说明带链接,不定期更新,请自行关注脚本作者 6 | 7 | 8 | 自用拉库,无快手的,别问快手,讨论一律ban 9 | 10 | 11 | 拉库 全部拉取 12 | `ql repo https://github.com/miranda0111/little_wool.git "little_money|little_points" "invalid|danchaofan" "" ""` 13 | 14 | 拉库 只拉有毛 15 | `ql repo https://github.com/miranda0111/little_wool.git "little_money" "little_points|invalid|danchaofan" "" ""` 16 | -------------------------------------------------------------------------------- /danchaofan/README.md: -------------------------------------------------------------------------------- 1 | # 不要fork! 不要Star! 不要远程调用! 同步此库,然后调用自己的库,谢谢 2 | 3 | ## 特别声明: 4 | 5 | * 本仓库发布的Script项目中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断. 6 | 7 | * 本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。 8 | 9 | * 本人对任何脚本问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害. 10 | 11 | * 间接使用脚本的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, eml5ZQ 对于由此引起的任何隐私泄漏或其他后果概不负责. 12 | 13 | * 请勿将Script项目的任何内容用于商业或非法目的,否则后果自负. 14 | 15 | * 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关脚本. 16 | 17 | * 任何以任何方式查看此项目的人或直接或间接使用该Script项目的任何脚本的使用者都应仔细阅读此声明。ziye11 保留随时更改或补充此免责声明的权利。一旦使用并复制了任何相关脚本或Script项目的规则,则视为您已接受此免责声明. 18 | 19 | **您必须在下载后的24小时内从计算机或手机中完全删除以上内容.**
20 | > ***您使用或者复制了本仓库且本人制作的任何脚本,则视为`已接受`此声明,请仔细阅读*** 21 | 22 | -------------------------------------------------------------------------------- /danchaofan/hbd.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miranda0111/little_wool/fff31c3782437126a58cd363d55bb8fa56765df1/danchaofan/hbd.jpeg -------------------------------------------------------------------------------- /danchaofan/hbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miranda0111/little_wool/fff31c3782437126a58cd363d55bb8fa56765df1/danchaofan/hbd.png -------------------------------------------------------------------------------- /danchaofan/ziyong/baishi/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/doulailingjidan/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/dushimuchang/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/guoquanshangcheng/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/hanghangshengcai/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/hanghangshengcai/hhsc.js: -------------------------------------------------------------------------------- 1 | const $ = new Env('行行生财') 2 | const notify = $.isNode() ?require('./sendNotify') : ''; 3 | let status,no; 4 | status = (status = ($.getval("hhscstatus") || "1") ) > 1 ? `${status}` : ""; // 账号扩展字符 5 | const hhsctkArr = [] 6 | 7 | let hhsctk = $.getdata('hhsctk') 8 | //let hhscbd = $.getdata('hhscbd') 9 | 10 | let tz = ($.getval('tz') || '1');//0关闭通知,1默认开启 11 | const logs =0;//0为关闭日志,1为开启 12 | 13 | 14 | //CK运行 15 | let ishhscck = typeof $request !== 'undefined' 16 | if (ishhscck) { 17 | hhscck(); 18 | $.done() 19 | } 20 | if ($.isNode()) { 21 | if (process.env.hhsctk && process.env.hhsctk .indexOf('#') > -1) { 22 | hhsctk = process.env.hhsctk .split('#'); 23 | console.log(`您选择的是用"#"隔开\n`) 24 | } 25 | else if (process.env.hhsctk && process.env.hhsctk .indexOf('\n') > -1) { 26 | hhsctk = process.env.hhsctk .split('\n'); 27 | console.log(`您选择的是用换行隔开\n`) 28 | } else { 29 | hhsctk = process.env.hhsctk .split() 30 | }; 31 | if (process.env.hhsc&& process.env.hhsc.indexOf('#') > -1) { 32 | hhsc= process.env.hhsc.split('#'); 33 | console.log(`您选择的是用"#"隔开\n`) 34 | } 35 | else if (process.env.hhsc&& process.env.hhsc.indexOf('\n') > -1) { 36 | hhsc= process.env.hhsc.split('\n'); 37 | console.log(`您选择的是用换行隔开\n`) 38 | } else { 39 | hhsc= process.env.hhsc.split() 40 | }; 41 | /* 42 | if (process.env.hhscbd&& process.env.hhscbd.indexOf('#') > -1) { 43 | hhscbd= process.env.hhscbd.split('#'); 44 | console.log(`您选择的是用"#"隔开\n`) 45 | } 46 | else if (process.env.hhscbd&& process.env.hhscbd.indexOf('\n') > -1) { 47 | hhscbd= process.env.hhscbd.split('\n'); 48 | console.log(`您选择的是用换行隔开\n`) 49 | } else { 50 | hhscbd= process.env.hhscbd.split() 51 | }; 52 | */ 53 | 54 | console.log(`============ 脚本执行-国际标准时间(UTC):${new Date().toLocaleString()} =============\n`) 55 | console.log(`============ 脚本执行-北京时间(UTC+8):${new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toLocaleString()} =============\n`) 56 | } else { 57 | hhsctkArr.push($.getdata('hhsctk')) 58 | //hhscbdArr.push($.getdata('hhscbd')) 59 | 60 | let hhsccount = ($.getval('hhsccount') || '1'); 61 | for (let i = 2; i <= hhsccount; i++) { 62 | // hhscbdArr.push($.getdata(`hhscbd${i}`)) 63 | hhsctkArr.push($.getdata(`hhsctk${i}`)) 64 | 65 | } 66 | } 67 | 68 | 69 | 70 | 71 | !(async () => { 72 | if (!hhsctkArr[0]) { 73 | $.msg($.name, '【提示】请先获取一cookie') 74 | return; 75 | } 76 | console.log( 77 | `\n\n=============================================== 脚本执行 - 北京时间(UTC+8):${new Date( 78 | new Date().getTime() + 79 | new Date().getTimezoneOffset() * 60 * 1000 + 80 | 8 * 60 * 60 * 1000 81 | ).toLocaleString()} ===============================================\n`); 82 | console.log(`------------- 共${hhsctkArr.length}个账号----------------\n`) 83 | for (let i = 0; i < hhsctkArr.length; i++) { 84 | if (hhsctkArr[i]) { 85 | hhsctk= hhsctkArr[i]; 86 | //hhscbd= hhscbdArr[i]; 87 | $.index = i + 1; 88 | console.log(`\蛋炒饭 脚本提示\n`) 89 | await $.wait(1000) 90 | console.log(`\n开始【账号${$.index}】`) 91 | //await cxsy(); 92 | // await $.wait(1000); 93 | await hhscqd(); 94 | await $.wait(1000); 95 | //await fxwz(); 96 | // await $.wait(1000); 97 | 98 | } 99 | } 100 | 101 | })() 102 | .catch((e) => $.logErr(e)) 103 | .finally(() => $.done()) 104 | 105 | 106 | 107 | 108 | function hhscck() { 109 | 110 | 111 | if($request.url.indexOf("njzycy.com/api/v1")>=-1) 112 | { 113 | const hhsctk = $request.headers['authtoken'] 114 | if(hhsctk)$.setdata(hhsctk,`hhsctk${status}`) 115 | $.log(`[${$.jsname}] 获取hhsctk请求: 成功,hhsctk: ${hhsctk}`) 116 | $.msg($.name, "", `${status}` + 'hhsctk获取成功!') 117 | /* 118 | const hhscbd = JSON.stringify($request.body) 119 | if (hhscbd) $.setdata(hhscbd, `hhscbd${status}`) 120 | $.log(hhscbd) 121 | $.msg($.name, "", `${$.name}` + `${status}` + 'hhscbd获取成功!') 122 | */ 123 | } 124 | 125 | } 126 | 127 | function hhscqd(timeout = 0) { 128 | return new Promise((resolve) => { 129 | let url = { 130 | url: `https://hhapi.njzycy.com/api/v1/sign/sign`, 131 | headers: { 132 | 'user-agent' : `Dart/2.16 (dart:io)`, 133 | 'deviceid' : `924D8EEE-35DC-4CED-BB86-DE758D3DEBCE`, 134 | 'authtoken' : `${hhsctk}`, 135 | 'host' : `hhapi.njzycy.com`, 136 | 'version' : `1.2.8`, 137 | 'user-agent' : `Dart/2.16 (dart:io)`, 138 | 'accept-encoding' : `gzip` 139 | }, 140 | body: ``, 141 | } 142 | // console.log(url); 143 | $.post(url,async(error, response, data) => { 144 | try { 145 | // console.log(`========输出签到 data开始===========`); 146 | // console.log(data); 147 | // console.log(`========输出签到 data结束=========`); 148 | result = JSON.parse(data); 149 | if (result.code == 1) { 150 | $.log(`\n【🎉🎉🎉 恭喜你了 🎉🎉🎉】签到状态:(${result.msg}) ,获得签到奖励 ✅ `) 151 | // await $.wait(3 * 1000) 152 | } else if (result.code == 1024) { 153 | $.log(`\n【🎉 高兴个蛋 🎉】签到状态: 已签到,明天再来`) 154 | } else { 155 | $.log(`\n【🎉 高兴个蛋 🎉】执行签到:失败 ❌ 了呢 `) 156 | } 157 | } catch (e) { 158 | $.logErr(e, resp); 159 | } finally { 160 | resolve() 161 | } 162 | }, timeout) 163 | 164 | }) 165 | } 166 | 167 | 168 | 169 | //env模块 不要动 170 | 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) } 171 | -------------------------------------------------------------------------------- /danchaofan/ziyong/kuaishoujisuban/ks.json: -------------------------------------------------------------------------------- 1 | { 2 | "invite": ["null@null"], 3 | "ijkkk": ["null@null"] 4 | } -------------------------------------------------------------------------------- /danchaofan/ziyong/kuaishoujisuban/readme.md: -------------------------------------------------------------------------------- 1 | 不定时更新快手极速版 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/kuaiyin/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/lianxiangshangcheng/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/lvmiao/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/pinganwakuang/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/qutangzhuan/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/shiyantoutiao/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/taikang/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/tuhu/readme.md: -------------------------------------------------------------------------------- 1 | 更新支持qx 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/wangyi/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/zhongan/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /danchaofan/ziyong/zhongqing/Youth_Read.conf: -------------------------------------------------------------------------------- 1 | hostname = ios.baertt.com, kandian.wkandian.com 2 | # 中青阅读rewrite 3 | # https://raw.githubusercontent.com/Sunert/Script/master/TaskConf/youth/qx_youthread.txt 4 | # https://raw.githubusercontent.com/erdongchanyo/Rules/main/Quantumult%20X/Youth/Youth_Read.conf 5 | 6 | # modified by: Poet 7 | # rewrite url: https://raw.githubusercontent.com/PoetryU/Scientist/master/QuantumultX/rewrite/Youth_Read.conf 8 | 9 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5/article/(info/get|info|detail)\.json url script-request-header https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/Youth_Read.js 10 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5\/article\/complete\.json url script-request-body https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/Youth_Read.js 11 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5\/user\/app_stay\.json url script-request-body https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/Youth_Read.js -------------------------------------------------------------------------------- /danchaofan/ziyong/zhongqing/Youth_cookie.conf: -------------------------------------------------------------------------------- 1 | hostname = kd.youth.cn, ios.baertt.com, kandian.wkandian.com 2 | # 中青cookie获取 3 | # https://raw.githubusercontent.com/Sunert/Script/master/TaskConf/youth/qx_rewite.txt 4 | # https://raw.githubusercontent.com/erdongchanyo/Rules/main/Quantumult%20X/Youth/Youth_cookie.conf 5 | 6 | # modified by: Poet 7 | # rewrite url: https://raw.githubusercontent.com/PoetryU/Scientist/master/QuantumultX/rewrite/Youth_cookie.conf 8 | 9 | https:\/\/kd\.youth\.cn\/WebApi\/NewTaskIos\/getTaskList url script-request-header https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/youth.js 10 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5\/article\/(info/get|info|detail)\.json url script-request-header https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/youth.js 11 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5\/user\/app_stay\.json url script-request-body https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/youth.js 12 | ^https?://(ios\.baertt|kandian\.wkandian)\.com\/v5\/task/browse_start\.json url script-request-body https://raw.githubusercontent.com/Sunert/Script/master/Task/youth_gain.js 13 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5/Nameless/adlickstart\.json url script-request-body https://raw.githubusercontent.com/Sunert/Script/master/Task/youth_gain.js 14 | ^https?://(ios\.baertt|kandian\.wkandian)\.com/v5\/\w+\/withdraw\d?\.json url script-request-body https://raw.githubusercontent.com/PoetryU/Scientist/master/Scripts/Youth/youth.js -------------------------------------------------------------------------------- /elmck.js: -------------------------------------------------------------------------------- 1 | //重写:https://nt2.ele.me/c/b? url script-request-header https://raw.githubusercontent.com/miranda0111/little_wool/main/elmck.js 2 | //主机名:nt2.ele.me 3 | const $ = new Env('elm配合快捷指令获取ck'); 4 | // let status; 5 | 6 | // status = (status = ($.getval("elmstatus") || "1")) > 1 ? `${status}` : ""; 7 | 8 | let elmurl = $.getdata('elmurl') 9 | let elmhd = $.getdata('elmhd') 10 | 11 | !(async () => { 12 | if (typeof $request !== "undefined") { 13 | elmck() 14 | } 15 | })() 16 | .catch((e) => $.logErr(e)) 17 | .finally(() => $.done()) 18 | 19 | function elmck() { 20 | if ($request.url.indexOf("/c/b?") > -1) { 21 | const elmurl = $request.url 22 | // if (elmurl) $.setdata(elmurl, `elmurl${status}`) 23 | if (elmurl) $.setdata(elmurl, `elmurl`) 24 | $.log(elmurl) 25 | 26 | const elmhd = JSON.stringify($request.headers.Cookie) 27 | // if (elmhd) $.setdata(elmhd, `elmhd${status}`) 28 | if (elmhd) $.setdata(elmhd, `elmhd`) 29 | $.log(elmhd) 30 | 31 | // $.msg($.name, `\n\n`, `${status}${elmhd}`) 32 | $.msg($.name, `\n\n`, `Cookie: ${elmhd}`) 33 | 34 | } 35 | } 36 | 37 | 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) } -------------------------------------------------------------------------------- /invalid/jc_Adv_video.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | cron 20 2 * * * 4 | 5 | */ 6 | 7 | const $ = new Env("晶彩看点福利视频"); 8 | const notify = $.isNode() ? require('./sendNotify') : ''; 9 | message = "" 10 | let jc_cookie= $.isNode() ? (process.env.jc_cookie ? process.env.jc_cookie : "") : ($.getdata('jc_cookie') ? $.getdata('jc_cookie') : "") 11 | let jc_cookieArr = [] 12 | let jc_cookies = "" 13 | 14 | if (!jc_cookie) { 15 | $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { 16 | "open-url": "给您劈个叉吧" 17 | }); 18 | $.done() 19 | } 20 | else if (jc_cookie.indexOf("@") == -1 && jc_cookie.indexOf("@") == -1) { 21 | jc_cookieArr.push(jc_cookie) 22 | } 23 | else if (jc_cookie.indexOf("@") > -1) { 24 | jc_cookies = jc_cookie.split("@") 25 | } 26 | else if (process.env.jc_cookie && process.env.jc_cookie.indexOf('@') > -1) { 27 | jc_cookieArr = process.env.jc_cookie.split('@'); 28 | console.log(`您选择的是用"@"隔开\n`) 29 | } 30 | else { 31 | jc_cookies = [process.env.jc_cookie] 32 | }; 33 | Object.keys(jc_cookies).forEach((item) => { 34 | if (jc_cookies[item]) { 35 | jc_cookieArr.push(jc_cookies[item]) 36 | } 37 | }) 38 | 39 | 40 | 41 | 42 | !(async () => { 43 | console.log(`共${jc_cookieArr.length}个cookie`) 44 | for (let k = 0; k < jc_cookieArr.length; k++) { 45 | $.message = "" 46 | bodyVal = jc_cookieArr[k] 47 | var time1 = Date.parse( new Date() ).toString(); 48 | time1 = time1.substr(0,10); 49 | jc_cookie1= time1 + '&' + bodyVal 50 | //待处理cookie 51 | //console.log(`${jc_cookie1}`) 52 | console.log(`--------第 ${k + 1} 个账号观看福利视频中--------\n`) 53 | for (let j =0; j<5;j++){ 54 | console.log(`--------第 ${j + 1} 次观看福利视频中--------\n`) 55 | await video(jc_cookie1) 56 | console.log("等待30秒") 57 | await $.wait(30000); 58 | console.log("\n\n") 59 | } 60 | console.log("\n\n") 61 | } 62 | 63 | })() 64 | .catch((e) => $.logErr(e)) 65 | .finally(() => $.done()) 66 | 67 | 68 | function video(jc_cookie1,timeout = 0) { 69 | return new Promise((resolve) => { 70 | 71 | let url = { 72 | url : 'https://ant.xunsl.com/V17/NewTask/recordNum.json?'+ jc_cookie1, 73 | headers : { 74 | 'Host': 'ant.xunsl.com', 75 | 'Connection': 'Keep-Alive', 76 | 'Accept-Encoding': 'gzip', 77 | 'User-Agent': 'okhttp/3.12.2' 78 | }, 79 | } 80 | $.get(url, async (err, resp, data) => { 81 | try { 82 | const result = JSON.parse(data) 83 | if(result.success === true){ 84 | console.log('\n福利视频:'+result.message) 85 | }else{ 86 | console.log(result) 87 | } 88 | } catch (e) { 89 | } finally { 90 | resolve() 91 | } 92 | },timeout) 93 | }) 94 | } 95 | 96 | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);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)} 97 | 98 | -------------------------------------------------------------------------------- /invalid/jc_Rotary.js: -------------------------------------------------------------------------------- 1 | /* 2 | shaolin-kongfu 3 | 4 | 软件名称:晶彩看点 5 | 6 | cron 34 22 * * * 7 | 8 | 转盘抽奖,使用jc_cookie 9 | 10 | 11 | */ 12 | 13 | const $ = new Env("晶彩看点大转盘抽奖"); 14 | const notify = $.isNode() ? require('./sendNotify') : ''; 15 | message = "" 16 | let jc_cookie= $.isNode() ? (process.env.jc_cookie ? process.env.jc_cookie : "") : ($.getdata('jc_cookie') ? $.getdata('jc_cookie') : "") 17 | let jc_cookieArr = [] 18 | let jc_cookies = "" 19 | let remain =100 20 | var time = Date.parse( new Date() ).toString(); 21 | var time1 = time.substr(0,10); 22 | 23 | if (!jc_cookie) { 24 | $.msg($.name, '【提示】进入点击右下角"赚钱图标",获取cookie,再跑一次脚本', '不知道说啥好', { 25 | "open-url": "给您劈个叉吧" 26 | }); 27 | $.done() 28 | } 29 | else if (jc_cookie.indexOf("@") == -1 && jc_cookie.indexOf("@") == -1) { 30 | jc_cookieArr.push(jc_cookie) 31 | } 32 | else if (jc_cookie.indexOf("@") > -1) { 33 | jc_cookies = jc_cookie.split("@") 34 | } 35 | else if (process.env.jc_cookie && process.env.jc_cookie.indexOf('@') > -1) { 36 | jc_cookieArr = process.env.jc_cookie.split('@'); 37 | console.log(`您选择的是用"@"隔开\n`) 38 | } 39 | else { 40 | jc_cookies = [process.env.jc_cookie] 41 | }; 42 | Object.keys(jc_cookies).forEach((item) => { 43 | if (jc_cookies[item]) { 44 | jc_cookieArr.push(jc_cookies[item]) 45 | } 46 | }) 47 | 48 | 49 | 50 | !(async () => { 51 | console.log(`共${jc_cookieArr.length}个cookie`) 52 | for (let k = 0; k < jc_cookieArr.length; k++) { 53 | $.message = "" 54 | bodyVal = jc_cookieArr[k].split('&uid=')[0]; 55 | cookie = bodyVal.replace(/zqkey=/, "cookie=") 56 | cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") 57 | jc_cookie1= cookie_id + '&request_time=' + time1 + '&time=' + time1 +'&'+ bodyVal 58 | //待处理cookie 59 | //console.log(`${jc_cookie1}`) 60 | console.log(`--------第 ${k + 1} 个账号转盘抽奖中--------\n`) 61 | 62 | console.log("\n\n") 63 | 64 | for(let k = 0 ; k < 100 ; k++){ 65 | await Rotary(jc_cookie1,cookie_id,time) 66 | await $.wait(6000); 67 | console.log("\n\n") 68 | } 69 | for (let k = 1 ; k < 5 ; k++){ 70 | id = k.toString() 71 | await openbox(jc_cookie1,cookie_id,time,id) 72 | await $.wait(15000) 73 | } 74 | console.log("\n\n") 75 | } 76 | })() 77 | .catch((e) => $.logErr(e)) 78 | .finally(() => $.done()) 79 | //抽奖 80 | function Rotary(jc_cookie1,cookie_id,time) { 81 | return new Promise((resolve, reject) => { 82 | let url = { 83 | url : 'https://ant.xunsl.com/WebApi/RotaryTable/turnRotary?_='+time, 84 | headers : {'Host': 'ant.xunsl.com', 85 | 'Referer':'https://ant.xunsl.com/html/rotaryTable/index.html?'+jc_cookie1 86 | }, 87 | body:cookie_id, 88 | } 89 | $.post(url, async (err, resp, data) => { 90 | try { 91 | const result = JSON.parse(data) 92 | if(result.status === 1 ){ 93 | if(result.data.score !== 0){ 94 | console.log('好家伙!你抽中了'+result.data.score + '金币') 95 | 96 | //console.log('剩'+remain+'次') 97 | }else { 98 | console.log('你抽了个寂寞') 99 | } 100 | 101 | }else{ 102 | console.log('\n抽奖失败,别问我,我也不知道为啥') 103 | } 104 | } catch (e) { 105 | $.logErr(e+resp); 106 | } finally { 107 | resolve() 108 | } 109 | }) 110 | }) 111 | } 112 | 113 | function openbox(jc_cookie1,cookie_id,time,k,timeout = 0) { 114 | return new Promise((resolve) => { 115 | let url = { 116 | url : 'https://ant.xunsl.com/WebApi/RotaryTable/chestReward?_='+ time, 117 | headers : {'Host': 'ant.xunsl.com', 118 | 'User-Agent': 'Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/65.0.3325.109 Mobile Safari/537.36', 119 | 'Content-Type': 'application/x-www-form-urlencoded', 120 | 'Accept-Language': 'zh-CN,en-US;q=0.9', 121 | 'Accept-Encoding': 'gzip, deflate', 122 | 'Content-Length': (cookie_id +'&num='+k).length.toString(), 123 | 'Referer':'https://ant.xunsl.com/html/rotaryTable/index.html?'+jc_cookie1 124 | }, 125 | body:cookie_id + '&num=' + k, 126 | } 127 | $.post(url, async (err, resp, data) => { 128 | try { 129 | const result = JSON.parse(data) 130 | if(result.status === 1 ){ 131 | if(result.data.score !== 0){ 132 | console.log('宝箱获得:'+result.data.score + '金币') 133 | 134 | }else { 135 | console.log('宝箱打开失败') 136 | } 137 | }else{ 138 | console.log('\n宝箱请求失败') 139 | 140 | } 141 | } catch (e) { 142 | } finally { 143 | resolve() 144 | } 145 | },timeout) 146 | }) 147 | } 148 | 149 | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);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)} 150 | -------------------------------------------------------------------------------- /invalid/jc_box.js: -------------------------------------------------------------------------------- 1 | const $ = new Env('晶彩看点任务宝箱领取'); 2 | let jcboxbody= $.isNode() ? (process.env.jcboxbody ? process.env.jcboxbody : "") : ($.getdata('jcboxbody') ? $.getdata('jcboxbody') : "") 3 | let jcboxbodyArr = [] 4 | let jcboxbodys = "" 5 | 6 | 7 | 8 | if (!jcboxbody) { 9 | $.msg($.name, '【提示】请在app下方点击赚钱图标,在每日任务中点击所有可领取的奖励,获取body,明天再跑一次脚本', '不知道说啥好', { 10 | "open-url": "给您劈个叉吧" 11 | }); 12 | $.done() 13 | } 14 | else if (jcboxbody.indexOf("@") == -1) { 15 | jcboxbodyArr.push(jcboxbody) 16 | } 17 | else if (jcboxbody.indexOf("@") > -1) { 18 | jcboxbodys = jcboxbody.split("@") 19 | } 20 | else if (process.env.jcboxbody && process.env.jcboxbody.indexOf('@') > -1) { 21 | jcboxbodyArr = process.env.jcboxbody.split('@'); 22 | console.log(`您选择的是用"@"隔开\n`) 23 | } 24 | else { 25 | jcboxbodys = [process.env.jcboxbody] 26 | }; 27 | Object.keys(jcboxbodys).forEach((item) => { 28 | if (jcboxbodys[item]) { 29 | jcboxbodyArr.push(jcboxbodys[item]) 30 | } 31 | }) 32 | 33 | !(async () => { 34 | if (typeof $request !== "undefined") { 35 | getjcboxbody() 36 | $.done() 37 | }else { 38 | console.log(`共${jcboxbodyArr.length}个宝箱奖励body`) 39 | for (let k = 0; k < jcboxbodyArr.length; k++) { 40 | // $.message = "" 41 | jcboxbody1 = jcboxbodyArr[k]; 42 | //console.log(`${jcboxbody1}`) 43 | console.log(`--------第 ${k + 1} 次宝箱奖励执行中--------\n`) 44 | let jcboxheader = { 45 | 'device-platform': 'android', 46 | 'Content-Type': 'application/x-www-form-urlencoded', 47 | 'Content-Length': jcboxbody1.length.toString(), 48 | 'Host': 'ant.xunsl.com', 49 | } 50 | await jcboxreward(jcboxheader) 51 | console.log(typeof (jcboxbody1)); 52 | console.log(jcboxbody1.length.toString()); 53 | await $.wait(4000); 54 | console.log("\n\n") 55 | } 56 | } 57 | })() 58 | .catch((e) => $.logErr(e)) 59 | .finally(() => $.done()) 60 | 61 | function getjcboxbody() { 62 | if ($request.url.match(/\/ant.xunsl.com\/v5\/CommonReward\/toGetReward/)) { 63 | bodyVal = $request.body 64 | if (jcboxbody) { 65 | if (jcboxbody.indexOf(bodyVal) > -1) { 66 | $.log("此宝箱请求已存在,本次跳过") 67 | } else if (jcboxbody.indexOf(bodyVal) == -1) { 68 | jcboxbodys = jcboxbody + "&" + bodyVal; 69 | $.setdata(jcboxbodys, 'jcboxbody'); 70 | $.log(`${$.name}获取宝箱: 成功, jcboxbodys: ${bodyVal}`); 71 | bodys = jcboxbodys.split("&") 72 | $.msg($.name, "获取第" + bodys.length + "个宝箱请求: 成功🎉", ``) 73 | } 74 | } else { 75 | $.setdata(bodyVal, 'jcboxbody'); 76 | $.log(`${$.name}获取宝箱: 成功, jcboxbodys: ${bodyVal}`); 77 | $.msg($.name, `获取第一个宝箱请求: 成功🎉`, ``) 78 | } 79 | } 80 | 81 | } 82 | //宝箱 83 | function jcboxreward(jcboxheader,timeout=0) { 84 | return new Promise((resolve) => { 85 | let url = { 86 | url : 'https://ant.xunsl.com/v5/CommonReward/toGetReward.json', 87 | headers : jcboxheader, 88 | body : jcboxbody1,} 89 | $.post(url, async (err, resp, data) => { 90 | try { 91 | 92 | const result = JSON.parse(data) 93 | if(result.success !== false ){ 94 | console.log('\n领取宝箱奖励成功,获得:'+result.items.score + '金币') 95 | }else{ 96 | console.log('\n领取宝箱奖励失败,'+result.error_code) 97 | console.log(result) 98 | } 99 | } catch (e) { 100 | } finally { 101 | resolve() 102 | } 103 | },timeout) 104 | }) 105 | } 106 | 107 | 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)} 108 | 109 | -------------------------------------------------------------------------------- /invalid/jc_qd.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | cron 15 2 * * * 4 | 5 | */ 6 | const $ = new Env("晶彩看点签到"); 7 | const notify = $.isNode() ? require('./sendNotify') : ''; 8 | message = "" 9 | let qdbody= $.isNode() ? (process.env.qdbody ? process.env.qdbody : "") : ($.getdata('qdbody') ? $.getdata('qdbody') : "") 10 | let qdbodyArr = [] 11 | let qdbodys = "" 12 | const qdheader={ 13 | 'device-platform': 'android', 14 | 'Content-Type': 'application/x-www-form-urlencoded', 15 | 'Content-Length': '1247', 16 | 'Host': 'ant.xunsl.com' 17 | }; 18 | 19 | if (typeof $request !== "undefined") { 20 | getqdbody() 21 | $.done() 22 | } 23 | if (!qdbody) { 24 | $.msg($.name, '【提示】请签到以获取body,明天再跑一次脚本测试', '不知道说啥好', { 25 | "open-url": "给您劈个叉吧" 26 | }); 27 | $.done() 28 | } 29 | else if (qdbody.indexOf("@") == -1) { 30 | qdbodyArr.push(qdbody) 31 | } 32 | else if (qdbody.indexOf("@") > -1) { 33 | qdbodys = qdbody.split("@") 34 | } 35 | else if (process.env.qdbody && process.env.qdbody.indexOf('@') > -1) { 36 | qdbodyArr = process.env.qdbody.split('@'); 37 | console.log(`您选择的是用"@"隔开\n`) 38 | } 39 | else { 40 | qdbodys = [process.env.qdbody] 41 | }; 42 | Object.keys(qdbodys).forEach((item) => { 43 | if (qdbodys[item]) { 44 | qdbodyArr.push(qdbodys[item]) 45 | } 46 | }) 47 | 48 | !(async () => { 49 | 50 | 51 | console.log(`共${qdbodyArr.length}个账号`) 52 | for (let k = 0; k < qdbodyArr.length; k++) { 53 | $.message = "" 54 | qdbody1 = qdbodyArr[k]; 55 | //console.log(`${qdbody1}`) 56 | console.log(`--------账号 ${k+1} 签到任务执行中--------\n`) 57 | await jcqd() 58 | await $.wait(1000); 59 | console.log("\n\n") 60 | } 61 | 62 | date = new Date() 63 | if ($.isNode() &&date.getHours() == 11 && date.getMinutes()<10) { 64 | if (message.length != 0) { 65 | await notify.sendNotify("晶彩看点签到", `${message}\n\n shaolin-kongfu`); 66 | } 67 | } else { 68 | $.msg($.name, "", message) 69 | } 70 | 71 | })() 72 | .catch((e) => $.logErr(e)) 73 | .finally(() => $.done()) 74 | 75 | 76 | //获取签到body 77 | function getqdbody() { 78 | if ($request.url.match(/\/ant.xunsl.com\/v5\/CommonReward\/toGetReward/)) { 79 | bodyVal = $request.body 80 | if (qdbody) { 81 | if (qdbody.indexOf(bodyVal) > -1) { 82 | $.log("此签到请求已存在,本次跳过") 83 | } else if (qdbody.indexOf(bodyVal) == -1) { 84 | qdbodys = qdbody + "&" + bodyVal; 85 | $.setdata(qdbodys, 'qdbody'); 86 | $.log(`${$.name}获取签到: 成功, qdbodys: ${bodyVal}`); 87 | bodys = qdbodys.split("&") 88 | $.msg($.name, "获取第" + bodys.length + "个签到请求: 成功🎉", ``) 89 | } 90 | } else { 91 | $.setdata(bodyVal, 'qdbody'); 92 | $.log(`${$.name}获取签到: 成功, qdbodys: ${bodyVal}`); 93 | $.msg($.name, `获取第一个签到请求: 成功🎉`, ``) 94 | } 95 | } 96 | 97 | } 98 | 99 | //签到 100 | function jcqd(timeout = 0) { 101 | return new Promise((resolve) => { 102 | let url = { 103 | url : 'https://ant.xunsl.com/v5/CommonReward/toGetReward.json', 104 | headers : qdheader, 105 | body : qdbody1,} 106 | $.post(url, async (err, resp, data) => { 107 | try { 108 | 109 | const result = JSON.parse(data) 110 | if(result.success == true){ 111 | console.log('\n签到成功,获得:'+result.items.score +'金币') 112 | }else{ 113 | console.log('\n今日已签到,明天再来吧^_^') 114 | } 115 | } catch (e) { 116 | } finally { 117 | resolve() 118 | } 119 | },timeout) 120 | }) 121 | } 122 | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);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)} 123 | 124 | -------------------------------------------------------------------------------- /invalid/jc_today_score.js: -------------------------------------------------------------------------------- 1 | /* 2 | shaolin-kongfu 3 | 软件名称:晶彩看点 4 | 5 | [rewrite_local] 6 | #晶彩看点每日收益查询 7 | https://ant.xunsl.com/v17/NewTask/getTaskList.json 重写目标 https://raw.githubusercontent.com/shaolin-kongfu/js_scripts/main/jc_today_score.js 8 | [MITM] 9 | hostname = ant.xunsl.com 10 | */ 11 | 12 | const $ = new Env("晶彩看点收益统计"); 13 | const notify = $.isNode() ? require('./sendNotify') : ''; 14 | message = "" 15 | let jc_cookie= $.isNode() ? (process.env.jc_cookie ? process.env.jc_cookie : "") : ($.getdata('jc_cookie') ? $.getdata('jc_cookie') : "") 16 | let jc_cookieArr = [] 17 | let jc_cookies = "" 18 | 19 | 20 | 21 | 22 | 23 | if (!jc_cookie) { 24 | $.msg($.name, '【提示】进入点击右下角"赚钱图标",再跑一次脚本', '不知道说啥好', { 25 | "open-url": "给您劈个叉吧" 26 | }); 27 | $.done() 28 | } 29 | else if (jc_cookie.indexOf("@") == -1 && jc_cookie.indexOf("@") == -1) { 30 | jc_cookieArr.push(jc_cookie) 31 | } 32 | else if (jc_cookie.indexOf("@") > -1) { 33 | jc_cookies = jc_cookie.split("@") 34 | } 35 | else if (process.env.jc_cookie && process.env.jc_cookie.indexOf('@') > -1) { 36 | jc_cookieArr = process.env.jc_cookie.split('@'); 37 | console.log(`您选择的是用"@"隔开\n`) 38 | } 39 | else { 40 | jc_cookies = [process.env.jc_cookie] 41 | }; 42 | Object.keys(jc_cookies).forEach((item) => { 43 | if (jc_cookies[item]) { 44 | jc_cookieArr.push(jc_cookies[item]) 45 | } 46 | }) 47 | 48 | !(async () => { 49 | if (typeof $request !== "undefined") { 50 | getjc_cookie() 51 | $.done() 52 | }else { 53 | console.log(`共${jc_cookieArr.length}个cookie`) 54 | for (let k = 0; k < jc_cookieArr.length; k++) { 55 | $.message = "" 56 | bodyVal = jc_cookieArr[k].split('&uid=')[0]; 57 | cookie = bodyVal.replace(/zqkey=/, "cookie=") 58 | cookie_id = cookie.replace(/zqkey_id=/, "cookie_id=") 59 | jc_cookie1 = cookie_id + '&' + bodyVal 60 | jc_cookie2 = 'uid='+jc_cookieArr[k].split('&uid=')[1] + '&'+ bodyVal 61 | //待处理cookie 62 | //console.log(`${jc_cookie1}`) 63 | console.log(`--------第 ${k + 1} 个账号收益查询中--------\n`) 64 | await nickname(jc_cookie2) 65 | if ($.message.length != 0) { 66 | message += "账号" + (k + 1) + ": " + $.message + " \n" 67 | } 68 | await $.wait(4000); 69 | console.log("\n\n") 70 | } 71 | 72 | 73 | if (message.length != 0) { 74 | await notify ? notify.sendNotify("晶彩看点收益查询", `${message}\n\n shaolin-kongfu`) : 75 | $.msg($.name, "晶彩看点收益查询", `${message}`); 76 | } else if ($.isNode()) { 77 | await notify.sendNotify("晶彩看点收益查询", `${message}\n\nshaolin-kongfu`); 78 | } 79 | } 80 | })() 81 | .catch((e) => $.logErr(e)) 82 | .finally(() => $.done()) 83 | 84 | function nickname(jc_cookie2,timeout = 0) { 85 | return new Promise((resolve) => { 86 | let url = { 87 | url : 'https://ant.xunsl.com/v17/NewTask/getSign.json?'+ jc_cookie2, 88 | headers : { 89 | 'Host': 'ant.xunsl.com' 90 | }, 91 | } 92 | $.get(url, async (err, resp, data) => { 93 | try { 94 | 95 | const result = JSON.parse(data) 96 | if(result.success == true){ 97 | console.log('\n昵称:'+result.items.user.nickname) 98 | nickname1 =result.items.user.nickname 99 | await $.wait(1000); 100 | await today_score(jc_cookie1,nickname1) 101 | 102 | 103 | }else{ 104 | console.log(result) 105 | } 106 | } catch (e) { 107 | } finally { 108 | resolve() 109 | } 110 | },timeout) 111 | }) 112 | } 113 | function today_score(jc_cookie1,nickname1,timeout = 0) { 114 | return new Promise((resolve) => { 115 | let url = { 116 | url : 'https://ant.xunsl.com/wap/user/balance?'+ jc_cookie1, 117 | headers : { 118 | 'Host': 'ant.xunsl.com' 119 | }, 120 | } 121 | $.get(url, async (err, resp, data) => { 122 | try { 123 | 124 | const result = JSON.parse(data) 125 | if(result.status == 0){ 126 | console.log('\n今日收益总计:'+result.user.today_score) 127 | console.log('\n当前金币总数:'+result.user.score) 128 | console.log('\n折合人民币总数:'+result.user.money) 129 | $.message = `昵称:${nickname1}\n今日收益总计:${result.user.today_score}金币\n 当前金币总数:${result.user.score} \n 折合人民币总数:${result.user.money}元` 130 | //$.msg($.name, "", `今日收益总计:${result.user.today_score}金币\n 当前金币总数:${result.user.score} \n 折合人民币总数:${result.user.money}元`); 131 | }else{ 132 | console.log(result) 133 | } 134 | } catch (e) { 135 | } finally { 136 | resolve() 137 | } 138 | },timeout) 139 | }) 140 | } 141 | 142 | 143 | 144 | async function getjc_cookie() { 145 | if ($request.url.match(/\/ant.xunsl.com\/v17\/NewTask\/getTaskList/)) { 146 | bodyVal1 = $request.url.split('?')[1] 147 | bodyVal2 = bodyVal1.split('&token')[0] 148 | bodyVal3 = bodyVal2.split('&zqkey=')[1] 149 | bodyVal4 = bodyVal2.split('&uid=')[1] 150 | bodyVal5 = bodyVal4.split('&version_code=')[0] 151 | bodyVal = 'zqkey='+ bodyVal3 + '&uid='+ bodyVal5 152 | if (jc_cookie) { 153 | if (jc_cookie.indexOf(bodyVal5) > -1) { 154 | $.log("此cookie已存在,本次跳过") 155 | } else if (jc_cookie.indexOf(bodyVal5) === -1) { 156 | jc_cookies = jc_cookie + "@" + bodyVal; 157 | $.setdata(jc_cookies, 'jc_cookie'); 158 | $.log(`${$.name}获取cookie: 成功, jc_cookies: ${bodyVal}`); 159 | bodys = jc_cookies.split("@") 160 | $.msg($.name, "获取第" + bodys.length + "个cookie: 成功🎉", ``) 161 | } 162 | } else { 163 | $.setdata(bodyVal, 'jc_cookie'); 164 | $.log(`${$.name}获取cookie: 成功, jc_cookies: ${bodyVal}`); 165 | $.msg($.name, `获取第一个cookie: 成功🎉`, ``) 166 | } 167 | } 168 | 169 | } 170 | 171 | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);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)} 172 | 173 | 174 | -------------------------------------------------------------------------------- /invalid/jc_wz.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | cron 30 7 * * * 4 | 5 | */ 6 | const $ = new Env("晶彩看点阅读文章"); 7 | const notify = $.isNode() ? require('./sendNotify') : ''; 8 | message = "" 9 | 10 | 11 | let wzbody= $.isNode() ? (process.env.wzbody ? process.env.wzbody : "") : ($.getdata('wzbody') ? $.getdata('wzbody') : "") 12 | let wzbodyArr = [] 13 | let wzbodys = "" 14 | 15 | let jc_timebody= $.isNode() ? (process.env.jc_timebody ? process.env.jc_timebody : "") : ($.getdata('jc_timebody') ? $.getdata('jc_timebody') : "") 16 | let jc_timebodyArr = [] 17 | let jc_timebodys = "" 18 | const jc_timeheader={ 19 | 'device-platform': 'android', 20 | 'Content-Type': 'application/x-www-form-urlencoded', 21 | 'Content-Length': '1198', 22 | 'Host': 'ant.xunsl.com' 23 | } 24 | const wzheader = { 25 | 'device-platform': 'android', 26 | 'Content-Type': 'application/x-www-form-urlencoded', 27 | 'Content-Length': '1201', 28 | 'Host': 'ant.xunsl.com' 29 | } 30 | 31 | if (!jc_timebody) { 32 | $.msg($.name, '【提示】请点击文章获取body,再跑一次脚本', '不知道说啥好', { 33 | "open-url": "给您劈个叉吧" 34 | }); 35 | $.done() 36 | } 37 | else if (jc_timebody.indexOf("@") == -1) { 38 | jc_timebodyArr.push(jc_timebody) 39 | } 40 | else if (jc_timebody.indexOf("@") > -1) { 41 | jc_timebodys = jc_timebody.split("@") 42 | } 43 | else if (process.env.jc_timebody && process.env.jc_timebody.indexOf('@') > -1) { 44 | jc_timebodyArr = process.env.jc_timebody.split('@'); 45 | console.log(`您选择的是用"@"隔开\n`) 46 | } 47 | else { 48 | jc_timebodys = [process.env.jc_timebody] 49 | }; 50 | Object.keys(jc_timebodys).forEach((item) => { 51 | if (jc_timebodys[item]) { 52 | jc_timebodyArr.push(jc_timebodys[item]) 53 | } 54 | }) 55 | 56 | if (!wzbody) { 57 | $.msg($.name, '【提示】请点击文章获取body,再跑一次脚本', '不知道说啥好', { 58 | "open-url": "给您劈个叉吧" 59 | }); 60 | $.done() 61 | } 62 | else if (wzbody.indexOf("@") == -1) { 63 | wzbodyArr.push(wzbody) 64 | } 65 | else if (wzbody.indexOf("@") > -1) { 66 | wzbodys = wzbody.split("@") 67 | } 68 | else if (process.env.wzbody && process.env.wzbody.indexOf('@') > -1) { 69 | wzbodyArr = process.env.wzbody.split('@'); 70 | console.log(`您选择的是用"@"隔开\n`) 71 | } 72 | else { 73 | wzbodys = [process.env.wzbody] 74 | }; 75 | Object.keys(wzbodys).forEach((item) => { 76 | if (wzbodys[item]) { 77 | wzbodyArr.push(wzbodys[item]) 78 | } 79 | }) 80 | 81 | !(async () => { 82 | if (typeof $request !== "undefined") { 83 | getwzbody() 84 | getjc_timebody() 85 | $.done() 86 | }else { 87 | 88 | console.log(`共${wzbodyArr.length}个阅读body`) 89 | for (let k = 0; k < wzbodyArr.length; k++) { 90 | // $.message = "" 91 | wzbody1 = wzbodyArr[k]; 92 | // console.log(`${wzbody1}`) 93 | console.log(`--------第 ${k + 1} 次阅读任务执行中--------\n`) 94 | await wzjl() 95 | await $.wait(60000); 96 | for (let k = 0; k < jc_timebodyArr.length; k++) { 97 | jc_timebody1 = jc_timebodyArr[k]; 98 | await timejl() 99 | } 100 | console.log("\n\n") 101 | } 102 | } 103 | 104 | 105 | 106 | // date = new Date() 107 | // if ($.isNode() &&date.getHours() == 11 && date.getMinutes()<10) { 108 | // if (message.length != 0) { 109 | // await notify.sendNotify("晶彩看点文章阅读", `${message}\n\n shaolin-kongfu`); 110 | // } 111 | // } else { 112 | // $.msg($.name, "", message) 113 | // } 114 | 115 | })() 116 | .catch((e) => $.logErr(e)) 117 | .finally(() => $.done()) 118 | 119 | 120 | function getwzbody() { 121 | if ($request.url.match(/\/ant.xunsl.com\/v5\/article\/info.json/)||$request.url.match(/\/ant.xunsl.com\/v5\/article\/detail.json/)) { 122 | bodyVal1 = $request.url.split('p=')[1] 123 | console.log(encodeURIComponent(bodyVal1)) 124 | bodyVal = 'p='+encodeURIComponent(bodyVal1) 125 | console.log(bodyVal) 126 | 127 | 128 | if (wzbody) { 129 | if (wzbody.indexOf(bodyVal) > -1) { 130 | $.log("此阅读请求已存在,本次跳过") 131 | } else if (wzbody.indexOf(bodyVal) == -1) { 132 | wzbodys = wzbody + "&" + bodyVal; 133 | $.setdata(wzbodys, 'wzbody'); 134 | $.log(`${$.name}获取阅读: 成功, wzbodys: ${bodyVal}`); 135 | bodys = wzbodys.split("&") 136 | $.msg($.name, "获取第" + bodys.length + "个阅读请求: 成功🎉", ``) 137 | } 138 | } else { 139 | $.setdata(bodyVal, 'wzbody'); 140 | $.log(`${$.name}获取阅读: 成功, wzbodys: ${bodyVal}`); 141 | $.msg($.name, `获取第一个阅读请求: 成功🎉`, ``) 142 | } 143 | } 144 | 145 | } 146 | //阅读文章奖励 147 | function wzjl(timeout = 0) { 148 | return new Promise((resolve) => { 149 | let url = { 150 | url : 'https://ant.xunsl.com/v5/article/complete.json', 151 | headers : wzheader, 152 | body : wzbody1,}//xsgbody,} 153 | $.post(url, async (err, resp, data) => { 154 | try { 155 | 156 | const result = JSON.parse(data) 157 | if(result.items.read_score !== "undefined" ){ 158 | console.log('\n浏览文章成功,获得:'+result.items.read_score + '金币') 159 | }else{ 160 | console.log('\n看太久了,换一篇试试') 161 | } 162 | } catch (e) { 163 | } finally { 164 | resolve() 165 | } 166 | },timeout) 167 | }) 168 | } 169 | 170 | 171 | function getjc_timebody() { 172 | if ($request.url.match(/\/ant.xunsl.com\/v5\/user\/stay.json/)) { 173 | bodyVal=$request.body 174 | console.log(bodyVal) 175 | if (jc_timebody) { 176 | if (jc_timebody.indexOf(bodyVal) > -1) { 177 | $.log("此阅读时长请求已存在,本次跳过") 178 | } else if (jc_timebody.indexOf(bodyVal) == -1) { 179 | jc_timebodys = jc_timebody + "&" + bodyVal; 180 | $.setdata(jc_timebodys,'jc_timebody'); 181 | $.log(`${$.name}获取阅读: 成功, jc_timebodys: ${bodyVal}`); 182 | bodys = jc_timebodys.split("&") 183 | $.msg($.name, "获取第" + bodys.length + "个阅读时长请求: 成功🎉", ``) 184 | } 185 | } else { 186 | $.setdata($request.body,'jc_timebody'); 187 | $.log(`${$.name}获取阅读: 成功, jc_timebodys: ${bodyVal}`); 188 | $.msg($.name, `获取第一个阅读时长请求: 成功🎉`, ``) 189 | } 190 | } 191 | } 192 | 193 | function timejl(timeout = 0) { 194 | return new Promise((resolve) => { 195 | let url = { 196 | url : 'https://ant.xunsl.com/v5/user/stay.json', 197 | headers : jc_timeheader, 198 | body : jc_timebody1,}//xsgbody,} 199 | $.post(url, async (err, resp, data) => { 200 | try { 201 | 202 | const result = JSON.parse(data) 203 | if(result.success === true ){ 204 | console.log('\n阅读时长:'+result.time + '秒') 205 | }else{ 206 | console.log('\n更新阅读时长失败') 207 | } 208 | } catch (e) { 209 | } finally { 210 | resolve() 211 | } 212 | },timeout) 213 | }) 214 | } 215 | 216 | function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);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)} 217 | -------------------------------------------------------------------------------- /invalid/wx遛遛它.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | [MITM] 4 | hostname = www.chongpar.cn 5 | https://www.chongpar.cn/member/cp-member-integral/add url script-request-header llt.js 6 | 打开遛遛它签到页面 7 | 提现秒到 8 | */ 9 | const $ = new Env('遛遛它'); 10 | 11 | let status; 12 | status = (status = ($.getval("ddtjstatus") || "1")) > 1 ? `${status}` : ""; // 账号扩展字符 13 | let llthddArr = [], lltbdtArr = [], hd = '', token = '' 14 | let realName = '' //支付宝名称 15 | let phone = '' //支付宝账号 16 | let userCookie = ($.isNode() ? process.env.lltToken : $.getdata('lltToken')) || ''; 17 | 18 | 19 | !(async () => { 20 | if (typeof $request !== "undefined") { 21 | await get_data() 22 | 23 | } else { 24 | llthddArr = userCookie.split('@') 25 | console.log(`------------- 共${llthddArr.length}个账号-------------\n`) 26 | for (let i = 0; i < llthddArr.length; i++) { 27 | token = llthddArr[i] 28 | await add(1) 29 | await judge() 30 | } 31 | 32 | } 33 | 34 | } 35 | )() 36 | .catch((e) => $.logErr(e)) 37 | .finally(() => $.done()) 38 | //数据获取 39 | function get_data() { 40 | if ($request.url.indexOf("cp-member-integral/add") > -1) { 41 | let ck = $request.headers['User-Token'] 42 | //if (!token) return false 43 | console.log(ck) 44 | if (userCookie) { 45 | if (userCookie.indexOf(ck) == -1) { 46 | userCookie = userCookie + '@' + ck 47 | $.setdata(userCookie, 'lltToken'); 48 | ckList = userCookie.split('@') 49 | $.msg(`获取第${ckList.length}个ck成功: ${ck}`) 50 | } 51 | } else { 52 | $.setdata(ck, 'lltToken'); 53 | $.msg(`获取第1个ck成功: ${ck}`) 54 | } 55 | } 56 | } 57 | 58 | //签到 59 | function add(id,timeout = 0) { 60 | return new Promise((resolve) => { 61 | let url = populateUrlObject(`/cp-member-integral/add`, token,`{"type":${id}}`) 62 | $.post(url, async (err, resp, data) => { 63 | try { 64 | 65 | if(err = 'Response code 400 (Bad Request)'){ 66 | console.log(`签到:已签到`); 67 | }else{ 68 | console.log(`签到:签到成功`); 69 | } 70 | } catch (e) { 71 | $.logErr(e, resp); 72 | } finally { 73 | resolve() 74 | } 75 | }, timeout) 76 | }) 77 | } 78 | 79 | function judge(timeout = 0) { 80 | return new Promise((resolve) => { 81 | let url = populateUrlObject(`/cp-member-integral-award-rule/judge?id=9014`, token) 82 | $.get(url, async (err, resp, data) => { 83 | try { 84 | let ret = JSON.parse(data) 85 | console.log(ret.brief); 86 | let id = ret.orderId 87 | if(id){ 88 | await confirm(id) 89 | } 90 | } catch (e) { 91 | $.logErr(e, resp); 92 | } finally { 93 | resolve() 94 | } 95 | }, timeout) 96 | }) 97 | } 98 | 99 | function confirm(id, timeout = 0) { 100 | return new Promise((resolve) => { 101 | let url = populateUrlObject(`/cp-member-integral-award-rule/confirm`, token, `{"phone":"${phone}","id":"${id}","realName":"${realName}"}`) 102 | $.post(url, async (err, resp, data) => { 103 | try { 104 | console.log(data); 105 | let ret = JSON.parse(data) 106 | console.log(ret.brief + `:${ret.price / 100}元`); 107 | } catch (e) { 108 | $.logErr(e, resp); 109 | } finally { 110 | resolve() 111 | } 112 | }, timeout) 113 | }) 114 | } 115 | 116 | function populateUrlObject(url, token, body = '') { 117 | let urlObject = { 118 | url: `https://www.chongpar.cn/member`+url, 119 | headers: { 120 | "Host": "www.chongpar.cn", 121 | "Connection": "keep-alive", 122 | "api-platform": "h5", 123 | "Content-Type": "application/json", 124 | "api-version": "1.0.0", 125 | "Safety-Code": "", 126 | "User-Token": token, 127 | "version": "1.0.20", 128 | "Safety-Token": "", 129 | "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.18(0x1800123f) NetType/WIFI Language/zh_CN", 130 | "Referer": "https://servicewechat.com/wxf85576319c33dd1b/35/page-frame.html" 131 | } 132 | } 133 | if (body) urlObject.body = body 134 | return urlObject; 135 | } 136 | 137 | function timestampToTime(timestamp) { 138 | return new Date(parseInt(timestamp)).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " "); 139 | } 140 | 141 | 142 | function stringToBase64(str) { 143 | var base64Str = Buffer.from(str).toString('base64'); 144 | return base64Str; 145 | } 146 | 147 | function sleep(timeout) { 148 | return new Promise((resolve) => setTimeout(resolve, timeout)); 149 | } 150 | 151 | function reconvert(str) { 152 | str = str.replace(/(\\u)(\w{1,4})/gi, function ($0) { 153 | return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{1,4})/g, "$2")), 16))); 154 | }); 155 | str = str.replace(/(&#x)(\w{1,4});/gi, function ($0) { 156 | return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{1,4})(%3B)/g, "$2"), 16)); 157 | }); 158 | str = str.replace(/(&#)(\d{1,6});/gi, function ($0) { 159 | return String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g, "$2"))); 160 | }); 161 | 162 | return str; 163 | } 164 | 165 | function encodeUTF8(str) { 166 | let utf8Str = '' 167 | for (let i = 0; i < str.length; i++) { 168 | let t = str[i] 169 | let text = '' 170 | if (encodeURIComponent(t).length < 4) { 171 | text = t.charCodeAt(0).toString(16); 172 | } else { 173 | text = encodeURIComponent(t) 174 | text = text.replaceAll('%', '') 175 | } 176 | console.log("每个字符", i, t, text) 177 | utf8Str += text 178 | } 179 | console.log("转换后", utf8Str) 180 | return utf8Str 181 | } 182 | 183 | 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) } 184 | -------------------------------------------------------------------------------- /invalid/yctt.js: -------------------------------------------------------------------------------- 1 | /* 2 | 邀请码: PC49JLAIF 3 | 感谢填写! 感谢填写!! 感谢填写!!! 4 | 1.14 完成签到以及积分查询 , 脚本部分内容借鉴了tom大佬的模板,感谢tom大佬的新毛及模板 5 | 平台: 青龙 6 | 软件: 永川头条 7 | 收益: 获得积分,可以兑换实物,发不发货未知 8 | 注意事项 : 一定要仔细阅读一下内容 9 | 10 | =============青龙变量============= 11 | export ycttua='' 12 | export ycttToken='' 13 | export sessionId='' 14 | 15 | =============变量解释========== 16 | ycttua:UA 这个不需要解释了吧 17 | ycttToken:变量中的xxxx是你的token,每个人是固定的,可以从 关键词 doSign 包里找到所有变量 18 | sessionId:变量中的xxxx是你的id,每个人是固定的,可以从 关键词 doSign 包里找到所有变量 19 | 20 | 21 | =============变量获取========== 22 | ios: 可以使用圈x(需要把去广告功能关闭) 也可以使用 steam , thor 等工具 23 | 圈x为例 开启http抓包 24 | 打开app,签到,然后搜索关键字 doSign , 其中post请求里可以找到所有变量 25 | ycttToken , sessionId 在请求体中 , 请求体-文本 查看里面的 26 | 27 | 28 | 安卓: 使用小黄鸟进行抓包,打开app,签到, 搜索关键字 doSign 即可获得一条记录,点击总览右侧的 请求 请求 请求 ,然后点击下方的 text text text,即可获得包内容;然后根据一下模板填写即可 29 | 30 | 还不会的请百度或者群里求助 31 | 32 | */ 33 | 34 | const $ = new Env('永川头条签到'); 35 | const host = 'api.cqliving.com'; 36 | const notify = $.isNode() ? require('./sendNotify') : ''; 37 | let ycttua = process.env.ycttua; 38 | let ycttToken = process.env.ycttToken; 39 | let sessionId = process.env.sessionId; 40 | let body = `appId=9&sessionId=${sessionId}&token=${ycttToken}&v=1`; 41 | 42 | //开始运行 43 | !(async () => { 44 | await yml() 45 | 46 | })() 47 | .catch((e) => $.logErr(e)) 48 | .finally(() => $.done()) 49 | 50 | // 1000 ms == 1 s 60000 ms == 1 min 600000 ms == 10 min 51 | //这里是要执行的代码 ====== 如果有您不需要的 请自行注释 使用 // 注释就行 ======== 52 | async function yml() { 53 | await wyy(); 54 | await qd(); 55 | await cx(); 56 | } 57 | 58 | 59 | //每日网抑云 60 | function wyy(timeout = 0) { 61 | return new Promise((resolve) => { 62 | let url = { 63 | url: `https://tenapi.cn/comment/` 64 | } 65 | $.get(url, async (err, resp, data) => { 66 | try { 67 | data = JSON.parse(data) 68 | $.log(`\n【网抑云时间】: ${data.data.content} by--${data.data.song}`); 69 | 70 | } catch (e) { 71 | $.logErr(e, resp); 72 | } finally { 73 | resolve() 74 | } 75 | }, timeout) 76 | }) 77 | } 78 | 79 | // 签到任务 80 | function qd(timeout = 0) { 81 | return new Promise((resolve) => { 82 | let url = { 83 | url: `https://${host}/point/doSign.html`, 84 | headers: { 85 | 86 | 'User-Agent': ycttua 87 | 88 | }, 89 | 90 | body: body 91 | 92 | 93 | } 94 | 95 | // console.log(url); 96 | 97 | 98 | $.post(url, async (err, resp, data) => { 99 | try { 100 | 101 | // console.log(`输出data开始===================`); 102 | // console.log(data); 103 | // console.log(`输出data结束===================`); 104 | 105 | result = JSON.parse(data); 106 | if (result.code == 0) { 107 | $.log(`\n【🎉🎉🎉 恭喜您鸭 🎉🎉🎉】执行签到: 成功 `) 108 | // await $.wait(3 * 1000) 109 | } else { 110 | $.log(`\n【🎉 恭喜个屁 🎉】执行签到:失败🙅🏻了呢,原因可能是是:${result.message}`) 111 | } 112 | } catch (e) { 113 | $.logErr(e, resp); 114 | } finally { 115 | resolve() 116 | } 117 | }, timeout) 118 | 119 | }) 120 | 121 | } 122 | 123 | 124 | 125 | // 查询任务 126 | function cx(timeout = 0) { 127 | return new Promise((resolve) => { 128 | let url = { 129 | url: `https://${host}/point/myInfo.html`, 130 | headers: { 131 | 132 | 'Host': host, 133 | 'Content-Type': 'application/x-www-form-urlencoded' 134 | 135 | }, 136 | 137 | body: body 138 | } 139 | 140 | // console.log(url); 141 | 142 | $.post(url, async (err, resp, data) => { 143 | try { 144 | 145 | // console.log(`输出data开始===================`); 146 | // console.log(data); 147 | // console.log(`输出data结束===================`); 148 | 149 | result = JSON.parse(data); 150 | if (result.code == 0) { 151 | console.log(`\n【🎉🎉🎉 恭喜您鸭 🎉🎉🎉】余额查询: 成功 , 已获得积分${result.data.currentPoint}`); 152 | // await $.wait(3 * 1000) 153 | } else { 154 | console.log(`\n【🎉 恭喜个屁 🎉】余额查询: 失败 `) 155 | } 156 | } catch (e) { 157 | $.logErr(e, resp); 158 | } finally { 159 | resolve() 160 | } 161 | }, timeout) 162 | 163 | }) 164 | 165 | } 166 | 167 | 168 | 169 | //固定板块,无需动 170 | 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.encoding = "utf-8", 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 } isShadowrocket() { return "undefined" != typeof $rocket } 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("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (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 = (() => { })) { if (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) }); else if (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)); else if (this.isNode()) { let s = require("iconv-lite"); 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(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: i, statusCode: r, headers: o, rawBody: h } = t; e(null, { status: i, statusCode: r, headers: o, rawBody: h }, s.decode(h, this.encoding)) }, t => { const { message: i, response: r } = t; e(i, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = (() => { })) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; 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[s](t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = s, 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()) { let i = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...o } = t; this.got[s](r, o).then(t => { const { statusCode: s, statusCode: r, headers: o, rawBody: h } = t; e(null, { status: s, statusCode: r, headers: o, rawBody: h }, i.decode(h, this.encoding)) }, t => { const { message: s, response: r } = t; e(s, r, r && i.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).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 } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } 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) } -------------------------------------------------------------------------------- /invalid/富豪人生随便玩玩.js: -------------------------------------------------------------------------------- 1 | /* 2 | 扫码注册后 ios需要下载一个配置文件 3 | 4 | 然后去扫码公众号认证一下 非常简单 5 | 6 | 金币够了上线去卖掉 一个七毛钱 7 | 一天2金币 8 | 9 | 签到一天一块 满20自动提现 需要绑定支付宝 10 | 11 | 手机号#密码 密码不要带& # 等符号 12 | 13 | v2p 圈× 青龙 14 | 15 | 用 @ 分割多账户 16 | 17 | 对应变量 18 | export fhcookie='手机号#密码' 19 | 20 | //存银行得利息开关 默认关闭 设置1打开 21 | export fhsave='' 22 | 23 | //存入金币开关 至少存入一金币 默认存1金币 24 | export fhgoldnum='' 25 | 26 | */ 27 | 28 | 29 | 30 | const $ = Env('富豪人生') 31 | let ck=($.isNode()?process.env.fhcookie:$.getdata("fhcookie"))||"",goldnum=($.isNode()?process.env.fhgoldnum:$.getdata("fhgoldnum"))||"1",save=($.isNode()?process.env.fhsave:$.getdata("fhsave"))||"0",ckArr=[],envSplitor=["@"];async function checkEnv(){if(ck)for(let a of ck.split("@"))a&&ckArr.push(a);else if(console.log("\u672A\u627E\u5230\u8D26\u53F7\u6570\u636E"),ckArr.length<1)return;return console.log(`共找到${ckArr.length}个账号`),!0}async function login(b,c){try{let e;await httpRequest("post",populateUrlObject("http://fhrs.04hltfk.cn:81/home/index/login",JSON.stringify({account:b,pwd:c})));let a=httpResult;1==a.code?(zyto=a.token,zyid=a.data.id,console.log(`账号[${h}] ${b} ${a.msg} `),await check()):console.log(`账号[${h}] ${b}登录:${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function check(){try{let d="http://fhrs.04hltfk.cn:81/home/user/getUserInfo",e="",g;await httpRequest("get",mini(d,`${zyid}`,`${zyto}`,e));let a=httpResult;if(null==a.data.alipay_account?console.log(`账号[${h}] 检测到支付宝未绑定`):console.log(`账号[${h}] 检测到支付宝已绑定 32 | 账号[${h}] 绑定号码 `+a.data.alipay_account),1==a.code){if(null==a.data.cunru_gold)var c="0";else if(a.data.cunru_gold>0)var c=a.data.cunru_gold}console.log(` 33 | 账号[${h}] 金币:${a.data.gold} 签到:${a.data.sign_money}元 已存 ${c} 金币`),this.cashx=a.data.sign_money,this.cashx>20&&this.cashx<40&&(this.num=20,this.o="\u4E8C\u5341\u5143",await tx()),this.cashx>=50&&this.cashx<80&&(this.num=50,this.o="\u4E94\u5341\u5143",await tx()),this.cashx>=100&&this.cashx<200&&(this.num=100,this.o="\u4E00\u767E\u5143",await tx()),a.data.ticket>=1&&(await openBlindt(),await pages());for(let b=1;b<=2;b++)this.x=b,1==this.x&&(this.m=`领金币`,await openBlind()),2==this.x&&(this.m=`签到`,await everyDaySignIn());1==save&&goldnum>=1&&(console.log(` 34 | 🔸你选择存入银行${goldnum}金币,每日凌晨自动返还账户`),await deposit())}catch(f){console.log(f)}finally{return new Promise(a=>{a(1)})}}async function openBlind(){try{let b="http://fhrs.04hltfk.cn:81/home/user/getGoldBonus",c="",e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;a.code,console.log(` 35 | 账号[${h}] ${this.m} :${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function pages(){try{let b="http://fhrs.04hltfk.cn:81/home/user/getUserInfo",c="",e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;1==a.code&&(console.log(` 36 | 账号[${h}] 商票分红余额: ${a.data.user_money}元`),a.data.user_money>0&&(this.money=a.data.user_money,await xtx()))}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function openBlindt(){try{let b="http://fhrs.04hltfk.cn:81/home/user/getTicketBonus",c="",e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;a.code,console.log(` 37 | 账号[${h}] 商票分红:${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function everyDaySignIn(){try{let b="http://fhrs.04hltfk.cn:81/home/user/everyDaySignIn",c="",e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;a.code,console.log(` 38 | 账号[${h}] ${this.m} :${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function tx(){try{let b="http://fhrs.04hltfk.cn:81/home/user/signCash",c=JSON.stringify({money:this.num}),e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;1==a.code?console.log(` 39 | 账号[${h}] 开始提现 ${this.o}:${a.msg}`):0!==a.code&&console.log(` 40 | 账号[${h}] 开始提现 ${this.o}:${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function xtx(){try{let b="http://fhrs.04hltfk.cn:81/home/user/Cash",c=JSON.stringify({money:this.money}),e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;1==a.code?console.log(` 41 | 账号[${h}] 开始提现 ${this.money}元 ${a.msg}`):0!==a.code&&console.log(` 42 | 账号[${h}] 开始提现 ${this.money}元 ${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}async function deposit(){try{let b="http://fhrs.04hltfk.cn:81/home/user/deposit",c=JSON.stringify({gold:goldnum}),e;await httpRequest("post",mini(b,`${zyid}`,`${zyto}`,c));let a=httpResult;1==a.code?console.log(` 43 | 账号[${h}] 开始存银行 ${goldnum} 金:${a.msg}`):0!==a.code&&console.log(` 44 | 账号[${h}] 开始存银行 ${goldnum} 金:${a.msg}`)}catch(d){console.log(d)}finally{return new Promise(a=>{a(1)})}}function populateUrlObject(a,b=""){let d=a.replace("//","/").split("/")[1],c={url:a,headers:{Referer:"http://fhrs.04hltfk.cn:81/h5",Host:d,Origin:"http://fhrs.04hltfk.cn:81","Content-Type":"application/json;charset=utf-8","User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1"},timeout:5e3};return b&&(c.body=b),c}function mini(a,d,e,b=""){let f=a.replace("//","/").split("/")[1],c={url:a,headers:{Referer:"http://fhrs.04hltfk.cn:81/h5/",Host:f,"fh-token":e,"fh-id":d,Origin:"http://zyzr.xkrvlj.cn:91","Content-Type":"application/json;charset=utf-8","accept-encoding":"gzip, deflate","User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1"},timeout:5e3};return b&&(c.body=b),c}async function httpRequest(a,b){return httpResult=null,httpReq=null,httpResp=null,new Promise(c=>{$.send(a,b,async(d,e,b)=>{try{if(httpReq=e,httpResp=b,d)console.log(`${a}请求失败`),console.log(d);else if(b.body){if("object"==typeof b.body)httpResult=b.body;else try{httpResult=JSON.parse(b.body)}catch(f){httpResult=b.body}}}catch(g){}finally{c()}})})}function safeGet(a){try{if("object"==typeof JSON.parse(a))return!0;console.log(a)}catch(b){return console.log(b),console.log(`服务器访问数据为空,请检查自身设备网络情况`),!1}}(async()=>{if("undefined"!=typeof $request);else{if(!await checkEnv())return;let a=0;for(let c of ckArr){a+=1,h=a,console.log(` 45 | =============账号${a}============= 46 | `);let b=c.split("#"),d=b[0],e=b[1];await login(d,e)}}})().catch(a=>console.log(a)).finally(()=>$.done()) 47 | //定义一个加法函数 48 | function add(){var a=arguments,b=(a.length,0),d=0;for(var c in a){var e=""+a[c];if(-1!=e.indexOf(".")){var f=e.split(".")[1].length;b=b -1&&process.exit(0),new class{constructor(a,b){this.name=a,this.notifyStr="",this.startTime=(new Date).getTime(),Object.assign(this,b),console.log(`${this.name} 开始运行: 49 | `)}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}getdata(b){let a=this.getval(b);if(/^@/.test(b)){let[,c,f]=/^@(.*?)\.(.*?)$/.exec(b),d=c?this.getval(c):"";if(d)try{let e=JSON.parse(d);a=e?this.lodash_get(e,f,""):a}catch(g){a=""}}return a}setdata(c,d){let a=!1;if(/^@/.test(d)){let[,b,e]=/^@(.*?)\.(.*?)$/.exec(d),f=this.getval(b),i=b?"null"===f?null:f||"{}":"{}";try{let g=JSON.parse(i);this.lodash_set(g,e,c),a=this.setval(JSON.stringify(g),b)}catch(j){let h={};this.lodash_set(h,e,c),a=this.setval(JSON.stringify(h),b)}}else a=this.setval(c,d);return a}getval(a){return this.isSurge()||this.isLoon()?$persistentStore.read(a):this.isQuanX()?$prefs.valueForKey(a):this.isNode()?(this.data=this.loaddata(),this.data[a]):this.data&&this.data[a]||null}setval(b,a){return this.isSurge()||this.isLoon()?$persistentStore.write(b,a):this.isQuanX()?$prefs.setValueForKey(b,a):this.isNode()?(this.data=this.loaddata(),this.data[a]=b,this.writedata(),!0):this.data&&this.data[a]||null}send(b,a,f=()=>{}){if("get"!=b&&"post"!=b&&"put"!=b&&"delete"!=b){console.log(`无效的http方法:${b}`);return}if("get"==b&&a.headers?(delete a.headers["Content-Type"],delete a.headers["Content-Length"]):a.body&&a.headers&&(a.headers["Content-Type"]||(a.headers["Content-Type"]="application/x-www-form-urlencoded")),this.isSurge()||this.isLoon()){this.isSurge()&&this.isNeedRewrite&&(a.headers=a.headers||{},Object.assign(a.headers,{"X-Surge-Skip-Scripting":!1}));let c={method:b,url:a.url,headers:a.headers,timeout:a.timeout,data:a.body};"get"==b&&delete c.data,$axios(c).then(a=>{let{status:b,request:c,headers:d,data:e}=a;f(null,c,{statusCode:b,headers:d,body:e})}).catch(a=>console.log(a))}else if(this.isQuanX())a.method=b.toUpperCase(),this.isNeedRewrite&&(a.opts=a.opts||{},Object.assign(a.opts,{hints:!1})),$task.fetch(a).then(a=>{let{statusCode:b,request:c,headers:d,body:e}=a;f(null,c,{statusCode:b,headers:d,body:e})},a=>f(a));else if(this.isNode()){this.got=this.got?this.got:require("got");let{url:d,...e}=a;this.instance=this.got.extend({followRedirect:!1}),this.instance[b](d,e).then(a=>{let{statusCode:b,request:c,headers:d,body:e}=a;f(null,c,{statusCode:b,headers:d,body:e})},b=>{let{message:c,response:a}=b;f(c,a,a&&a.body)})}}time(a){let b={"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()};for(let c in/(y+)/.test(a)&&(a=a.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length))),b)new RegExp("("+c+")").test(a)&&(a=a.replace(RegExp.$1,1==RegExp.$1.length?b[c]:("00"+b[c]).substr((""+b[c]).length)));return a}async showmsg(){if(!this.notifyStr)return;let a=this.name+" \u8FD0\u884C\u901A\u77E5\n\n"+this.notifyStr;if($.isNode()){var b=require("./sendNotify");console.log("\n============== \u63A8\u9001 =============="),await b.sendNotify(this.name,a)}else this.msg(a)}logAndNotify(a){console.log(a),this.notifyStr+=a,this.notifyStr+="\n"}msg(d=t,a="",b="",e){let f=a=>{if(!a)return a;if("string"==typeof a)return this.isLoon()?a:this.isQuanX()?{"open-url":a}:this.isSurge()?{url:a}:void 0;if("object"==typeof a){if(this.isLoon()){let b=a.openUrl||a.url||a["open-url"],c=a.mediaUrl||a["media-url"];return{openUrl:b,mediaUrl:c}}if(this.isQuanX()){let d=a["open-url"]||a.url||a.openUrl,e=a["media-url"]||a.mediaUrl;return{"open-url":d,"media-url":e}}if(this.isSurge())return{url:a.url||a.openUrl||a["open-url"]}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(d,a,b,f(e)):this.isQuanX()&&$notify(d,a,b,f(e)));let c=["","============== \u7CFB\u7EDF\u901A\u77E5 =============="];c.push(d),a&&c.push(a),b&&c.push(b),console.log(c.join("\n"))}getMin(a,b){return aa.length?b-a.length:0,c="";for(let d=0;dsetTimeout(b,a))}done(a={}){let b=(new Date).getTime(),c=(b-this.startTime)/1e3;console.log(` 50 | ${this.name} 运行结束,共运行了 ${c} 秒!`),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(a)}}(a,b)} -------------------------------------------------------------------------------- /invalid/小程序小游戏合集.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | 4 | 5 | 支持圈× 青龙 v2p 6 | 7 | 8 | 9 | [rewrite_local] 10 | cloudData/ver url script-request-header yb2.js 11 | [MITM] 12 | hostname = minigame.nagagame.net 13 | 14 | 15 | 打开小程序 自动获取ck 16 | 17 | 小游戏全家桶 并发 18 | 19 | 支持圈× 青龙 v2p 20 | 21 | [rewrite_local] 22 | cloudData/ver url script-request-header https://kireinasakura.coding.net/p/could/d/there/git/raw/master/xyx.js 23 | [MITM] 24 | hostname = minigame.nagagame.net 25 | 26 | 扫码打开5个小程序 会自动获取ck 27 | 28 | 手动提现 29 | 30 | 青龙变量 31 | export xyxcookie='gameid&openid' 32 | 33 | 没有圈×手动抓包的 34 | https://minigame.nagagame.net/cloudData/ver?链接里面?后全部 35 | 36 | @分割 37 | 38 | 状态为3或以上基本是成功了 偶尔刷不上就打开小程序重新加载一次随便点几下,关闭微信后台后重新运行一次脚本 39 | 40 | */ 41 | 42 | /*Obfuscated by JShaman.com*/const $=new Env('小游戏');let envSplitor=['@'];let httpResult,httpReq,httpResp;let userCookie=($['isNode']()?process['env']['xyxcookie']:$['getdata']('xyxcookie'))||'';let userList=[];let userIdx=0x18873^0x18873;let userCount=0x22b14^0x22b14;alipay=0x9fd97^0x9fd97;let defaultUA='Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2014_8\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148\x20MicroMessenger/8.0.20(0x18001442)\x20NetType/WIFI\x20Language/zh_CN';class UserInfo{constructor(_0x299d7c){this['index']=++userIdx;this['name']=this['index'];this['valid']=![];this['withdrawFailCount']=0x899ef^0x899ef;try{this['param']=$['str2json'](_0x299d7c);this['ckValid']=!![];}catch(_0x5c9a4a){this['ckValid']=![];$['logAndNotify']('账号['+this['index']+']CK无效,请检查格式');}}async['change'](){try{let _0x15a0be='https://minigame.nagagame.net/cloudData/save?';let _0x4d95bb='{\x22gameId\x22:\x22'+this['param']['gameId']+'\x22,\x22openId\x22:\x22'+this['param']['openId']+'\x22,\x22dataKey\x22:\x22data\x22,\x22version\x22:\x22'+this['version']+'\x22,\x22data\x22:\x22UEsDBBQAAAAIAHCTzVRskaSc5QAAAJ4BAAAIAAAAZGF0YS50eHR1kLtuwzAMRf+Fs4HIMtLBW9ME6dwYXQs9aIdoIhd6BCkC/3tpyUjbIYtwKR7qXuoGVkX1jh5aWcEHOYrQigqO+mUkB20j1lxFFT6hvYGYD+MYqSsYvLK4wPui66mC+s7Ih0zzy6wfQEylgL77/sLs1pMP8VVnzCjX0ZWUy524SFEmDhi3o8M/rZ2z/1/nYL1HfDvrsshoNycMYQ6lU99jwfHa0Rn5VkzZ8kBDMQwsFian6pJ3UelT2cFj4AQqcgVSSLl6WtUN8FRUAz6bI+EFZ6eQjGFEcMvmvCzZ6EIG94nyh0w/UEsBAgAAFAAAAAgAcJPNVGyRpJzlAAAAngEAAAgAAAAAAAAAAQAAAAAAAAAAAGRhdGEudHh0UEsFBgAAAAABAAEANgAAAAsBAAAAAA==\x22}';let _0x33fb40=populateUrlObject(_0x15a0be,_0x4d95bb);await httpRequest('post',_0x33fb40);let _0x354fb6=httpResult;this['code']=_0x354fb6['code'];if(this['code']==(0x819df^0x819df)){console['log']('\x0a账号['+this['name']+']\x20余额3050\x20'+this['gamename']+'\x20成功');}else console['log']('\x0a账号['+this['name']+']\x20余额3050\x20'+this['gamename']+'\x20失败\x20刷新任务id吧');}catch(_0x31f571){console['log'](_0x31f571);}finally{return Promise['resolve'](0x4208d^0x4208c);}}async['datakey'](){try{let _0x593708='https://minigame.nagagame.net/cloudData/ver?gameId='+this['param']['gameId']+'&openId='+this['param']['openId']+'&dataKey=dataKey';let _0x13e8b7='';let _0x216698=populateUrlObject(_0x593708,_0x13e8b7);await httpRequest('get',_0x216698);let _0x237386=httpResult;this['version']=_0x237386['version'];if(this['param']['gameId']==(0xb3a59^0xb39b6))this['gamename']='奇迹猜成语';if(this['param']['gameId']==(0x58a09^0x589f9))this['gamename']='五福猜词语';if(this['param']['gameId']==(0x78aa4^0x78953))this['gamename']='五福汉字王';if(this['param']['gameId']==(0xc7a16^0xc7e0e))this['gamename']='奇迹汉字王';if(this['param']['gameId']==0x3f2)this['gamename']='表情猜成语';console['log']('账号['+this['name']+']运行的是\x20'+this['gamename']+'\x20状态ID\x20'+this['version']+'\x0a');await this['change']();}catch(_0x441ecb){console['log'](_0x441ecb);}finally{return Promise['resolve'](0x1);}}}!(async()=>{if(typeof $request!=='undefined'){await GetRewrite();}else{if(!await checkEnv())return;let _0x4ec675=[];let _0x1571d4=userList['filter'](_0x4e7287=>_0x4e7287['ckValid']);if(_0x1571d4['length']>(0x8b019^0x8b019)){console['log']('\x0a--------------\x20定义\x20--------------\x0a');_0x4ec675=[];for(let _0x4072bd of _0x1571d4){_0x4ec675['push'](_0x4072bd['datakey']());}await Promise['all'](_0x4ec675);console['log']('\x0a\x0aps:\x20状态为3或以上基本是成功了\x20偶尔刷不上就打开小程序重新加载一次随便点几下,关闭微信后台后重新运行一次脚本\x0a');}await $['showmsg']();}})()['catch'](_0x298afb=>console['log'](_0x298afb))['finally'](()=>$['done']());async function GetRewrite(){if($request['url']['indexOf']('cloudData/ver?')>-0x1){if(!$request['headers'])return;let _0xda5aab=$request['url'];let _0x51aee1=_0xda5aab['split']('?');let _0xd09388=_0x51aee1[0xada1c^0xada1d];let _0x2aa7b2=''+_0xd09388;console['log'](_0x2aa7b2);if(userCookie){if(userCookie['indexOf'](_0x2aa7b2)==-0x1){userCookie=userCookie+'@'+_0x2aa7b2;$['setdata'](userCookie,'xyxcookie');ckList=userCookie['split']('@');$['msg']('获取第'+ckList['length']+'个ck成功:\x20'+_0x2aa7b2);}}else{$['setdata'](_0x2aa7b2,'xyxcookie');$['msg']('获取成功:\x20'+_0x2aa7b2);}}}async function checkEnv(){if(userCookie){let _0x489d56=envSplitor[0x0];for(let _0x241097 of envSplitor){if(userCookie['indexOf'](_0x241097)>-(0x35d5b^0x35d5a)){_0x489d56=_0x241097;break;}}for(let _0x5308dd of userCookie['split'](_0x489d56)){if(_0x5308dd)userList['push'](new UserInfo(_0x5308dd));}userCount=userList['length'];}else{console['log']('未找到CK');return;}console['log']('共找到'+userCount+'个账号');return!![];}function populateUrlObject(_0xecf41f,_0x1302a6=''){let _0x15a57b=_0xecf41f['replace']('//','/')['split']('/')[0xeeaab^0xeeaaa];let _0x1bd30f={'url':_0xecf41f,'headers':{'Host':_0x15a57b,'Connection':'keep-alive','Connection':'keep-alive','Referer':'https://servicewechat.com/wxa628d8aa01a45776/9/page-frame.html','Accept-Encoding':'gzip,compress,br,deflate','User-Agent':defaultUA},'timeout':0x1388};if(_0x1302a6){_0x1bd30f['body']=_0x1302a6;_0x1bd30f['headers']['Content-Type']='application/json';}return _0x1bd30f;}async function httpRequest(_0x5d7aa6,_0x18772c){httpResult=null,httpReq=null,httpResp=null;return new Promise(_0x1631e7=>{$['send'](_0x5d7aa6,_0x18772c,async(_0x565fdb,_0x50049d,_0x308311)=>{try{httpReq=_0x50049d;httpResp=_0x308311;if(_0x565fdb){console['log'](_0x5d7aa6+'请求失败');console['log'](JSON['stringify'](_0x565fdb));}else{if(_0x308311['body']){if(typeof _0x308311['body']=='object'){httpResult=_0x308311['body'];}else{try{httpResult=JSON['parse'](_0x308311['body']);}catch(_0x553bd1){httpResult=_0x308311['body'];}}}}}catch(_0x58f98c){console['log'](_0x58f98c);}finally{_0x1631e7();}});});}function Env(_0x31c0a2,_0x5058e7){'undefined'!=typeof process&&JSON['stringify'](process['env'])['indexOf']('GITHUB')>-0x1&&process['exit'](0x0);return new class{constructor(_0x240fac,_0x223cf3){this['name']=_0x240fac;this['notifyStr']='';this['startTime']=new Date()['getTime']();Object['assign'](this,_0x223cf3);console['log'](this['name']+'\x20开始运行:\x0a');}['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;}['getdata'](_0x5015e8){let _0x2794f3=this['getval'](_0x5015e8);if(/^@/['test'](_0x5015e8)){const [,_0x19f653,_0x27d069]=/^@(.*?)\.(.*?)$/['exec'](_0x5015e8),_0x5e1035=_0x19f653?this['getval'](_0x19f653):'';if(_0x5e1035)try{const _0x56ebe2=JSON['parse'](_0x5e1035);_0x2794f3=_0x56ebe2?this['lodash_get'](_0x56ebe2,_0x27d069,''):_0x2794f3;}catch(_0x499297){_0x2794f3='';}}return _0x2794f3;}['setdata'](_0x50319f,_0x35beff){let _0x10058d=!0x1;if(/^@/['test'](_0x35beff)){const [,_0x193e68,_0x289a4f]=/^@(.*?)\.(.*?)$/['exec'](_0x35beff),_0x28c83e=this['getval'](_0x193e68),_0x50764c=_0x193e68?'null'===_0x28c83e?null:_0x28c83e||'{}':'{}';try{const _0x4a9c3f=JSON['parse'](_0x50764c);this['lodash_set'](_0x4a9c3f,_0x289a4f,_0x50319f),_0x10058d=this['setval'](JSON['stringify'](_0x4a9c3f),_0x193e68);}catch(_0x3ec065){const _0x5bfe1b={};this['lodash_set'](_0x5bfe1b,_0x289a4f,_0x50319f),_0x10058d=this['setval'](JSON['stringify'](_0x5bfe1b),_0x193e68);}}else{_0x10058d=this['setval'](_0x50319f,_0x35beff);}return _0x10058d;}['getval'](_0x6aa353){return this['isSurge']()||this['isLoon']()?$persistentStore['read'](_0x6aa353):this['isQuanX']()?$prefs['valueForKey'](_0x6aa353):this['isNode']()?(this['data']=this['loaddata'](),this['data'][_0x6aa353]):this['data']&&this['data'][_0x6aa353]||null;}['setval'](_0x512b62,_0x3b09bc){return this['isSurge']()||this['isLoon']()?$persistentStore['write'](_0x512b62,_0x3b09bc):this['isQuanX']()?$prefs['setValueForKey'](_0x512b62,_0x3b09bc):this['isNode']()?(this['data']=this['loaddata'](),this['data'][_0x3b09bc]=_0x512b62,this['writedata'](),!0x0):this['data']&&this['data'][_0x3b09bc]||null;}['send'](_0x5bd3e5,_0x5270bc,_0x566e53=()=>{}){if(_0x5bd3e5!='get'&&_0x5bd3e5!='post'&&_0x5bd3e5!='put'&&_0x5bd3e5!='delete'){console['log']('无效的http方法:'+_0x5bd3e5);return;}if(_0x5bd3e5=='get'&&_0x5270bc['headers']){delete _0x5270bc['headers']['Content-Type'];delete _0x5270bc['headers']['Content-Length'];}else if(_0x5270bc['body']&&_0x5270bc['headers']){if(!_0x5270bc['headers']['Content-Type'])_0x5270bc['headers']['Content-Type']='application/x-www-form-urlencoded';}if(this['isSurge']()||this['isLoon']()){if(this['isSurge']()&&this['isNeedRewrite']){_0x5270bc['headers']=_0x5270bc['headers']||{};Object['assign'](_0x5270bc['headers'],{'X-Surge-Skip-Scripting':!0x1});}let _0x18d778={'method':_0x5bd3e5,'url':_0x5270bc['url'],'headers':_0x5270bc['headers'],'timeout':_0x5270bc['timeout'],'data':_0x5270bc['body']};if(_0x5bd3e5=='get')delete _0x18d778['data'];$axios(_0x18d778)['then'](_0x43b81f=>{const {status:_0x1173b7,request:_0x415905,headers:_0x1e6604,data:_0x24478d}=_0x43b81f;_0x566e53(null,_0x415905,{'statusCode':_0x1173b7,'headers':_0x1e6604,'body':_0x24478d});})['catch'](_0x3dde72=>console['log'](_0x3dde72));}else if(this['isQuanX']()){_0x5270bc['method']=_0x5bd3e5['toUpperCase'](),this['isNeedRewrite']&&(_0x5270bc['opts']=_0x5270bc['opts']||{},Object['assign'](_0x5270bc['opts'],{'hints':!(0xe45c3^0xe45c2)})),$task['fetch'](_0x5270bc)['then'](_0x567b29=>{const {statusCode:_0x2aefc3,request:_0x2aa8f6,headers:_0x53128b,body:_0x98f304}=_0x567b29;_0x566e53(null,_0x2aa8f6,{'statusCode':_0x2aefc3,'headers':_0x53128b,'body':_0x98f304});},_0x4b604b=>_0x566e53(_0x4b604b));}else if(this['isNode']()){this['got']=this['got']?this['got']:require('got');const {url:_0x4e42f6,..._0x45bddf}=_0x5270bc;this['instance']=this['got']['extend']({'followRedirect':![]});this['instance'][_0x5bd3e5](_0x4e42f6,_0x45bddf)['then'](_0x69256=>{const {statusCode:_0x737360,request:_0x11e9a2,headers:_0x298503,body:_0x14ca34}=_0x69256;_0x566e53(null,_0x11e9a2,{'statusCode':_0x737360,'headers':_0x298503,'body':_0x14ca34});},_0x5f2623=>{const {message:_0x38fa20,response:_0x33f3c1}=_0x5f2623;_0x566e53(_0x38fa20,_0x33f3c1,_0x33f3c1&&_0x33f3c1['body']);});}}['time'](_0x12f3e6){let _0x3ecd2f={'M+':new Date()['getMonth']()+0x1,'d+':new Date()['getDate'](),'h+':new Date()['getHours'](),'m+':new Date()['getMinutes'](),'s+':new Date()['getSeconds'](),'q+':Math['floor']((new Date()['getMonth']()+(0x53c99^0x53c9a))/0x3),'S':new Date()['getMilliseconds']()};/(y+)/['test'](_0x12f3e6)&&(_0x12f3e6=_0x12f3e6['replace'](RegExp['$1'],(new Date()['getFullYear']()+'')['substr']((0x609dc^0x609d8)-RegExp['$1']['length'])));for(let _0x2a35c0 in _0x3ecd2f)new RegExp('('+_0x2a35c0+')')['test'](_0x12f3e6)&&(_0x12f3e6=_0x12f3e6['replace'](RegExp['$1'],(0xd282d^0xd282c)==RegExp['$1']['length']?_0x3ecd2f[_0x2a35c0]:('00'+_0x3ecd2f[_0x2a35c0])['substr']((''+_0x3ecd2f[_0x2a35c0])['length'])));return _0x12f3e6;}async['showmsg'](){if(!this['notifyStr'])return;let _0x28d2dd=this['name']+'\x20运行通知\x0a\x0a'+this['notifyStr'];if($['isNode']()){var _0xa9de2c=require('./sendNotify');console['log']('\x0a==============\x20推送\x20==============');await _0xa9de2c['sendNotify'](this['name'],_0x28d2dd);}else{this['msg'](_0x28d2dd);}}['logAndNotify'](_0x48cf54){console['log'](_0x48cf54);this['notifyStr']+=_0x48cf54;this['notifyStr']+='\x0a';}['msg'](_0x47eca2=t,_0x186ac9='',_0x338b4e='',_0x4f1eb6){const _0x4311f7=_0x3c2d9b=>{if(!_0x3c2d9b)return _0x3c2d9b;if('string'==typeof _0x3c2d9b)return this['isLoon']()?_0x3c2d9b:this['isQuanX']()?{'open-url':_0x3c2d9b}:this['isSurge']()?{'url':_0x3c2d9b}:void 0x0;if('object'==typeof _0x3c2d9b){if(this['isLoon']()){let _0x102a08=_0x3c2d9b['openUrl']||_0x3c2d9b['url']||_0x3c2d9b['open-url'],_0x29dc2b=_0x3c2d9b['mediaUrl']||_0x3c2d9b['media-url'];return{'openUrl':_0x102a08,'mediaUrl':_0x29dc2b};}if(this['isQuanX']()){let _0x455c0c=_0x3c2d9b['open-url']||_0x3c2d9b['url']||_0x3c2d9b['openUrl'],_0xf95bb7=_0x3c2d9b['media-url']||_0x3c2d9b['mediaUrl'];return{'open-url':_0x455c0c,'media-url':_0xf95bb7};}if(this['isSurge']()){let _0x1c9b4b=_0x3c2d9b['url']||_0x3c2d9b['openUrl']||_0x3c2d9b['open-url'];return{'url':_0x1c9b4b};}}};this['isMute']||(this['isSurge']()||this['isLoon']()?$notification['post'](_0x47eca2,_0x186ac9,_0x338b4e,_0x4311f7(_0x4f1eb6)):this['isQuanX']()&&$notify(_0x47eca2,_0x186ac9,_0x338b4e,_0x4311f7(_0x4f1eb6)));let _0x4b3838=['','==============\x20系统通知\x20=============='];_0x4b3838['push'](_0x47eca2),_0x186ac9&&_0x4b3838['push'](_0x186ac9),_0x338b4e&&_0x4b3838['push'](_0x338b4e),console['log'](_0x4b3838['join']('\x0a'));}['getMin'](_0x5750bc,_0xe5b561){return _0x5750bc<_0xe5b561?_0x5750bc:_0xe5b561;}['getMax'](_0xb8d686,_0x524a0a){return _0xb8d686<_0x524a0a?_0x524a0a:_0xb8d686;}['padStr'](_0x345ee5,_0x4283d2,_0x2ce84f='0'){let _0x193ae0=String(_0x345ee5);let _0x5818c0=_0x4283d2>_0x193ae0['length']?_0x4283d2-_0x193ae0['length']:0x0;let _0x576a00='';for(let _0x4b8465=0x64417^0x64417;_0x4b8465<_0x5818c0;_0x4b8465++){_0x576a00+=_0x2ce84f;}_0x576a00+=_0x193ae0;return _0x576a00;}['json2str'](_0x245ba1,_0x4ae0d1,_0xbde379=![]){let _0x46a272=[];for(let _0x2bc28d of Object['keys'](_0x245ba1)['sort']()){let _0x27e485=_0x245ba1[_0x2bc28d];if(_0x27e485&&_0xbde379)_0x27e485=encodeURIComponent(_0x27e485);_0x46a272['push'](_0x2bc28d+'='+_0x27e485);}return _0x46a272['join'](_0x4ae0d1);}['str2json'](_0x2bccbb,_0x61c359=![]){let _0x354db5={};for(let _0x27d17f of _0x2bccbb['split']('&')){if(!_0x27d17f)continue;let _0x327e18=_0x27d17f['indexOf']('=');if(_0x327e18==-(0xe394b^0xe394a))continue;let _0x7dee84=_0x27d17f['substr'](0x0,_0x327e18);let _0x4e471f=_0x27d17f['substr'](_0x327e18+0x1);if(_0x61c359)_0x4e471f=decodeURIComponent(_0x4e471f);_0x354db5[_0x7dee84]=_0x4e471f;}return _0x354db5;}['randomString'](_0x6ea748,_0x476699='abcdef0123456789'){let _0x169056='';for(let _0x332a28=0x0;_0x332a28<_0x6ea748;_0x332a28++){_0x169056+=_0x476699['charAt'](Math['floor'](Math['random']()*_0x476699['length']));}return _0x169056;}['randomList'](_0x4abe1b){let _0x5c8737=Math['floor'](Math['random']()*_0x4abe1b['length']);return _0x4abe1b[_0x5c8737];}['wait'](_0x465a41){return new Promise(_0x4cbadd=>setTimeout(_0x4cbadd,_0x465a41));}['done'](_0xc549c0={}){const _0x23dec8=new Date()['getTime'](),_0x48e411=(_0x23dec8-this['startTime'])/(0xded1e^0xdeef6);console['log']('\x0a'+this['name']+'\x20运行结束,共运行了\x20'+_0x48e411+'\x20秒!');if(this['isSurge']()||this['isQuanX']()||this['isLoon']())$done(_0xc549c0);}}(_0x31c0a2,_0x5058e7);} -------------------------------------------------------------------------------- /invalid/撸点现金-有喜有鱼.js: -------------------------------------------------------------------------------- 1 | /* 2 | auther(JACK) 3 | time( 2022年8月14日 14点22分) 一天0.35左右吧 1元秒到 4 | 5 | 6 | 在浏览器打开下面网址 注册后APP登录 7 | http://h5.timesks.com/#/scanRegister?activityId=1002®istSource=CBWn3spp 8 | 9 | 10 | lxjcookie 填写 11 | 12 | 抓包关键字 http://gw.timesks.com/auth/ma/loginSMS 登录 获取到的token super_token 值 例如 4be640bb77f64bc4bfe4601234556 多号@隔开 13 | 14 | lxjcookie2 填写 15 | 16 | 抓包关键字 http://gw.timesks.com/auth/ma/loginSMS 登录 获取到的uniqueNo 邀请码值 例如 O5mCCj23 多号@隔开 17 | 18 | 定时一天一次 直接退出登录则token值失效 不填 lxjcookie值 不会查余额 同理 不填lxjcookie2 不会运行广告回调 19 | 20 | 两个变量 填哪个运行哪个 不填则不运行对应任务 21 | 青龙 22 | export lxjcookie="" 23 | export lxjcookie2="" 24 | 25 | v2p,圈× 26 | lxjcookie 27 | lxjcookie2 28 | */ 29 | const $ = new Env("撸点现金-有喜有鱼"); 30 | let envSplitor = ['@'] 31 | let httpResult, httpReq, httpResp 32 | let userCookie = ($.isNode() ? process.env.lxjcookie : $.getdata('lxjcookie')) || ''; 33 | let userCookie2 = ($.isNode() ? process.env.lxjcookie2 : $.getdata('lxjcookie2')) || ''; 34 | console.log(`定时一天一次 35 | 直接退出登录则token值失效 36 | 不填 userCookie值不会查余额 37 | 同理 不填userCookie2 不会运行广告回调 38 | `);let userList=[],userList2=[],userIdx=0,userIdx2=0,userCount=0,userCount2=0;class UserInfo{constructor(a){this.index=++userIdx,this.valid=!1;try{this.ck=a,this.ckValid=!0}catch(b){}}async vyt(){try{let b="http://gw.timesks.com/auth/ma/vyt",a=`{"token":"super_token:${this.ck}"}`,c=bytenum(a);await httpRequest("post",populateUrlObject(b,c,a));let d=httpResult;this.phone=d.data.mobile,this.newphone=this.phone.substr(0,3)+"****"+this.phone.substr(7),await this.cashck()}catch(e){console.log(e)}finally{return Promise.resolve(1)}}async cashck(){try{let c="http://gw.timesks.com/auth/ct/myEarnings",b=`{"token":"super_token:${this.ck}"}`,d=bytenum(b);await httpRequest("post",populateUrlObject(c,d,b));let a=httpResult;console.log(`账户【${this.index}】${this.newphone} 解锁金额 `+a.data.expIncome+` 余额 `+a.data.actualAmount+` 分红余额 `+a.data.expMoney)}catch(e){console.log(e)}finally{return Promise.resolve(1)}}async cashckx(){try{let c="http://gw.timesks.com/auth/ct/myEarnings",b=`{"token":"super_token:${this.ck}"}`,d=bytenum(b);await httpRequest("post",populateUrlObject(c,d,b));let a=httpResult;console.log(`账户【${this.index}】${this.newphone} 解锁金额 `+a.data.expIncome+`余额 `+a.data.actualAmount+`分红余额 `+a.data.expMoney)}catch(e){console.log(e)}finally{return Promise.resolve(1)}}}class UserInfo2{constructor(a){this.index=++userIdx2,this.name=this.index,this.valid=!1;try{this.ck=a,this.ckValid=!0}catch(b){}}async listtask(){try{for(let a=0;a<7;a++)this.h=a+1,await this.trade()}catch(b){console.log(b)}finally{return Promise.resolve(1)}}async trade(){try{let b="https://incentive.8ziben.com/api/sdk/incentive/trade",a=`mdid=ab12262e-89d0-43a3-8db1-e465b2c5ea1e&data={"zj_adID":"J7181620755","ad_type":"RewardVideo","zjpm":"TT","zjpm_id":"949111311","userID":"${this.ck}","reward_amount":1,"reward_name":"奖励名称","extra":""}&appName=有喜有鱼&appVer=1.1.9&sign=a8bdb64aaa77f0c1961d0c3a22a175ac&token=token&zj_adID=J7181620755&vaId=d2323f345&plugVer=2040500&aaid=23d354t&appPkgName=com.example.youxyouy&appId=Z8763119332&xToken=&sdkVer=2.4.5.0&applicationId=com.example.youxyouy&oaid=94CF37C06B4780D89DE529A52C9E6F4818CE0387CB0722854C9E55E87B6059B2`,c=bytenum(a);await httpRequest("post",popu(b,c,a));let d=httpResult;this.iddd=d.data.trans_id,await this.incentive()}catch(e){console.log(e)}finally{return Promise.resolve(1)}}async incentive(){try{await httpRequest("get",popu(`https://incentive.8ziben.com/api/sdk/incentive?trade_id=${this.iddd}&reward_amount=1&user_id=${this.ck}&appId=Z8763119332&reward_name=奖励名称&sign=${MD5Encrypt(`${this.iddd}42552ba7cc681fed73ac94592a7b62b6`)}&extrainfo=&zj_adID=J7181620755`,""));let a=httpResult;this.msg=a.data.isValid,this.h % 7 == 0 && console.log(`账户【${this.index}】 视频回调上传${this.h}次 `+this.msg)}catch(b){console.log(b)}finally{return Promise.resolve(1)}}}async function GetRewrite(){}async function checkEnv(){if(userCookie){let a=envSplitor[0];for(let b of envSplitor)if(userCookie.indexOf(b)> -1){a=b;break}for(let c of userCookie.split(a))c&&userList.push(new UserInfo(c));userCount=userList.length}if(userCookie2){let d=envSplitor[0];for(let e of envSplitor)if(userCookie2.indexOf(e)> -1){d=e;break}for(let f of userCookie2.split(d))f&&userList2.push(new UserInfo2(f));userCount2=userList2.length}return console.log(`找到${userCount}个账号数据 ${userCount2}个邀请码数据 `),!0}function bytenum(c){for(var a=0,b=0;b{$.send(a,b,async(b,d,a)=>{try{if(httpReq=d,httpResp=a,b);else if(a.body){if("object"==typeof a.body)httpResult=a.body;else try{httpResult=JSON.parse(a.body)}catch(f){httpResult=a.body}}}catch(e){console.log(e)}finally{c()}})})}function MD5Encrypt(m){function r(a,b){return a<>>32-b}function k(d,e){var f,g,b,c,a;return b=2147483648&d,c=2147483648&e,f=1073741824&d,g=1073741824&e,a=(1073741823&d)+(1073741823&e),f&g?2147483648^a^b^c:f|g?1073741824&a?3221225472^a^b^c:1073741824^a^b^c:a^b^c}function g(a,b,d,e,f,g,h){var c;return a=k(a,k(k((c=b)&d| ~c&e,f),h)),k(r(a,g),b)}function h(a,b,f,g,h,i,j){var c,d,e;return a=k(a,k(k((c=b,d=f,c&(e=g)|d& ~e),h),j)),k(r(a,i),b)}function i(a,b,c,d,e,f,g){return a=k(a,k(k(b^c^d,e),g)),k(r(a,f),b)}function j(a,b,c,d,e,f,g){return a=k(a,k(k(c^(b| ~d),e),g)),k(r(a,f),b)}function l(d){var a,b="",c="";for(a=0;3>=a;a++)b+=(c="0"+(d>>>8*a&255).toString(16)).substr(c.length-2,2);return b}var e,n,o,p,q,a,b,c,d,f=[];for(f=function(g){for(var c,d=g.length,h=d+8,f=16*((h-h%64)/64+1),b=new Array(f-1),e=0,a=0;d>a;)c=(a-a%4)/4,e=a%4*8,b[c]=b[c]|g.charCodeAt(a)<>>29,b}(m=function(c){c=c.replace(/\r\n/g,"\n");for(var b="",d=0;da?b+=String.fromCharCode(a):a>127&&2048>a?(b+=String.fromCharCode(a>>6|192),b+=String.fromCharCode(63&a|128)):(b+=String.fromCharCode(a>>12|224),b+=String.fromCharCode(a>>6&63|128),b+=String.fromCharCode(63&a|128))}return b}(m)),a=1732584193,b=4023233417,c=2562383102,d=271733878,e=0;e -1&&process.exit(0),new class{constructor(a,b){this.name=a,this.notifyStr="",this.startTime=(new Date).getTime(),Object.assign(this,b),console.log(`${this.name} 开始运行: 39 | `)}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}getdata(b){let a=this.getval(b);if(/^@/.test(b)){let[,c,f]=/^@(.*?)\.(.*?)$/.exec(b),d=c?this.getval(c):"";if(d)try{let e=JSON.parse(d);a=e?this.lodash_get(e,f,""):a}catch(g){a=""}}return a}setdata(c,d){let a=!1;if(/^@/.test(d)){let[,b,e]=/^@(.*?)\.(.*?)$/.exec(d),f=this.getval(b),i=b?"null"===f?null:f||"{}":"{}";try{let g=JSON.parse(i);this.lodash_set(g,e,c),a=this.setval(JSON.stringify(g),b)}catch(j){let h={};this.lodash_set(h,e,c),a=this.setval(JSON.stringify(h),b)}}else a=this.setval(c,d);return a}getval(a){return this.isSurge()||this.isLoon()?$persistentStore.read(a):this.isQuanX()?$prefs.valueForKey(a):this.isNode()?(this.data=this.loaddata(),this.data[a]):this.data&&this.data[a]||null}setval(b,a){return this.isSurge()||this.isLoon()?$persistentStore.write(b,a):this.isQuanX()?$prefs.setValueForKey(b,a):this.isNode()?(this.data=this.loaddata(),this.data[a]=b,this.writedata(),!0):this.data&&this.data[a]||null}send(b,a,f=()=>{}){if("get"!=b&&"post"!=b&&"put"!=b&&"delete"!=b){console.log(`无效的http方法:${b}`);return}if("get"==b&&a.headers?(delete a.headers["Content-Type"],delete a.headers["Content-Length"]):a.body&&a.headers&&(a.headers["Content-Type"]||(a.headers["Content-Type"]="application/x-www-form-urlencoded")),this.isSurge()||this.isLoon()){this.isSurge()&&this.isNeedRewrite&&(a.headers=a.headers||{},Object.assign(a.headers,{"X-Surge-Skip-Scripting":!1}));let c={method:b,url:a.url,headers:a.headers,timeout:a.timeout,data:a.body};"get"==b&&delete c.data,$axios(c).then(a=>{let{status:b,request:c,headers:d,data:e}=a;f(null,c,{statusCode:b,headers:d,body:e})}).catch(a=>console.log(a))}else if(this.isQuanX())a.method=b.toUpperCase(),this.isNeedRewrite&&(a.opts=a.opts||{},Object.assign(a.opts,{hints:!1})),$task.fetch(a).then(a=>{let{statusCode:b,request:c,headers:d,body:e}=a;f(null,c,{statusCode:b,headers:d,body:e})},a=>f(a));else if(this.isNode()){this.got=this.got?this.got:require("got");let{url:d,...e}=a;this.instance=this.got.extend({followRedirect:!1}),this.instance[b](d,e).then(a=>{let{statusCode:b,request:c,headers:d,body:e}=a;f(null,c,{statusCode:b,headers:d,body:e})},b=>{let{message:c,response:a}=b;f(c,a,a&&a.body)})}}time(a){let b={"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()};for(let c in/(y+)/.test(a)&&(a=a.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length))),b)new RegExp("("+c+")").test(a)&&(a=a.replace(RegExp.$1,1==RegExp.$1.length?b[c]:("00"+b[c]).substr((""+b[c]).length)));return a}async showmsg(){if(!this.notifyStr)return;let a=this.name+" \u8FD0\u884C\u901A\u77E5\n\n"+this.notifyStr;if($.isNode()){var b=require("./sendNotify");console.log("\n============== \u63A8\u9001 =============="),await b.sendNotify(this.name,a)}else this.msg(a)}logAndNotify(a){console.log(a),this.notifyStr+=a,this.notifyStr+="\n"}msg(d=t,a="",b="",e){let f=a=>{if(!a)return a;if("string"==typeof a)return this.isLoon()?a:this.isQuanX()?{"open-url":a}:this.isSurge()?{url:a}:void 0;if("object"==typeof a){if(this.isLoon()){let b=a.openUrl||a.url||a["open-url"],c=a.mediaUrl||a["media-url"];return{openUrl:b,mediaUrl:c}}if(this.isQuanX()){let d=a["open-url"]||a.url||a.openUrl,e=a["media-url"]||a.mediaUrl;return{"open-url":d,"media-url":e}}if(this.isSurge())return{url:a.url||a.openUrl||a["open-url"]}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(d,a,b,f(e)):this.isQuanX()&&$notify(d,a,b,f(e)));let c=["","============== \u7CFB\u7EDF\u901A\u77E5 =============="];c.push(d),a&&c.push(a),b&&c.push(b),console.log(c.join("\n"))}getMin(a,b){return aa.length?b-a.length:0,c="";for(let d=0;dsetTimeout(b,a))}done(a={}){let b=((new Date).getTime()-this.startTime)/1e3;console.log(` 40 | ${this.name} 运行结束,共运行了 ${b} 秒!`),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(a)}}(a,b)}(async()=>{if("undefined"!=typeof $request)await GetRewrite();else{if(!await checkEnv())return;if(userList.length>0){for(let a of(console.log("\n========= \u67E5\u8BE2\u7528\u6237 =========\n"),taskall=[],userList))taskall.push(a.vyt());await Promise.all(taskall)}if(userList2.length>0){for(let b of(console.log("\n========= \u5E7F\u544A\u4EFB\u52A1 =========\n"),taskall=[],userList2))taskall.push(b.listtask());await Promise.all(taskall)}if(userList.length>0){for(let c of(console.log("\n========= \u7ED3\u675F\u67E5\u8BE2 =========\n"),taskall=[],userList))taskall.push(c.vyt());await Promise.all(taskall)}}})().catch(a=>console.log(a)).finally(()=>$.done()) -------------------------------------------------------------------------------- /invalid/白嫖之王.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | ע���ַ 4 | 5 | http://bpzw.bdevbq.cn:81/qr/234775 6 | 7 | 变量 bpzh 值: 手机号1&密码1@手机号2&密码2 8 | 9 | */ 10 | const $ = new Env('����֮��'); 11 | function _0xf66c(_0xfe7329,_0x372ea1){const _0xd6f81f=_0xd6f8();return _0xf66c=function(_0xf66c28,_0x4e5892){_0xf66c28=_0xf66c28-0x108;let _0x29a133=_0xd6f81f[_0xf66c28];return _0x29a133;},_0xf66c(_0xfe7329,_0x372ea1);}const _0xe880a8=_0xf66c;(function(_0x2d5d11,_0xa52a96){const _0x3a11e5=_0xf66c,_0x197c9c=_0x2d5d11();while(!![]){try{const _0x2ff83c=parseInt(_0x3a11e5(0x11e))/0x1+-parseInt(_0x3a11e5('0x133'))/0x2*(parseInt(_0x3a11e5('0x12c'))/0x3)+parseInt(_0x3a11e5('0x123'))/0x4*(parseInt(_0x3a11e5('0x122'))/0x5)+-parseInt(_0x3a11e5('0x115'))/0x6*(parseInt(_0x3a11e5('0x130'))/0x7)+parseInt(_0x3a11e5(0x137))/0x8*(-parseInt(_0x3a11e5(0x10b))/0x9)+-parseInt(_0x3a11e5('0x118'))/0xa*(-parseInt(_0x3a11e5(0x116))/0xb)+parseInt(_0x3a11e5(0x136))/0xc;if(_0x2ff83c===_0xa52a96)break;else _0x197c9c['push'](_0x197c9c['shift']());}catch(_0x1e48e6){_0x197c9c['push'](_0x197c9c['shift']());}}}(_0xd6f8,0x28d21));let status;status=(status=$[_0xe880a8(0x126)](_0xe880a8('0x11b'))||'1')>0x1?''+status:'';let bpsjhArr=[],bpzh=($[_0xe880a8('0x112')]()?process['env'][_0xe880a8(0x11d)]:$[_0xe880a8('0x124')](_0xe880a8(0x11d)))||'',phone='',pwd='',bpcookie='',bptoken='',bpuserid='';!(async()=>{const _0x18cc88=_0xe880a8;if(typeof $request!==_0x18cc88(0x138))await ddtjck();else{bpsjhArr=bpzh[_0x18cc88('0x117')]('@'),console[_0x18cc88(0x10d)](_0x18cc88(0x135)+bpsjhArr[_0x18cc88('0x108')]+_0x18cc88('0x12b'));for(let _0x13f21d=0x0;_0x13f21d$[_0xe880a8('0x10a')](_0x54460e))[_0xe880a8('0x119')](()=>$['done']());function _0xd6f8(){const _0x38b68c=['325239PtEceK','\x0a��ʼ������֮��','data','close','115UkEPYb','41396WKAscu','getdata','msg','getval','��½�ɹ�','&pwd=','post','token','���˺�-------------\x0a','141BhVNQd','gzip,\x20deflate','nl.yiyou.whoringking','��ǰ��','21ASbwPY','parse','index','4566tCYjhM','jewel','-------------\x20��','895980PgLXql','1241864svULWp','undefined','length','catch','logErr','18tNNHqH','application/x-www-form-urlencoded','log','bpzw.bdevbq.cn:81','Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2014_7\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)Version/14.1\x20Mobile/15E148\x20Safari/604.1',';\x20userid=','��ǰ���ֶ���','isNode','ҡһҡ����','token=','614106AkakYI','110cRxwVI','split','254090JiEYhs','finally','&type=','ddtjstatus','http://bpzw.bdevbq.cn:81/h5/page/shake.html','bpzh'];_0xd6f8=function(){return _0x38b68c;};return _0xd6f8();}function bpdl(_0x593bc5=0x0){return new Promise(_0x415490=>{const _0xcbad7e=_0xf66c;let _0x36d458={'url':'http://bpzw.bdevbq.cn:81/home/index/login','headers':{'user-agent':_0xcbad7e(0x10f),'host':_0xcbad7e(0x10e),'content-type':'application/x-www-form-urlencoded','x-requested-with':_0xcbad7e('0x12e'),'Connection':_0xcbad7e(0x121),'referer':_0xcbad7e(0x11c),'origin':'http://bpzw.bdevbq.cn:81','accept-encoding':'gzip,\x20deflate'},'body':'&account='+phone+_0xcbad7e('0x128')+pwd};$[_0xcbad7e('0x129')](_0x36d458,async(_0xdd4b36,_0x38fc4d,_0x5835bc)=>{const _0x106997=_0xcbad7e;try{let _0x129939=JSON[_0x106997('0x131')](_0x5835bc);bptoken=_0x129939['token'],bpuserid=_0x129939[_0x106997('0x120')]['id'],bpcookie=_0x106997('0x114')+_0x129939[_0x106997('0x12a')]+_0x106997('0x110')+_0x129939[_0x106997(0x120)]['id'],console[_0x106997(0x10d)](_0x106997(0x127)),console[_0x106997(0x10d)](_0x106997(0x12f)+_0x129939['data']['user_money']),console[_0x106997(0x10d)](_0x106997(0x111)+_0x129939[_0x106997('0x120')][_0x106997(0x134)]),await ddtjopen(0x1),await ddtjopen(0x2),await ddtjopen(0x3),await ddtjopen(0x4);}catch(_0x42a28c){}finally{_0x415490();}},_0x593bc5);});}function ddtjopen(_0x2eabba,_0x4dea98=0x0){return new Promise(_0x24319e=>{const _0x14dcee=_0xf66c;let _0x379c3a={'url':'http://bpzw.bdevbq.cn:81/home/blind/openBlind?v=0815111344','headers':{'User-Agent':_0x14dcee('0x10f'),'Host':_0x14dcee('0x10e'),'Content-Type':_0x14dcee('0x10c'),'X-Requested-With':'nl.yiyou.whoringking','Connection':_0x14dcee('0x121'),'Bp-Token':bptoken,'Bp-Id':bpuserid,'Referer':_0x14dcee(0x11c),'Origin':'http://bpzw.bdevbq.cn:81','Accept-Encoding':_0x14dcee(0x12d),'Cookie':bpcookie},'body':_0x14dcee(0x11a)+_0x2eabba};$[_0x14dcee(0x129)](_0x379c3a,async(_0x504ac2,_0x1491ca,_0x3ace0b)=>{const _0x214eeb=_0x14dcee;try{let _0x52ff44=JSON[_0x214eeb(0x131)](_0x3ace0b);console['log'](_0x214eeb(0x113)+_0x2eabba+'��'+_0x52ff44[_0x214eeb('0x125')]);}catch(_0x569ad9){$['logErr'](_0x569ad9,_0x1491ca);}finally{_0x24319e();}},_0x4dea98);});} 12 | 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) } -------------------------------------------------------------------------------- /invalid/赚点是点.js: -------------------------------------------------------------------------------- 1 | /* 2 | 撸现金-赚点是点 3 | {支付宝小程序} 4 | 5 | 一天1-2毛 自动提现 到账支付宝余额 6 | 7 | (金币自动提现非秒到-手提秒到) 8 | 9 | https://json.dd-gz.com/ 域名的任意链接 抓链接末尾token和userid 的值 10 | 11 | 用#分开两个值 12 | 13 | 用 @ 分割多账户 14 | 15 | 例如抓到域名 https://json.dd-gz.com/zhuandianshidian/public/api.php/user/userinfo? 16 | 17 | 假如末尾是 token=123&userid=456 18 | 19 | 则 青龙变量 用 @ 分割多账户 20 | 21 | export zdcookie='123#456' 22 | 23 | v2p 圈×变量 zdcookie 24 | */ 25 | const $ = Env('撸现金-赚点是点') 26 | let jsname = "\u8D5A\u70B9\u662F\u70B9", 27 | ck = ($.isNode() ? process.env.zdcookie : $.getdata("zdcookie")) || "", 28 | ckArr = [], 29 | envSplitor = ["@"]; 30 | async function checkEnv() { 31 | if (ck) 32 | for (let a of ck.split("@")) a && ckArr.push(a); 33 | else if (console.log("\u672A\u627E\u5230\u8D26\u53F7\u6570\u636E"), ckArr.length < 1) return; 34 | return console.log(`共找到${ckArr.length}个账号`), !0 35 | } 36 | async function userinfo(a, b) { 37 | try { 38 | let e; 39 | await httpRequest("get", populateUrlObject(`https://json.dd-gz.com/zhuandianshidian/public/api.php/user/userinfo?token=${a}&userid=${b}`, "")); 40 | let c = httpResult; 41 | 42 | 1 == c.state && (this.cash = c.data.money_zc, console.log(jsname + ` 当前金币 :${this.cash} `), await timeMoney(a, b)), this.cash >= 998 && (console.log(jsname + ` 开始提现 :${number(1e-4*this.cash)} 元`), await addMoney(a, b)) 43 | } catch (d) { 44 | console.log(d) 45 | } finally { 46 | return new Promise(a => { 47 | a(1) 48 | }) 49 | } 50 | } 51 | async function addMoney(a, b) { 52 | try { 53 | let e; 54 | await httpRequest("get", populateUrlObject(`https://json.dd-gz.com/zhuandianshidian/public/api.php/user/addMoney?access=i20180418&appid=2021002117637233&edition=190001&price=${this.cash}&token=${a}&userid=${b}`, "")); 55 | let c = httpResult; 56 | 1 == c.state && console.log(jsname+` 提现状态: 兑换成功`) 57 | !1== c.state && console.log(jsname+ ` 提现状态: ${c.msg}`) 58 | } catch (d) { 59 | console.log(d) 60 | } finally { 61 | return new Promise(a => { 62 | a(1) 63 | }) 64 | } 65 | } 66 | async function timeMoney(b, c) { 67 | try { 68 | let f; 69 | await httpRequest("get", populateUrlObject(`https://json.dd-gz.com/zhuandianshidian/public/api.php/integral/timeMoney?token=${b}&userid=${c}`, "")); 70 | let a = httpResult; 71 | if (1 == a.state) console.log(jsname + ` 开始领取金币 :${a.data.priceMsg}`); 72 | else if (0 == a.state) { 73 | var d = a.msg.replace(/[^\d]/g, ""); 74 | console.log(jsname + ` 开始领取金币 :还需要等待${d}秒`) 75 | } 76 | } catch (e) { 77 | console.log(e) 78 | } finally { 79 | return new Promise(a => { 80 | a(1) 81 | }) 82 | } 83 | } 84 | 85 | function populateUrlObject(a, b = "") { 86 | let d = a.replace("//", "/").split("/")[1], 87 | c = { 88 | url: a, 89 | headers: { 90 | 'Connection' : `keep-alive`, 91 | 'Accept-Encoding' : `gzip, deflate, br`, 92 | 'Content-Type' : `application/json`, 93 | 'Tinyapp-Intercept' : `tiny`, 94 | 'alipayMiniMark' : `Haeyotx/nVfal1tXljAKxON5OI8aIQQ3WheM1km1GI/k6Jqr6+0WIr19c4bUo7gv4Y6W7TScHMCgnkfasNSNrXfL8Hgyc+C233+jklECVVk=`, 95 | 'User-Agent' : `Mozilla/5.0 (iPhone; CPU iPhone OS 14_8 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18H17 Ariver/1.1.0 AliApp(AP/10.2.56.6000) Nebula WK RVKType(0) AlipayDefined(nt:WIFI,ws:414|832|2.0) AlipayClient/10.2.56.6000 Language/zh-Hans Region/CN NebulaX/1.0.0`, 96 | 'Cookie' : ``, 97 | 'Referer' : `https://2021002117637233.hybrid.alipay-eco.com/2021002117637233/0.2.2208111755.38/index.html#pages/userduihuan/user?__appxPageId=3`, 98 | 'Host' : `json.dd-gz.com`, 99 | 'Accept-Language' : `zh-CN,en-US;q=0.8`, 100 | 'Accept' : `*/*`, 101 | 'Accept-Charset' : `utf-8` 102 | }, 103 | timeout: 5e3 104 | }; 105 | return b && (c.body = b), c 106 | } 107 | async function httpRequest(a, b) { 108 | return httpResult = null, httpReq = null, httpResp = null, new Promise(c => { 109 | $.send(a, b, async (d, e, b) => { 110 | try { 111 | if (httpReq = e, httpResp = b, d) console.log(`${a}请求失败`), console.log(d); 112 | else if (b.body) { 113 | if ("object" == typeof b.body) httpResult = b.body; 114 | else try { 115 | httpResult = JSON.parse(b.body) 116 | } catch (f) { 117 | httpResult = b.body 118 | } 119 | } 120 | } catch (g) {} finally { 121 | c() 122 | } 123 | }) 124 | }) 125 | } 126 | 127 | function safeGet(a) { 128 | try { 129 | if ("object" == typeof JSON.parse(a)) return !0; 130 | console.log(a) 131 | } catch (b) { 132 | return console.log(b), console.log(`服务器访问数据为空,请检查自身设备网络情况`), !1 133 | } 134 | } 135 | 136 | function add() { 137 | var a = arguments, 138 | b = (a.length, 0), 139 | d = 0; 140 | for (var c in a) { 141 | var e = "" + a[c]; 142 | if (-1 != e.indexOf(".")) { 143 | var f = e.split(".")[1].length; 144 | b = b < f ? f : b 145 | } 146 | } 147 | var g = Math.pow(10, b); 148 | for (var c in a) d += a[c] * g; 149 | return d / g 150 | } 151 | 152 | function randomNum(a, b) { 153 | switch (arguments.length) { 154 | case 1: 155 | return parseInt(Math.random() * a + 1, 10); 156 | case 2: 157 | return parseInt(Math.random() * (b - a + 1) + a, 10); 158 | default: 159 | return 0 160 | } 161 | } 162 | function number(d) { var b = parseFloat(d); if (isNaN(b)) return !1; var b = Math.round(100 * d) / 100, a = b.toString(), c = a.indexOf("."); for (c < 0 && (c = a.length, a += "."); a.length <= c + 2;)a += "0"; return a } 163 | function Env(a,b){return"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")> -1&&process.exit(0),new class{constructor(a,b){this.name=a,this.notifyStr="",this.startTime=(new Date).getTime(),Object.assign(this,b),console.log(`${this.name} 开始运行: 164 | `)}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}getdata(b){let a=this.getval(b);if(/^@/.test(b)){let[,c,f]=/^@(.*?)\.(.*?)$/.exec(b),d=c?this.getval(c):"";if(d)try{let e=JSON.parse(d);a=e?this.lodash_get(e,f,""):a}catch(g){a=""}}return a}setdata(c,d){let a=!1;if(/^@/.test(d)){let[,b,e]=/^@(.*?)\.(.*?)$/.exec(d),f=this.getval(b),i=b?"null"===f?null:f||"{}":"{}";try{let g=JSON.parse(i);this.lodash_set(g,e,c),a=this.setval(JSON.stringify(g),b)}catch(j){let h={};this.lodash_set(h,e,c),a=this.setval(JSON.stringify(h),b)}}else a=this.setval(c,d);return a}getval(a){return this.isSurge()||this.isLoon()?$persistentStore.read(a):this.isQuanX()?$prefs.valueForKey(a):this.isNode()?(this.data=this.loaddata(),this.data[a]):this.data&&this.data[a]||null}setval(b,a){return this.isSurge()||this.isLoon()?$persistentStore.write(b,a):this.isQuanX()?$prefs.setValueForKey(b,a):this.isNode()?(this.data=this.loaddata(),this.data[a]=b,this.writedata(),!0):this.data&&this.data[a]||null}send(b,a,f=()=>{}){if("get"!=b&&"post"!=b&&"put"!=b&&"delete"!=b){console.log(`无效的http方法:${b}`);return}if("get"==b&&a.headers?(delete a.headers["Content-Type"],delete a.headers["Content-Length"]):a.body&&a.headers&&(a.headers["Content-Type"]||(a.headers["Content-Type"]="application/x-www-form-urlencoded")),this.isSurge()||this.isLoon()){this.isSurge()&&this.isNeedRewrite&&(a.headers=a.headers||{},Object.assign(a.headers,{"X-Surge-Skip-Scripting":!1}));let c={method:b,url:a.url,headers:a.headers,timeout:a.timeout,data:a.body};"get"==b&&delete c.data,$axios(c).then(a=>{let{status:b,request:c,headers:d,data:e}=a;f(null,c,{statusCode:b,headers:d,body:e})}).catch(a=>console.log(a))}else if(this.isQuanX())a.method=b.toUpperCase(),this.isNeedRewrite&&(a.opts=a.opts||{},Object.assign(a.opts,{hints:!1})),$task.fetch(a).then(a=>{let{statusCode:b,request:c,headers:d,body:e}=a;f(null,c,{statusCode:b,headers:d,body:e})},a=>f(a));else if(this.isNode()){this.got=this.got?this.got:require("got");let{url:d,...e}=a;this.instance=this.got.extend({followRedirect:!1}),this.instance[b](d,e).then(a=>{let{statusCode:b,request:c,headers:d,body:e}=a;f(null,c,{statusCode:b,headers:d,body:e})},b=>{let{message:c,response:a}=b;f(c,a,a&&a.body)})}}time(a){let b={"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()};for(let c in/(y+)/.test(a)&&(a=a.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length))),b)new RegExp("("+c+")").test(a)&&(a=a.replace(RegExp.$1,1==RegExp.$1.length?b[c]:("00"+b[c]).substr((""+b[c]).length)));return a}async showmsg(){if(!this.notifyStr)return;let a=this.name+" \u8FD0\u884C\u901A\u77E5\n\n"+this.notifyStr;if($.isNode()){var b=require("./sendNotify");console.log("\n============== \u63A8\u9001 =============="),await b.sendNotify(this.name,a)}else this.msg(a)}logAndNotify(a){console.log(a),this.notifyStr+=a,this.notifyStr+="\n"}msg(d=t,a="",b="",e){let f=a=>{if(!a)return a;if("string"==typeof a)return this.isLoon()?a:this.isQuanX()?{"open-url":a}:this.isSurge()?{url:a}:void 0;if("object"==typeof a){if(this.isLoon()){let b=a.openUrl||a.url||a["open-url"],c=a.mediaUrl||a["media-url"];return{openUrl:b,mediaUrl:c}}if(this.isQuanX()){let d=a["open-url"]||a.url||a.openUrl,e=a["media-url"]||a.mediaUrl;return{"open-url":d,"media-url":e}}if(this.isSurge())return{url:a.url||a.openUrl||a["open-url"]}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(d,a,b,f(e)):this.isQuanX()&&$notify(d,a,b,f(e)));let c=["","============== \u7CFB\u7EDF\u901A\u77E5 =============="];c.push(d),a&&c.push(a),b&&c.push(b),console.log(c.join("\n"))}getMin(a,b){return aa.length?b-a.length:0,c="";for(let d=0;dsetTimeout(b,a))}done(a={}){let b=((new Date).getTime()-this.startTime)/1e3;console.log(` 165 | ${this.name} 运行结束,共运行了 ${b} 秒!`),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(a)}}(a,b)}(async()=>{if("undefined"!=typeof $request);else{if(!await checkEnv())return;let a=0;for(let c of ckArr){a+=1,console.log(` 166 | =============账号${a}============= 167 | `);let b=c.split("#"),d=b[0],e=b[1];await userinfo(d,e)}}})().catch(a=>console.log(a)).finally(()=>$.done()) -------------------------------------------------------------------------------- /invalid/预言.py: -------------------------------------------------------------------------------- 1 | # !/bin/env python3 2 | # -*- coding: utf-8 -* 3 | """ 4 | new Env("预言") 5 | Name: 预言 网页 虚拟币,自己零撸 被坑了钱别找我 6 | Author: yml 7 | Date: 2022.8.17 8 | cron: 4 7,12 * * * prophecy.py 9 | 10 | 邀请链接: https://wprophecy.com/#/register?refId=f02c05c4b481c3a1&redirectTo=/app/home&fullscreen=Y 11 | 邀请码: f02c05c4b481c3a1 感谢支持 12 | 13 | 14 | 8.17 每日签到, 每天随机预言无战争 最大礼金投入 15 | ================== 青龙--配置文件 ================== 16 | 变量格式: export prophecy_data=" rem_token @ rem_token " 多账号用 换行 或 @ 分割 17 | 18 | 教程: 电脑浏览器f12 抓取 wprophecy.com 域名的包, cookie中 rem_token 只要这一个就行 19 | 20 | 脚本:https://raw.githubusercontent.com/yml2213/Python/master/prophecy/prophecy.py 21 | 22 | new Env("预言") 23 | Name: 预言 网页 虚拟币,自己零撸 被坑了钱别找我 24 | Author: yml 25 | Date: 2022.8.17 26 | cron: 4 7,12 * * * prophecy.py 27 | 28 | 邀请链接: https://wprophecy.com/#/register?refId=f02c05c4b481c3a1&redirectTo=/app/home&fullscreen=Y 29 | 邀请码: f02c05c4b481c3a1 感谢支持 30 | 31 | 32 | 8.17 每日签到, 每天随机预言无战争 最大礼金投入 33 | ================== 青龙--配置文件 ================== 34 | 变量格式: export prophecy_data=" rem_token @ rem_token " 多账号用 换行 或 @ 分割 35 | 36 | 教程: 电脑浏览器f12 抓取 wprophecy.com 域名的包, cookie中 rem_token 只要这一个就行 37 | 38 | 脚本在泄露出去,那以后就只有偷撸了 39 | """ 40 | # ================================= 以下代码不懂不要随便乱动 ==================================== 41 | try: 42 | import requests 43 | import json 44 | import sys 45 | import os 46 | import re 47 | import time 48 | import random 49 | except Exception as e: 50 | print(e) 51 | requests.packages.urllib3.disable_warnings() 52 | # -------------------------------------------------------------------------------------------- 53 | Script_Name = "预言" 54 | Name_Pinyin = "prophecy" 55 | Script_Change = "每日签到, 每天随机预言无战争 最大礼金投入" 56 | Script_Version = "0.1.2" 57 | # -------------------------------------------------------------------------------------------- 58 | 59 | 60 | def _env(): # 环境配置 61 | # mac_env(f"{Name_Pinyin}_data") 62 | ql_env(f"{Name_Pinyin}_data") 63 | 64 | 65 | def start(): 66 | for inx, data in enumerate(ckArr): 67 | msg("=============== 开始第" + str(inx + 1) + "个账号 ===============") 68 | ck = data.split("&") 69 | # print(ck[0]) 70 | # print(ck[1]) 71 | prophecy = Script(ck[0]) 72 | prophecy.csrf_token("获取token") 73 | prophecy.user_info("用户信息") 74 | prophecy.do_sign("签到") 75 | 76 | 77 | class Script: 78 | def __init__(self, rem_token): 79 | self.rem_token = rem_token 80 | 81 | def url(self, name): # hostname + xxxx 82 | url = f"https://wprophecy.com/{name}" 83 | return url 84 | 85 | def get_cookie(self): 86 | global cookie_y, token_y 87 | url = 'https://wprophecy.com/getCSRFToken' 88 | payload = {} 89 | headers = { 90 | 'cookie': f'REM_TOKEN={self.rem_token}', 91 | 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Mobile Safari/537.36' 92 | } 93 | try: 94 | res = requests.request("GET", url, headers=headers, data=payload) 95 | result = res.json() 96 | token_y = result['data']['CSRF-TOKEN'] 97 | cookies = res.cookies 98 | cookie = requests.utils.dict_from_cookiejar(cookies) 99 | cookie_data = cookie['WAR_PROPHECY'] 100 | cookie_y = f"WAR_PROPHECY={cookie_data}; REM_TOKEN={self.rem_token}" 101 | # print(cookie_y) 102 | # print(token_y) 103 | except Exception as err: 104 | print('获取cookie失败:\n{0}'.format(err)) 105 | 106 | def headers_one(self): 107 | headers = { 108 | 'accept': 'application/json, text/plain, */*', 109 | 'cookie': self.get_cookie() 110 | } 111 | # print(headers) 112 | return headers 113 | 114 | def headers(self): 115 | global cookie_y, token_y 116 | headers = { 117 | 'accept': 'application/json, text/plain, */*', 118 | 'cookie': cookie_y, 119 | 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Mobile Safari/537.36', 120 | 'CSRF-TOKEN': token_y 121 | } 122 | # print(headers) 123 | return headers 124 | 125 | def headers2(self): 126 | global cookie_y, token_y 127 | headers2 = { 128 | 'accept': 'application/json, text/plain, */*', 129 | 'cookie': cookie_y, 130 | 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Mobile Safari/537.36', 131 | 'CSRF-TOKEN': token_y, 132 | 'Content-Type': 'application/x-www-form-urlencoded' 133 | } 134 | # print(headers2) 135 | return headers2 136 | 137 | def csrf_token(self, name="更新 csrf-token"): # 获取 csrf-token 138 | try: 139 | response = requests.get(url=self.url( 140 | "getCSRFToken"), headers=self.headers_one(), verify=False) 141 | result = response.json() 142 | 143 | if result['status'] == 1: 144 | msg(f"{name}: 成功!") 145 | token = result['data']['CSRF-TOKEN'] 146 | # print(token) 147 | return token 148 | else: 149 | msg(f"{name}: 失败, 请稍后再试!") 150 | print(result) 151 | except Exception as err: 152 | print(err) 153 | 154 | def do_sign(self, name): # 执行签到奖励 155 | try: 156 | payload = {} 157 | response = requests.post(url=self.url("user/login/reward/claim"), headers=self.headers(), data=payload, 158 | verify=False) 159 | result = response.json() 160 | # print(result) 161 | if result['status'] == 1: 162 | msg(f"{name}: 成功, 获得100礼金!") 163 | time.sleep(3) 164 | self.do_prophecy() 165 | elif result['status'] == 0: 166 | msg(f"{name}: {result['error']}, 已申请过奖励!") 167 | else: 168 | msg(f"{name}: 失败, 请稍后再试!") 169 | print(result) 170 | except Exception as err: 171 | print(err) 172 | 173 | def user_info(self, name="用户信息"): # 用户信息 174 | try: 175 | response = requests.get(url=self.url( 176 | "user/appuser/info"), headers=self.headers()) 177 | result = response.json() 178 | # print(result) 179 | if result['status'] == 1: 180 | phone = result['data']['data']['contactNo'] 181 | msg(f"{name}: 成功!\n欢迎:{phone[:3]}****{phone[-4:]}, 余额: {float(result['data']['data']['wallet']['balance'])} USDT, 邀请码: {result['data']['data']['referralCode']}") 182 | time.sleep(3) 183 | elif result['status'] == 0: 184 | msg(f"{name}: 失败, 请检查变量&脚本更新到最新再试试") 185 | else: 186 | msg(f"{name}: 失败, 请稍后再试!") 187 | print(result) 188 | except Exception as err: 189 | print(err) 190 | 191 | def max_bet(self, name="最大投入"): # 最大投入 192 | try: 193 | response = requests.get(url=self.url( 194 | "betting/max/bet/256/N"), headers=self.headers()) 195 | result = response.json() 196 | # print(result) 197 | if result['status'] == 1: 198 | msg(f"{name}: 成功!") 199 | # print(result['data']) 200 | return result['data'] 201 | elif result['status'] == 0: 202 | msg(f"{name}: 失败, 请检查变量&脚本更新到最新再试试") 203 | else: 204 | msg(f"{name}: 失败, 请稍后再试!") 205 | print(result) 206 | except Exception as err: 207 | print(err) 208 | 209 | def prophecy_list(self, name="预言列表获取id"): # 预言列表-返回id 210 | try: 211 | response = requests.get(url=self.url( 212 | "betting/items?filter=%7B%22language%22%3A%22zh-hans%22%2C%22isActiveRound%22%3A%7B%22in%22%3A%5B%22Y%22%5D%7D%7D"), 213 | headers=self.headers()) 214 | result = response.json() 215 | # print(result) 216 | if result['status'] == 1: 217 | num = result['data']['itemsCount'] 218 | msg(f"共找到{num}个活动预言, 随机选择一个进行预言") 219 | random_num = random.randint(0, num - 1) 220 | items = result['data']['items'] 221 | # print(items[random_num]['roundId']) 222 | round_id = items[random_num]['roundId'] 223 | time.sleep(2) 224 | # print(round_id) 225 | return round_id 226 | elif result['status'] == 0: 227 | msg(f"{name}: 失败, 请检查变量&脚本更新到最新再试试") 228 | else: 229 | msg(f"{name}: 失败, 请稍后再试!") 230 | print(result) 231 | except Exception as err: 232 | print(err) 233 | 234 | def do_prophecy(self, name="执行预言"): # 执行预言 235 | try: 236 | bet_num = self.max_bet() 237 | round_id = self.prophecy_list() 238 | # print(round_id) 239 | # print(bet_num) 240 | payload = f'amountNoWar={bet_num}&roundId={round_id}' 241 | print(payload) 242 | response = requests.post(url=self.url("betting/create"), headers=self.headers2(), data=payload, 243 | verify=False) 244 | result = response.json() 245 | # print(result) 246 | 247 | if result['status'] == 1: 248 | msg(f"预言无战争,成功!") 249 | elif result['status'] == 0: 250 | msg(f"{name}: 失败, 请检查变量&脚本更新到最新再试试") 251 | else: 252 | msg(f"{name}: 失败, 请稍后再试!") 253 | print(result) 254 | except Exception as err: 255 | print(err) 256 | 257 | 258 | # ==================================================================== 259 | def last_version(name, mold): 260 | url = '' 261 | if mold == 1: 262 | url = f"https://raw.gh.fakev.cn/yml2213/Python/master/{name}/{name}.py" 263 | 264 | elif mold == 2: 265 | url = f"http://yml-gitea.ml:2233/yml/Python/raw/branch/master/{name}.py" 266 | try: 267 | _url = url 268 | _headers = {} 269 | response = requests.get(url=_url, headers=_headers, verify=False) 270 | result = response.text 271 | r = re.compile(r'Script_Version = "(.*?)"') 272 | _data = r.findall(result) 273 | if not _data: 274 | return "出现未知错误 ,请稍后重试!" 275 | else: 276 | return _data[0] 277 | except Exception as err: 278 | print(err) 279 | 280 | 281 | def mac_env(name): 282 | global ckArr 283 | pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep 284 | path = pwd + ".env" 285 | with open(path, "r+") as f: 286 | env = f.read() 287 | if name in env: 288 | r = re.compile(r'prophecy_data="(.*?)"', re.M | re.S | re.I) 289 | result = r.findall(env) 290 | # print(data[0]) 291 | if "@" in result[0]: 292 | _ck = result[0].split("@") 293 | ckArr = _ck 294 | elif "\n" in result[0]: 295 | _ck = result[0].splitlines() 296 | ckArr = _ck 297 | else: 298 | ckArr = result 299 | else: 300 | print(f"检查变量 {name} 是否已填写") 301 | 302 | 303 | def ql_env(name): 304 | global ckArr 305 | if name in os.environ: 306 | ckArr = [] 307 | _data = os.environ[name] 308 | if "@" in _data: 309 | _ck = _data.split("@") 310 | ckArr = _ck 311 | elif "\n" in _data: 312 | _ck = _data.splitlines() 313 | ckArr = _ck 314 | else: 315 | ckArr = _data.split("@") 316 | 317 | 318 | # 通知服务 319 | class Msg(object): 320 | def __init__(self, m=''): 321 | self.str_msg = m 322 | self.message() 323 | 324 | # noinspection PyMethodMayBeStatic 325 | def get_sendnotify(self): 326 | if not os.path.exists("sendNotify.py"): 327 | cur_path = os.getcwd() 328 | print(f"未找到通知依赖文件,将于脚本执行目录({cur_path})新建:sendNotify.py ") 329 | try: 330 | url = 'https://raw.gh.fakev.cn/yml2213/Python/master/sendNotify.py' 331 | response = requests.get(url) 332 | with open('sendNotify.py', "w+", encoding="utf-8") as f: 333 | f.write(response.text) 334 | except Exception as err: 335 | print(err) 336 | else: 337 | print("文件已存在,跳过") 338 | 339 | def message(self): 340 | global msg_info 341 | print(self.str_msg) 342 | try: 343 | msg_info = f"{msg_info}\n{self.str_msg}" 344 | except Exception as err: 345 | # print(err) 346 | msg_info = "{}".format(self.str_msg) 347 | sys.stdout.flush() 348 | 349 | def main(self): 350 | global send 351 | cur_path = os.getcwd() 352 | if os.path.exists(cur_path + "/sendNotify.py"): 353 | try: 354 | from sendNotify import send 355 | except Exception as err: 356 | self.get_sendnotify() 357 | print(err) 358 | try: 359 | from sendNotify import send 360 | except Exception as err: 361 | print(err) 362 | print("加载通知服务失败~") 363 | else: 364 | self.get_sendnotify() 365 | try: 366 | from sendNotify import send 367 | except Exception as err: 368 | print(err) 369 | print("加载通知服务失败~") 370 | 371 | 372 | Msg().main() 373 | 374 | 375 | def msg(data): 376 | Msg(data) 377 | 378 | 379 | def tip(): 380 | print("================ 脚本只支持青龙面板 =================") 381 | print("============ 具体教程以请自行查看顶部教程 =============\n") 382 | msg(f"🔔 {Script_Name} ,开始! ") 383 | origin_version = last_version(Name_Pinyin, 1) 384 | msg(f"📌 本地脚本: {Script_Version} 远程仓库版本: V {origin_version}") 385 | msg(f"📌 🆙 更新内容: {Script_Change}") 386 | msg(f"共发现 {str(len(ckArr))} 个账号") 387 | 388 | 389 | if __name__ == "__main__": 390 | global ckArr, msg_info, cookie_y, token_y 391 | _env() 392 | tip() 393 | start() 394 | send(f"{Script_Name}", msg_info) -------------------------------------------------------------------------------- /little_points/wx特步.py: -------------------------------------------------------------------------------- 1 | # !/bin/env python3 2 | # -*- coding: utf-8 -* 3 | """ 4 | 感谢 一峰一燕 提供脚本以及技术支持 5 | 6 | 项目名称: 特步 小程序 7 | Author: yml 8 | Date: 2022.7.8 9 | cron: 19 7 * * * tebu.py 10 | new Env("特步"); 11 | ================== 青龙--配置文件 ================== 12 | 变量格式: export tebu_data=" ezr-vuid & ezr-st & ezr-ss & ezr-userid " ,多账号用 换行 或 @ 分割 13 | 14 | 【教程】: 需要自行用手机抓取 wxa-tp.ezrpro.com 域名的包 , ezr-vuid , ezr-st , ezr-ss , ezr-userid 是 headers 中的参数 15 | 16 | """ 17 | # ================================================================ 18 | # 检测到有新的定时任务: 19 | 20 | # miranda0111_little_wool/wx特步.py 21 | 22 | # 开始尝试自动添加定时任务... 23 | 24 | # 特步 -> 添加失败(Validation error, cannot resolve alias "teb") 25 | 26 | # 需要手动在定时中添加 task miranda0111_little_wool/wx特步.py 27 | 28 | # ================================= 以下代码不懂不要随便乱动 ==================================== 29 | try: 30 | import requests 31 | import json 32 | import sys 33 | import os 34 | import re 35 | import time 36 | except Exception as e: 37 | print(e) 38 | requests.packages.urllib3.disable_warnings() 39 | # -------------------------------------------------------------------------------------------- 40 | Script_Name = "特步" 41 | Name_Pinyin = "tebu" 42 | Script_Change = "特步商城签到 ,第一个 py 脚本" 43 | Script_Version = "0.1.2" 44 | Version_Check = "0.1.2" 45 | 46 | 47 | # -------------------------------------------------------------------------------------------- 48 | 49 | def last_version(name, mold): 50 | url = '' 51 | if mold == 1: 52 | url = "https://raw.gh.fakev.cn/yml2213/Python/master/" + name + "/" + name + ".py" 53 | elif mold == 2: 54 | url = "http://yml-gitea.ml:2233/yml/JavaScript-yml/raw/branch/master/" + name + ".py" 55 | try: 56 | _url = url 57 | _headers = {} 58 | response = requests.get(url=_url, headers=_headers, verify=False) 59 | result = response.text 60 | r = re.compile(r'Version_Check = "(.*?)"') 61 | _data = r.findall(result) 62 | if not _data: 63 | return "出现未知错误 ,请稍后重试!" 64 | else: 65 | return _data[0] 66 | except Exception as err: 67 | print(err) 68 | 69 | 70 | def mac_env(name): 71 | global ckArr 72 | pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep 73 | path = pwd + ".env" 74 | with open(path, "r+") as f: 75 | env = f.read() 76 | if name in env: 77 | r = re.compile(r'tebu_data="(.*?)"', re.M | re.S | re.I) 78 | result = r.findall(env) 79 | # print(data[0]) 80 | if "@" in result[0]: 81 | _ck = result[0].split("@") 82 | ckArr = _ck 83 | elif "\n" in result[0]: 84 | _ck = result[0].split("\n") 85 | ckArr = _ck 86 | else: 87 | ckArr = result 88 | else: 89 | print("检查变量" + name + "是否已填写") 90 | 91 | 92 | def ql_env(name): 93 | global ckArr 94 | if name in os.environ: 95 | ckArr = [] 96 | _data = os.environ[name] 97 | if "@" in _data: 98 | _ck = _data.split("@") 99 | ckArr = _ck 100 | elif "\n" in _data: 101 | _ck = _data.split("\n") 102 | ckArr = _ck 103 | else: 104 | ckArr = _data.split("@") 105 | 106 | 107 | # mac_env("tebu_data") 108 | ql_env("tebu_data") 109 | 110 | 111 | class Script: 112 | def __init__(self, vuid, st, ss, userid): 113 | self.vuid = vuid 114 | self.st = st 115 | self.ss = ss 116 | self.userid = userid 117 | 118 | def sign_info(self): 119 | print("开始 签到信息") 120 | url_signinfo = "https://wxa-tp.ezrpro.com/myvip/Vip/SignIn/GetSignInDtlInfo" 121 | url_signin = "https://wxa-tp.ezrpro.com/myvip/Vip/SignIn/SignIn" 122 | payload = json.dumps({ 123 | "ActId": 784, 124 | "ActRemindStatus": True 125 | }) 126 | 127 | headers = { 128 | 'Host': 'wxa-tp.ezrpro.com', 129 | 'ezr-cop-id': '143', 130 | 'ezr-vuid': self.vuid, 131 | 'ezr-source': 'weapp', 132 | 'ezr-st': self.st, 133 | 'ezr-ss': self.ss, 134 | 'ezr-userid': self.userid, 135 | 'ezr-sv': '1', 136 | 'ezr-brand-id': '254', 137 | 'content-type': 'application/json' 138 | } 139 | try: 140 | response = requests.get(url=url_signinfo, headers=headers, verify=False) 141 | result = response.json() 142 | if result["Result"]["VipSignInDtl"]["IsSigInToday"]: 143 | print("签到: 您今天已经签到了 ,明天再来吧!") 144 | return 145 | elif not result["Result"]["VipSignInDtl"]["IsSigInToday"]: 146 | print("签到: 您今天未签到 ,去签到喽!") 147 | else: 148 | print("签到: 获取签到信息失败 ,请检查 变量 是否正确!") 149 | except Exception as err: 150 | print(err) 151 | 152 | try: 153 | response = requests.post(url=url_signin, headers=headers, data=payload, verify=False) 154 | result = response.json() 155 | # print(result) 156 | if result["Success"]: 157 | print("签到:" + result["Msg"]+" ,获得积分: " + result["Result"]["BonusValue"] + " 个!") 158 | return 159 | else: 160 | print("签到: 获取签到信息失败 ,请检查 变量 是否正确!") 161 | except Exception as err: 162 | print(err) 163 | 164 | 165 | def tip(): 166 | global ckArr 167 | print("================ 脚本只支持青龙新版 =================") 168 | print("============ 具体教程以请自行查看顶部教程 =============\n") 169 | print("🔔 " + Script_Name + " ,开始!") 170 | origin_version = last_version(Name_Pinyin, 1) 171 | print("📌 本地脚本: V " + Script_Version + 172 | " 远程仓库版本: V " + origin_version) 173 | print("📌 🆙 更新内容: " + Script_Change) 174 | print("共发现 " + str(len(ckArr)) + " 个账号!") 175 | 176 | 177 | if __name__ == "__main__": 178 | global msg_info 179 | global ckArr 180 | tip() 181 | for inx, data in enumerate(ckArr): 182 | print("=============== 开始第" + str(inx + 1) + "个账号 ===============") 183 | ck = data.split("&") 184 | tebu = Script(ck[0], ck[1], ck[2], ck[3]) 185 | tebu.sign_info() -------------------------------------------------------------------------------- /little_points/wx苏泊尔.py: -------------------------------------------------------------------------------- 1 | # !/bin/env python3 2 | # -*- coding: utf-8 -* 3 | """ 4 | link: https://raw.githubusercontent.com/yml2213/Python/master/sbr/sbr.py 5 | new Env("苏泊尔") 6 | Name: 苏泊尔 小程序 种大米,换实物 7 | Author: yml 8 | Date: 2022.7.12 9 | cron: 19 7,12 * * * sbr.py 10 | 11 | 7.13 完成 签到, 偷大米, 浏览菜谱 任务 12 | ================== 青龙--配置文件 ================== 13 | 变量格式: export sbr_data=" token & cookie @ token & cookie " ,多账号用 换行 或 @ 分割 14 | 15 | token 抓 https://growrice.supor.com/rice/backend/public/index.php/api/login/auto-login 的包 , url 后面就是token 16 | cookie 抓 https://growrice.supor.com/rice/backend/public/index.php/api/users/get-user-info 的包 , header 中有cookie 17 | task miranda0111_little_wool/wx苏泊尔.py 18 | """ 19 | # ================================= 以下代码不懂不要随便乱动 ==================================== 20 | try: 21 | import requests 22 | import json 23 | import sys 24 | import os 25 | import re 26 | import time 27 | import random 28 | except Exception as e: 29 | print(e) 30 | requests.packages.urllib3.disable_warnings() 31 | # -------------------------------------------------------------------------------------------- 32 | Script_Name = "苏泊尔" 33 | Name_Pinyin = "sbr" 34 | Script_Change = "完成 签到, 偷大米, 浏览菜谱 任务" 35 | Script_Version = "0.0.2" 36 | 37 | 38 | # -------------------------------------------------------------------------------------------- 39 | def start(): 40 | global _ck_state 41 | _ck_state = 1 42 | for inx, data in enumerate(ckArr): 43 | msg("=============== 开始第" + str(inx + 1) + "个账号 ===============") 44 | ck = data.split("&") 45 | sbr = Script(ck[0], ck[1]) 46 | sbr.login() 47 | sbr.user_info("用户信息") 48 | if _ck_state: 49 | sbr.sign_info("签到信息") 50 | sbr.task_list("任务列表") 51 | sbr.get_index_info("获取可收取大米信息") 52 | 53 | 54 | class Script: 55 | def __init__(self, token, cookie): 56 | self.token = token 57 | self.cookie = cookie 58 | 59 | # noinspection PyMethodMayBeStatic 60 | def url(self, name): 61 | url = f"https://growrice.supor.com/rice/backend/public/index.php/api/{name}" 62 | return url 63 | 64 | def headers(self): 65 | headers = { 66 | 'Host': 'growrice.supor.com', 67 | 'Cookie': self.cookie, 68 | 'content-type': 'application/x-www-form-urlencoded' 69 | } 70 | return headers 71 | 72 | def login(self): # 登录刷新 73 | url_login = f"https://growrice.supor.com/rice/backend/public/index.php/api/login/auto-login?token={self.token}" 74 | try: 75 | requests.get(url=url_login, headers=self.headers(), verify=False) 76 | except Exception as err: 77 | print(err) 78 | 79 | def user_info(self, name): # 用户信息 80 | global _ck_state 81 | try: 82 | response = requests.get(url=self.url("users/get-user-info"), headers=self.headers(), verify=False) 83 | result = response.json() 84 | # print(result) 85 | if result['code'] == 1: 86 | msg(f"{name}: {result['msg']}, 欢迎 {result['data']['nickname']}") 87 | time.sleep(2) 88 | elif result['code'] == 0: 89 | msg(f"{name}: {result['msg']}") 90 | _ck_state = 0 91 | return _ck_state 92 | else: 93 | msg(f"{name}: 失败, 请稍后再试!") 94 | print(result) 95 | _ck_state = 0 96 | return _ck_state 97 | except Exception as err: 98 | print(err) 99 | 100 | def sign_info(self, name): # 签到信息查询 101 | try: 102 | response = requests.get(url=self.url("signIn/sign-list"), headers=self.headers(), verify=False) 103 | result = response.json() 104 | # print(result) 105 | if not result['data']['is_sign']: 106 | msg(f"{name}: 未签到 ,去签到喽!") 107 | self.do_sign("签到") 108 | elif result['data']['is_sign']: 109 | msg(f"{name}: 已签到, 明天再来吧!") 110 | else: 111 | msg(f"{name}: 失败, 请稍后再试!") 112 | print(result) 113 | except Exception as err: 114 | print(err) 115 | 116 | def do_sign(self, name): # 执行签到 117 | try: 118 | payload = "https://growrice.supor.com/rice/backend/public/index.php/api/signIn/sign" 119 | response = requests.post(url=self.url("signIn/sign"), headers=self.headers(), data=payload, verify=False) 120 | result = response.json() 121 | if result['code'] == 1: 122 | msg(f"{name}: {result['msg']}, 获得 {result['data']['get_rice_num']} 大米") 123 | time.sleep(3) 124 | self.browse_recipes("浏览菜谱") 125 | elif result['code'] == 0: 126 | msg(f"{name}: {result['msg']}") 127 | else: 128 | msg(f"{name}: 失败, 请稍后再试!") 129 | print(result) 130 | except Exception as err: 131 | print(err) 132 | 133 | def task_list(self, name): # 任务列表 134 | try: 135 | response = requests.get(url=self.url("task/index"), headers=self.headers(), verify=False) 136 | result = response.json() 137 | # print(result) 138 | if result['code'] == 1: 139 | print(f"{name}: {result['msg']}") 140 | task_list = result['data'] 141 | for task in task_list: 142 | if task['id'] != 8: 143 | _id, name, is_finish = task['id'], task['name'], task['is_finish'] 144 | if _id == 6 and is_finish is False: 145 | self.get_rice("偷大米") 146 | elif _id == 6 and is_finish is True: 147 | msg("今天无法偷大米了, 明天再来吧!") 148 | pass 149 | 150 | elif result['code'] == 0: 151 | msg(f"{name}: {result['msg']}") 152 | else: 153 | msg(f"{name}: 失败, 请稍后再试!") 154 | print(result) 155 | except Exception as err: 156 | print(err) 157 | 158 | def get_rice(self, name): # 偷好友大米 159 | try: 160 | _id_list = self.get_city_list("获取好友大米id") 161 | for _id in _id_list: 162 | payload = f"&friend_id={_id}" 163 | response = requests.post(url=self.url("users/get-rice"), headers=self.headers(), data=payload) 164 | result = response.json() 165 | # print(result) 166 | if result['code'] == 1: 167 | msg(f"{name}: {result['msg']},当前已有大米 {result['data']['sign_rice_num']}") 168 | time.sleep(5) 169 | elif result['code'] == 0: 170 | msg(f"{name}: {result['msg']}") 171 | else: 172 | msg(f"{name}: 失败, 请稍后再试!") 173 | print(result) 174 | 175 | except Exception as err: 176 | print(err) 177 | 178 | def get_city_list(self, name): # 获取好友大米id 179 | try: 180 | response = requests.get(url=self.url("users/same-city-list"), headers=self.headers(), verify=False) 181 | result = response.json() 182 | if result['code'] == 1: 183 | _list = result['data'] 184 | # print(_list) 185 | random_list = random.sample(range(1, 10), 3) 186 | _id_list = [] 187 | for i in random_list: 188 | _id = _list[i]['id'] 189 | _id_list.append(_id) 190 | return _id_list 191 | 192 | elif result['code'] == 0: 193 | msg(f"{name}: 获取列表失败!") 194 | else: 195 | msg(f"{name}: 失败, 请稍后再试!") 196 | print(result) 197 | except Exception as err: 198 | print(err) 199 | 200 | def browse_recipes(self, name): # 浏览菜谱 201 | try: 202 | payload = "&id=8&other_id=3" 203 | response = requests.post(url=self.url("task/link-task"), headers=self.headers(), data=payload) 204 | result = response.json() 205 | # print(result) 206 | if result['code'] == 1: 207 | msg(f"{name}: {result['msg']}") 208 | time.sleep(3) 209 | else: 210 | msg(f"{name}: 失败, 请稍后再试!") 211 | msg(result) 212 | except Exception as err: 213 | print(err) 214 | 215 | def get_index_info(self, name): # 获取可收取大米信息 216 | try: 217 | response = requests.get(url=self.url("index/index"), headers=self.headers(), verify=False) 218 | result = response.json() 219 | # print(result) 220 | rice_list = result['data']['rice_list'] 221 | if result['code'] == 1 and len(rice_list) > 0: 222 | for i in range(len(rice_list)): 223 | _id, num, collect_name = rice_list[i]["id"], rice_list[i]["num"], rice_list[i]["name"] 224 | # print(_id, num, _name) 225 | self.collect_rice("收大米", _id, num, collect_name) 226 | elif result['code'] == 1 and len(rice_list) == 0: 227 | msg(f"{name}: 没有可以收获的大米") 228 | 229 | elif result['code'] == 2: 230 | msg(f"{name}: {result['msg']}, 请自己先打开一次小程序,种大米后在执行脚本!") 231 | else: 232 | msg(f"{name}: 失败, 请稍后再试!") 233 | msg(result) 234 | except Exception as err: 235 | print(err) 236 | 237 | def collect_rice(self, name, _id, num, collect_name): # 收大米 238 | try: 239 | payload = f"&id={_id}" 240 | response = requests.post(url=self.url("index/collect-rice"), headers=self.headers(), data=payload) 241 | result = response.json() 242 | # print(result) 243 | if result['code'] == 1: 244 | msg(f"{name}: 收取 {collect_name} {num} 大米, {result['msg']}") 245 | time.sleep(5) 246 | elif result['code'] == 0: 247 | msg(f"{name}: {result['msg']}") 248 | else: 249 | msg(f"{name}: 失败, 请稍后再试!") 250 | msg(result) 251 | except Exception as err: 252 | print(err) 253 | 254 | 255 | # ==================================================================== 256 | 257 | 258 | def main(): 259 | pass 260 | 261 | 262 | def last_version(name, mold): 263 | url = '' 264 | if mold == 1: 265 | url = f"https://raw.gh.fakev.cn/yml2213/Python/master/{name}/{name}.py" 266 | 267 | elif mold == 2: 268 | url = f"http://yml-gitea.ml:2233/yml/Python/raw/branch/master/{name}.py" 269 | try: 270 | _url = url 271 | _headers = {} 272 | response = requests.get(url=_url, headers=_headers, verify=False) 273 | result = response.text 274 | r = re.compile(r'Script_Version = "(.*?)"') 275 | _data = r.findall(result) 276 | if not _data: 277 | return "出现未知错误 ,请稍后重试!" 278 | else: 279 | return _data[0] 280 | except Exception as err: 281 | print(err) 282 | 283 | 284 | def mac_env(name): 285 | global ckArr 286 | pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep 287 | path = pwd + ".env" 288 | with open(path, "r+") as f: 289 | env = f.read() 290 | if name in env: 291 | r = re.compile(r'sbr_data="(.*?)"', re.M | re.S | re.I) 292 | result = r.findall(env) 293 | # print(data[0]) 294 | if "@" in result[0]: 295 | _ck = result[0].split("@") 296 | ckArr = _ck 297 | elif "\n" in result[0]: 298 | _ck = result[0].splitlines() 299 | ckArr = _ck 300 | else: 301 | ckArr = result 302 | else: 303 | print(f"检查变量 {name} 是否已填写") 304 | 305 | 306 | def ql_env(name): 307 | global ckArr 308 | if name in os.environ: 309 | ckArr = [] 310 | _data = os.environ[name] 311 | if "@" in _data: 312 | _ck = _data.split("@") 313 | ckArr = _ck 314 | elif "\n" in _data: 315 | _ck = _data.splitlines() 316 | ckArr = _ck 317 | else: 318 | ckArr = _data.split("@") 319 | 320 | 321 | # 通知服务 322 | 323 | 324 | 325 | # mac_env(f"{Name_Pinyin}_data") 326 | ql_env(f"{Name_Pinyin}_data") 327 | 328 | 329 | def tip(): 330 | print("================ 脚本只支持青龙新版 =================") 331 | print("============ 具体教程以请自行查看顶部教程 =============\n") 332 | msg(f"🔔 {Script_Name} ,开始! ") 333 | origin_version = last_version(Name_Pinyin, 1) 334 | msg(f"📌 本地脚本: {Script_Version} 远程仓库版本: V {origin_version}") 335 | msg(f"📌 🆙 更新内容: {Script_Change}") 336 | msg(f"共发现 {str(len(ckArr))} 个账号") 337 | 338 | 339 | if __name__ == "__main__": 340 | global ckArr, msg_info, send, _ck_state 341 | tip() 342 | start() 343 | send(f"{Script_Name}", msg_info) --------------------------------------------------------------------------------