// èµèµ:é请ç `A1040276307` // 龿¥`http://html34.qukantoutiao.net/qpr2/bBmQ.html?pid=5eb14518` // åå¦å±±æ³ -> æç¹å¸ /******************** * 1ã ä¸ºäºæ¹ä¾¿ä»»æèæ¬å¯ä»¥æ¸ é¤Cookie, ä»»æä¸ä¸ªèæ¬å°DeleteCookie = trueä¸éæ©è¦æ¸ é¤çè´¦å·é½å¯ä»¥çæ * 2ã debug模å¼å¯ä»¥å¨Surge&&Qxä¸å¼å¯,æ¹ä¾¿ä½ å¤å®å¤ç¨æ·åèæ¬è¿è¡æ åµ * 3ã Qx==>dubug:miduRedeæé è¯·æ± * 4ã Surge==>debug:loadèæ¬->evalaute * 5ãèæ¬é»è®¤æ¯åå°æ¶éç¥ä¸æ¬¡,建议èªå·±å debugççæ¯å¦æå *********************/ // æ¯å¦å¼å¯æ¸ é¤Cookie const DeleteCookie = false // æ¸ é¤ææCookie,å°ä¸æ¹æ¹ä¸ºtrue,é»è®¤false // é忏 é¤æä½ const DeleteCookieAll = false // æ¸ é¤ææ const DeleteCookieOne = false // æ¸ é¤è´¦æ·ä¸ const DeleteCookieTwo = false // æ¸ é¤è´¦æ·äº const bind = true // ç»å®ä½è é请ç ,é»è®¤true,坿´æ¹ä¸ºfalse const cookieName = '米读' const senku = init() if (DeleteCookie) { const one = senku.getdata('tokenMidu_read') const two = senku.getdata('tokenMidu_sign') const three = senku.getdata('tokenMidu_read2') const four = senku.getdata('tokenMidu_sign2') if (DeleteCookieAll) { if (one || two || three || four) { senku.setdata("", 'senku_signbody_midu') senku.setdata("", 'senku_signbody_midu2') senku.setdata("", 'senku_readTimebody_midu') senku.setdata("", 'senku_readTimebody_midu2') senku.setdata("", 'senku_readTimeheader_midu') senku.setdata("", 'senku_readTimeheader_midu2') senku.setdata("", "tokenMidu_read") senku.setdata("", "tokenMidu_read2") senku.setdata("", "tokenMidu_sign") senku.setdata("", "tokenMidu_sign2") senku.msg("米读 Cookieæ¸ é¤æå !", "", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } else { senku.msg("米读 æ 坿¸ é¤çCookie !", "", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } } else if (DeleteCookieOne) { if (one || two) { senku.setdata("", 'senku_signbody_midu') senku.setdata("", 'senku_readTimebody_midu') senku.setdata("", 'senku_readTimeheader_midu') senku.setdata("", "tokenMidu_read") senku.setdata("", "tokenMidu_sign") senku.msg("米读 Cookieæ¸ é¤æå !", "æ¸ é¤è´¦æ·ä¸é项", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } else { senku.msg("米读 æ 坿¸ é¤çCookie !", "æ¸ é¤è´¦æ·ä¸é项", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } } else if (DeleteCookieTwo) { if (three || four) { senku.setdata("", 'senku_signbody_midu2') senku.setdata("", 'senku_readTimebody_midu2') senku.setdata("", 'senku_readTimeheader_midu2') senku.setdata("", "tokenMidu_read2") senku.setdata("", "tokenMidu_sign2") senku.msg("米读 Cookieæ¸ é¤æå !", "æ¸ é¤è´¦æ·äºé项", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } else { senku.msg("米读 æ 坿¸ é¤çCookie !", "æ¸ é¤è´¦æ·äºé项", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } } else { senku.msg("米读 æ¸ é¤Cookie !", "æªéåä»»ä½é项", '请æå¨å ³éèæ¬å "DeleteCookie"é项') } } function initial() { signinfo = { addnumList: [], rollList: [], doubleList: [] } } bind ? '' : senku.setdata('', 'bind') ; (sign = () => { senku.log(`ð ${cookieName}`) senku.getdata('tokenMidu_sign') ? '' : senku.msg('米读ç¾å°', '', 'ä¸åå¨Cookie') DualAccount = true if (senku.getdata('tokenMidu_sign')) { tokenVal = senku.getdata('tokenMidu_read') readTimeheaderVal = senku.getdata('senku_readTimeheader_midu') readTimebodyVal = senku.getdata('senku_readTimebody_midu') signbodyVal = senku.getdata('senku_signbody_midu') all() } })() async function all() { try { senku.log(`ð${signbodyVal}`) const headerVal = readTimeheaderVal const urlVal = readTimebodyVal const key = signbodyVal const token = tokenVal initial() await userInfo(key) await signDay(key) await signVideo(key) await dice_index(key) if (signinfo.dice_index && signinfo.dice_index.code == 0) { const remain_add_num = signinfo.dice_index.data.remain_add_chance_num for (let index = 0; index < remain_add_num; index++) { await dice_addnum(key) } await dice_index(key) const chance_num = signinfo.dice_index.data.chance_num for (let index = 0; index < chance_num; index++) { await dice_roll(key) await dice_double(key) } } if (senku.getdata('bind')) { await Bind() } await showmsg() senku.done() } catch (e) { senku.msg(cookieName, `失败`, `说æ: ${e}`) senku.log(`â ${cookieName} - 失败: ${e}`) senku.done() } } function double() { initial() DualAccount = false if (senku.getdata('tokenMidu_sign2')) { tokenVal = senku.getdata('tokenMidu_read2') readTimeheaderVal = senku.getdata('senku_readTimeheader_midu2') readTimebodyVal = senku.getdata('senku_readTimebody_midu2') signbodyVal = senku.getdata('senku_signbody_midu2') all() } } // ç»å® function Bind() { return new Promise((resolve, reject) => { const BindurlVal = 'http://fisson.1sapp.com/nlx/shareLink/tmpBind' const url = { url: BindurlVal, headers: {}, body: 'app_id=7&act_type=1&act_name=grad_pupil&invite_code=A1040276307&telephone=' + signinfo.userInfo.data.mobile } url.headers['Host'] = 'fisson.1sapp.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { senku.setdata('', 'bind') resolve() }) }) } // ç¨æ·ä¿¡æ¯ function userInfo(bodyVal) { return new Promise((resolve, reject) => { const userInfourlVal = 'https://apiwz.midukanshu.com/wz/user/getInfo?' + bodyVal const url = { url: userInfourlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} userInfo - response: ${JSON.stringify(response)}`) signinfo.userInfo = JSON.parse(data) resolve() } catch (e) { senku.msg(cookieName, `è·åç¨æ·ä¿¡æ¯: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} userInfo - è·åç¨æ·ä¿¡æ¯å¤±è´¥: ${e}`) senku.log(`â ${cookieName} userInfo - response: ${JSON.stringify(response)}`) resolve() } }) }) } // 骰åä¿¡æ¯ function dice_index(bodyVal) { return new Promise((resolve, reject) => { const dice_index_urlVal = 'https://apiwz.midukanshu.com/wz/dice/index?' + bodyVal const url = { url: dice_index_urlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} dice_index - response: ${JSON.stringify(response)}`) signinfo.dice_index = JSON.parse(data) resolve() } catch (e) { senku.msg(cookieName, `骰åä¿¡æ¯: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} dice_index - 骰åä¿¡æ¯å¤±è´¥: ${e}`) senku.log(`â ${cookieName} dice_index - response: ${JSON.stringify(response)}`) resolve() } }) }) } // æ·éª°å function dice_roll(bodyVal) { return new Promise((resolve, reject) => { const dice_roll_urlVal = 'https://apiwz.midukanshu.com/wz/dice/roll?' + bodyVal const url = { url: dice_roll_urlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} dice_roll - response: ${JSON.stringify(response)}`) if (JSON.parse(data).code == 0) { signinfo.rollList.push(JSON.parse(data)) } resolve() } catch (e) { senku.msg(cookieName, `æ·éª°å: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} dice_roll - æ·éª°å失败: ${e}`) senku.log(`â ${cookieName} dice_roll - response: ${JSON.stringify(response)}`) resolve() } }) }) } // 骰åååå¥å± function dice_double(bodyVal) { return new Promise((resolve, reject) => { const dice_double_urlVal = 'https://apiwz.midukanshu.com/wz/dice/doubleReward?' + bodyVal const url = { url: dice_double_urlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} dice_double - response: ${JSON.stringify(response)}`) if (JSON.parse(data).code == 0) { signinfo.doubleList.push(JSON.parse(data)) } resolve() } catch (e) { senku.msg(cookieName, `骰åååå¥å±: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} dice_double - 骰åååå¥å±å¤±è´¥: ${e}`) senku.log(`â ${cookieName} dice_double - response: ${JSON.stringify(response)}`) resolve() } }) }) } // è·åéª°åæ¬¡æ° function dice_addnum(bodyVal) { return new Promise((resolve, reject) => { const dice_addnum_urlVal = 'https://apiwz.midukanshu.com/wz/dice/addChangeNumByRewardVideo?' + bodyVal const url = { url: dice_addnum_urlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 miduapp qapp' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} dice_addnum - response: ${JSON.stringify(response)}`) if (JSON.parse(data).code == 0) { signinfo.addnumList.push(JSON.parse(data)) } resolve() } catch (e) { senku.msg(cookieName, `è·åéª°åæ¬¡æ°: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} dice_addnum - è·åéª°åæ¬¡æ°å¤±è´¥: ${e}`) senku.log(`â ${cookieName} dice_addnum - response: ${JSON.stringify(response)}`) resolve() } }) }) } // æ¯æ¥ç¾å° function signDay(bodyVal) { return new Promise((resolve, reject) => { const signurlVal = 'https://apiwz.midukanshu.com/wz/task/signInV2?' + bodyVal const url = { url: signurlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} signDay - response: ${JSON.stringify(response)}`) signinfo.signDay = JSON.parse(data) resolve() } catch (e) { senku.msg(cookieName, `ç¾å°ç»æ: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} signDay - ç¾å°å¤±è´¥: ${e}`) senku.log(`â ${cookieName} signDay - response: ${JSON.stringify(response)}`) resolve() } }) }) } // ç¾å°è§é¢å¥å± function signVideo(bodyVal) { return new Promise((resolve, reject) => { const signVideourlVal = 'https://apiwz.midukanshu.com/wz/task/signVideoReward?' + bodyVal const url = { url: signVideourlVal, headers: {} } url.headers['Host'] = 'apiwz.midukanshu.com' url.headers['Content-Type'] = 'application/x-www-form-urlencoded' url.headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' senku.post(url, (error, response, data) => { try { senku.log(`ðð¢ ${cookieName} signVideo - response: ${JSON.stringify(response)}`) signinfo.signVideo = JSON.parse(data) resolve() } catch (e) { senku.msg(cookieName, `ç¾å°è§é¢: 失败`, `说æ: ${e}`) senku.log(`â ${cookieName} signVideo - ç¾å°è§é¢å¤±è´¥: ${e}`) senku.log(`â ${cookieName} signVideo - response: ${JSON.stringify(response)}`) resolve() } }) }) } function showmsg() { return new Promise((resolve, reject) => { let subTitle = '' let detail = '' const name = signinfo.userInfo.data.nickname ? signinfo.userInfo.data.nickname : `æªè®¾ç½®æµç§°` // ç¾å°ä¿¡æ¯ if (signinfo.signDay && signinfo.signDay.code == 0) { if (signinfo.signDay.data) { const amount = signinfo.signDay.data.amount amount ? detail += `ãç¾å°å¥å±ãè·å¾${amount}ð°\n` : detail += `ãç¾å°å¥å±ãå·²è·åè¿å¥å±\n` } } else subTitle += 'ç¾å°:失败' if (signinfo.signVideo && signinfo.signVideo.code == 0) { const amount = signinfo.signVideo.data.amount amount ? detail += `ãç¾å°è§é¢ãè·å¾${amount}ð°\n` : detail += `ãç¾å°è§é¢ãå·²è·åè¿å¥å±\n` } else subTitle += 'ç¾å°è§é¢:失败' // 骰åä¿¡æ¯ // æ¬¡æ° if (signinfo.addnumList.length > 0) { detail += `ãéª°åæ¬¡æ°ãå¢å ${signinfo.addnumList.length}次\n` } else { detail += `ãéª°åæ¬¡æ°ãæ æ¬¡æ°å¢å \n` } // æ·éª°å if (signinfo.rollList.length > 0) { let i = 0 for (const roll of signinfo.rollList) { i += 1 roll.code == 0 ? detail += `ã骰åå¥å±ã第${i}次${roll.data.roll_coin}ð°\n` : detail += `ã骰åå¥å±ãå·²è·åè¿å¥å±\n` } } else { detail += `ã骰åå¥å±ãæ æ¬¡æ°æ·éª°å\n` } senku.msg(cookieName + ` ç¨æ·:${name}`, subTitle, detail) if (DualAccount) double() resolve() }) } function init() { isSurge = () => { return undefined === this.$httpClient ? false : true } isQuanX = () => { return undefined === this.$task ? false : true } getdata = (key) => { if (isSurge()) return $persistentStore.read(key) if (isQuanX()) return $prefs.valueForKey(key) } setdata = (key, val) => { if (isSurge()) return $persistentStore.write(key, val) if (isQuanX()) return $prefs.setValueForKey(key, val) } msg = (title, subtitle, body) => { if (isSurge()) $notification.post(title, subtitle, body) if (isQuanX()) $notify(title, subtitle, body) } log = (message) => console.log(message) get = (url, cb) => { if (isSurge()) { $httpClient.get(url, cb) } if (isQuanX()) { url.method = 'GET' $task.fetch(url).then((resp) => cb(null, resp, resp.body)) } } post = (url, cb) => { if (isSurge()) { $httpClient.post(url, cb) } if (isQuanX()) { url.method = 'POST' $task.fetch(url).then((resp) => cb(null, resp, resp.body)) } } done = (value = {}) => { $done(value) } return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } }