CheckinScripts/tyqs.js

33 lines
133 KiB
JavaScript
Raw Normal View History

2022-07-27 15:14:47 +08:00
/**
作者临渊
日期7-27
小程序统一快乐星球
入口活动->天气情书
抓包https://api.xiaoyisz.com/asamu/ga/user/public/api/login 这个登录包里 body 部分的 全部
变量tqBody='body@xxxx ' 多个账号用 @ 或者 换行 分割
定时一天一次
cron: 10 12 * * *
[task_local]
#统一天气情书
10 12 * * * https://raw.githubusercontent.com/LinYuanovo/scripts/main/tyqs.js, tag=统一天气情书, enabled=true
[rewrite_local]
https://api.xiaoyisz.com/asamu/ga/user/public/api/login url script-request-body https://raw.githubusercontent.com/LinYuanovo/scripts/main/tyqs.js
[MITM]
hostname = api.xiaoyisz.com
2022-08-20 12:02:14 +08:00
8-20 修复了sign error
2022-07-27 15:14:47 +08:00
*/
const $ = new Env("统一天气情书");
const notify = $.isNode() ? require("./sendNotify") : "";
const { log } = console;
const Notify = 1; //0为关闭通知1为打开通知,默认为1
const debug = 0; //0为关闭调试1为打开调试,默认为0
const uaNum = 1; //随机UA从0-20随便选一个填上去
const help = 1; //0为关闭互助1为打开互助,默认为1
2022-08-20 12:02:14 +08:00
let scriptVersion = "1.1.0";
2022-07-27 15:14:47 +08:00
//////////////////////
2022-08-20 12:02:14 +08:00
const _0x5793=['R21ieGU=','Ym9keQ==','cG9zdA==','RENzc3M=','6I635Y+W5L+h5oGv5aSx6LSl77yM5Y6f5Zug5piv77ya','YUlxREw=','5Liq6LSm5Y+35oq95aWW57uT5p6c44CR','dndqY1I=','5Liq6LSm5Y+35Y675Yqp5Yqb57uT5p6c44CR','RVdva1o=','CuOAkGRlYnVn44CRPT09PT09PT09PT09PT09IOi/meaYryDkuIrmiqXku7vliqEg6K+35rGCIHVybCA9PT09PT09PT09PT09PT0=','ZlpiRFQ=','CuOAkGRlYnVn44CRPT09PT09PT09PT09PT09IOi/meaYryDkupLliqkg6K+35rGCIHVybCA9PT09PT09PT09PT09PT0=','bURacGQ=','55O255uW5pWw6YeP5Li66Zu277yM5LiN5omn6KGM5oq95aWW','cmVwbGFjZQ==','VUVyV0E=','c0dRY20=','UnBiWXA=','aGRuQms=','aGRiQ0c=','aE5ESWo=','S3lrZVQ=','WE9nTFg=','dWlrTkI=','ZkJiS2U=','Q3pOb2M=','VWFPRU4=','UGJYVEQ=','CuOAkGRlYnVn44CRPT09PT09PT09PT09PT09IOi/meaYryDpooblj5blpZblirEg6K+35rGCIHVybCA9PT09PT09PT09PT09PT0=','ZXB5WFA=','RWlPelI=','Q25aeGE=','bmlja05hbWU=','UUpjZ2k=','QVF1T1M=','T1JpTkY=','SlNJU2I=','bUZ6TWg=','Z2V0VGltZQ==','bmZqWW8=','UHZNanA=','UGR1S2g=','d3JpdGVGaWxl','ZGF0YQ==','YXV0aG9y','aW5kZXhPZg==','WU9FTkw=','R3d3ZFQ=','44CQ5byA5aeL6I635Y+WQVXjgJE=','aEFFeXY=','CuaKveWlluaIkOWKn++8jOW6lOivpeaYr+S4reS6huS4gOetieWllu+8muWunueJqeWkp+Wllg==','UUlRT2g=','aW50ZWdyYWxOb3c=','UHlPZ1g=','d05SdW0=','d1ZxU3k=','bHNmUlM=','aFRhaEQ=','Z05sQWs=','ZGpNRVM=','TE1GZnQ=','UnZrTXI=','R29odHI=','VEtyY2Q=','RWlmcm8=','c3VKUFo=','6I635Y+WQVXmiJDlip8=','eWhEbkk=','Y29uc3RydWN0b3I=','ZWt4aHA=','W+WKqeWKm+esrA==','ZXFXbEM=','YVltd28=','5LiK5oql5Lu75Yqh5oiQ5Yqf','Zm5LenQ=','SE1hbEo=','QW9GaHU=','bXhybGo=','eWJMWEw=','dXJs','a0RCT2Q=','VXplcWo=','blBlRkY=','5Liq6LSm5Y+357uT5p6cXQ==','ZmVzcHc=','YXV0aG9yaXphdGlvbg==','YnBiclI=','5pqC5peg5Y+v6aKG5Y+W5aWW5Yqx','TUd2Z1E=','T3puZms=','RUlQZ0s=','Q21MeUY=','THV6UU0=','bE1qdkk=','CgrjgJBkZWJ1Z+OAkT09PT09PT09PT09PT09Pei/meaYryDpooblj5blpZblirEg6L+U5ZueZGF0YT09PT09PT09PT09PT09','CgrjgJBkZWJ1Z+OAkT09PT09PT09PT09PT09Pei/meaYryDojrflj5ZBVSDov5Tlm55kYXRhPT09PT09PT09PT09PT0=','CuaKveWlluaIkOWKn++8jOS4jeefpemBk+S4reS6huWVpQ==','WU5wdWY=','VGdFU1E=','blBjUEQ=','WGpOWUg=','ZW52','QWJlZ0Q=','dFdlRks=','YllleHY=','TmhITlA=','5oq95aWW5aSx6LSl77yM5Y6f5Zug5piv77ya','U3hFR3A=','b3JpZ2lu','Z2V0','eVBoWlc=','SUxveXc=','MnwwfDF8M3w0','cVZpYWY=','aUdlWks=','5Lu75Yqh5LiN5piv5b6F6aKG5Y+W54q25oCB','aW1yQnU=','cHVzaA==','YWdzalk=','QndQaFM=','RUJ2YUQ=','IOiOt+WPluesrDHkuKogY2sg5oiQ5YqfOiA=','YVh1WWw=','6I635Y+W55O255uW5pWw6YeP5aSx6LSl77yM5Y6f5Zug5piv77ya','YkZFeVU=','Q0NJT3o=','aHRZaHg=','VVBLeWs=','S0d1ZnM=','c3BsaXQ=','TVhSaGw=','VWpsZUU=','aHR0cHM6Ly9hcGkueGlhb3lpc3ouY29tL2FzYW11L2dhL3VzZXIvaW5mbz90aW1lc3RhbXA9','UUF5TXQ=','d3JMTWs=','TW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDEwOyBSZWRtaSBLMjAgUHJvIFByZW1pdW0gRWRpdGlvbiBCdWlsZC9RS1ExLjE5MDgyNS4wMDI7IHd2KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBDaHJvbWUvNzcuMC4zODY1LjEyMCBNUVFCcm93c2VyLzYuMiBUQlMvMDQ1MjI3IE1vYmlsZSBTYWZhcmkvNTM3LjM2','V0dUWnY=','V1pGemg=','VFVxaFo=','Wk9ZRlU=','YnFHa0I=','bnVt','b0V6QUI=','Rm5MTHM=','Y0xDS1E=','SlFCZmg=','UklZYlQ=','dWJKdGg=','Z050Tlc=','anRGWVE=','SnloREk=','VmhQbm0=','cVZ0YVI=','S0ZRZVA=','ZUNsY28=','V0FEWlA=','CuOAkGRlYnVn44CRPT09PT09PT09PT09PT09IOi/meaYryDojrflj5bku7vliqEg6K+35rGCIHVybCA9PT09PT09PT09PT09PT0=','RllLRUY=','c3RyaW5naWZ5','44CQZGVidWfjgJEg6L+Z5piv5L2g55qE5YWo6YOo6LSm5Y+35pWw57uEOgog','UXJyUWU=','SHN6SkI=','dG5GWUs=','5LiK5oql5Lu75Yqh5aSx6LSl77yM5Y6f5Zug5piv77ya','R0d2cXY=','eGFHZGs=','WFFzdnE=','VnlERWc=','dUt2U3Y=','eHZqQnU=','6I635Y+WQVXlpLHotKXvvIzor7fmo4Dmn6XkvaDnmoTlj5jph4/mmK/lkKbmraPnoa7vvIzlpoLmraPnoa7mm7TmjaLliLDnjq/looPlj5jph4/miJbogIXphY3nva7mlofku7bph43or5U=','RXVqT0M=','c2lkWEc=','T05HQnA=','aW5mbw==','aGRxWGc=','Z2V0ZGF0YQ==','U2JhSXE=','WVR1Y3Q=','Zkh6d0Y=','QXZ3V1E=','V0Nla1g=','TEp4Y2I=','TFVCWlU=','CuaKveWlluaIkOWKn++8jOW6lOivpeaYr+S4reS6huS6jOetieWllu+8mumYv+iQqOWnhg==','Njd8Mjl8NTN8NjF8NDB8NTV8MjB8MTJ8MjJ8MjV8MzZ8NDZ8Mjd8NTB8NDF8Njl8MTB8M3w2NnwxOXwxMXwzNXwzMXw1fDQ4fDY1fDU0fDE2fDU3fDl8NnwzOXwzMHw0Mnw3MXw0N3w2MHwzM3wxNHwzOHw2Mnw2M3wyfDMyfDF8Mzd8MjR8NTJ8MjF8NDl8NjR8N3w1OXwyM3w1MXwzNHw4fDE4fDE3fDcwfDI4fDQzfDEzfDR8MTV8NDV8Njh8NDR8NTh8MjZ8NTZ8MA==','RWpqZEw=','aUROSVo=','bWVqWms=','cUtqUFM=','TEZZeFI=','b1JibVY=','V0pEZlI=','5L2c6ICF77ya5Li05riK','dk
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("", `🔔${this.name}, 开始!`) } 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("@"), 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.d