/*ziye
æ¬äººgithubå°å https://github.com/ziye12/JavaScript
è½¬è½½è¯·å¤æ³¨ä¸ªååï¼è°¢è°¢
11.25 å¢å é
读æ¶é¿ä¸ä¼ ï¼é
读éå¸ï¼é
è¯»éæºéå¸
11.25 ä¿®å¤ç¿»åå®ç®±ä¸åæ¶é¢åçé®é¢.å¢å é
读éå¸å¤å®
11.25 ä¿®å¤é
读æ¶é¿é®é¢ï¼é
读éå¸é®é¢ï¼è¯·éæ°è·åæ¶é¿cookie
11.26 éæºéå¸åªæä¸æ¬¡ï¼æ
å»é¤ï¼è°æ´ä¿®å¤é
读éå¸é®é¢ï¼å¢å æ¶é¿ä¸ä¼ éå¶
11.26 å¢å é¢å卿¶é¿å¥å±
11.26 å¢å ç»æå½ä»¤
11.27 è°æ´éç¥ä¸ºï¼æåå¼å¯å®ç®±åéç¥
11.28 ä¿®å¤é误
12.1 è°æ´éç¥ä¸º15次å®ç®±éç¥ä¸æ¬¡
12.1 ä¼åéç¥
12.2 ä¿®å¤ä¼é¹
æ´æ°æå¡ä¸äºçé®é¢
â ï¸cookieè·åæ¹æ³ï¼
è¿ https://m.q.qq.com/a/s/d3eacc70120b9a37e46bad408c0c4c2a ç¹æç è·åcookie
è¿ä¸æ¬ä¹¦ ç 10ç§ä»¥ä¸ ç¶åéåºï¼è·åé
读æ¶é¿cookieï¼ç书ä¸å®ä¸è½è¶
è¿10ç§
å¯è½æäºé¡µé¢ä¼å¡ä½ï¼ä½æ¯è½è·åå°cookieï¼å注écookieéåå°±è¡äºï¼
â ï¸å®ç®±å¥å±ä¸º20åé䏿¬¡ï¼èªå·±æ ¹æ®æ
åµè®¾ç½®å®æ¶ï¼å»ºè®®è®¾ç½®11åé䏿¬¡
hostname=mqqapi.reader.qq.com
############## åx
#ä¼é¹
读书è·åcookie
https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js
#ä¼é¹
读书è·åæ¶é¿cookie
https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js
############## loon
//ä¼é¹
读书è·åcookie
http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js,requires-header=true, tag=ä¼é¹
读书è·åcookie
//ä¼é¹
读书è·åæ¶é¿cookie
http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js, requires-header=true, tag=ä¼é¹
读书è·åæ¶é¿cookie
############## surge
//ä¼é¹
读书è·åcookie
ä¼é¹
读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js, requires-header=true
//ä¼é¹
读书è·åæ¶é¿cookie
ä¼é¹
读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js, requires-header=true
*/
const jsname='ä¼é¹
读书'
const $ = Env(jsname)
console.log(`\n========= èæ¬æ§è¡æ¶é´(TM)ï¼${new Date(new Date().getTime() + 0 * 60 * 60 * 1000).toLocaleString('zh', {hour12: false})} =========\n`)
const logs = 0; //0为å
³éæ¥å¿ï¼1为å¼å¯
const notifyInterval=3
//0为å
³ééç¥ï¼1为ææéç¥ï¼2为å®ç®±é¢åæåéç¥ï¼3为å®ç®±æ¯15次éç¥ä¸æ¬¡
const jbid=1//æ¢å·åä¿®æ¹è¿ä¸ªå¼,é»è®¤è´¦å·1
const dd=1//忬¡ä»»å¡å»¶è¿,é»è®¤1ç§
const TIME=30//忬¡æ¶é¿ä¸ä¼ éå¶ï¼é»è®¤5åé
const maxtime=20//æ¯æ¥ä¸ä¼ æ¶é¿éå¶ï¼é»è®¤20å°æ¶
const wktimess=1200//å¨å¥å±é¢åæ åï¼é»è®¤1200åé
var tz=''
const qqreadurlKey = 'qqreadurl'+jbid
const qqreadurlVal = $.getdata(qqreadurlKey)
const qqreadheaderKey = 'qqreadhd'+jbid
const qqreadheaderVal= $.getdata(qqreadheaderKey)
const qqreadtimeurlKey = 'qqreadtimeurl'+jbid
const qqreadtimeurlVal = $.getdata(qqreadtimeurlKey)
const qqreadtimeheaderKey = 'qqreadtimehd'+jbid
const qqreadtimeheaderVal= $.getdata(qqreadtimeheaderKey)
//CKè¿è¡
let isGetCookie = typeof $request !== 'undefined'
if (isGetCookie) {
GetCookie()
} else {
all()
}
function GetCookie() {
if($request &&$request.url.indexOf("init")>=0) {
const qqreadurlVal = $request.url
if (qqreadurlVal) $.setdata(qqreadurlVal,qqreadurlKey)
$.log(`[${jsname}] è·åurl请æ±: æå,qqreadurlVal: ${qqreadurlVal}`)
const qqreadbodyVal = $request.body
if (qqreadbodyVal) $.setdata(qqreadbodyVal,qqreadbodyKey)
$.log(`[${jsname}] è·åé
读: æå,qqreadbodyVal: ${qqreadbodyVal}`)
const qqreadheaderVal = JSON.stringify($request.headers)
if (qqreadheaderVal) $.setdata(qqreadheaderVal,qqreadheaderKey)
$.log(`[${jsname}] è·åCookie: æå,qqreadheaderVal: ${qqreadheaderVal}`)
$.msg(qqreadheaderKey, `è·åcookie: æåð`, ``)
}
else if($request &&$request.url.indexOf("addReadTimeWithBid?")>=0) {
const qqreadtimeurlVal = $request.url
if (qqreadtimeurlVal) $.setdata(qqreadtimeurlVal,qqreadtimeurlKey)
$.log(`[${jsname}] è·åé
读æ¶é¿url: æå,qqreadtimeurlVal: ${qqreadtimeurlVal}`)
const qqreadtimeheaderVal = JSON.stringify($request.headers)
if (qqreadtimeheaderVal) $.setdata(qqreadtimeheaderVal,qqreadtimeheaderKey)
$.log(`[${jsname}] è·åæ¶é¿header: æå,qqreadtimeheaderVal: ${qqreadtimeheaderVal}`)
$.msg(qqreadtimeheaderKey, `è·åé
读æ¶é¿cookie: æåð`, ``)
}
}
function all()
{
for(var i=0;i<18;i++)
{ (function(i) {
setTimeout(function() {
if (i==0)
qqreadinfo();//ç¨æ·å
else if (i==1)
qqreadconfig();//æ¶é¿æ¥è¯¢
else if (i==2)
qqreadtask();//ä»»å¡å表
else if (i==3&&task.data.taskList[2].doneFlag==0)
qqreadsign();//éå¸ç¾å°
else if (i==4&&task.data.treasureBox.doneFlag==0)
qqreadbox();//å®ç®±
else if (i==5&&task.data.taskList[1].doneFlag==0)
qqreadssr1();//é
读éå¸1
else if (i==6&&config.data.pageParams.todayReadSeconds/3600<=maxtime)
qqreadtime();//ä¸ä¼ æ¶é¿
else if (i==7&&task.data.taskList[2].doneFlag==0)
qqreadtake();//é
è±ç¾å°
else if (i==8&&task.data.taskList[0].doneFlag==0)
qqreaddayread();//é
读任å¡
else if (i==9&&task.data.taskList[1].doneFlag==0)
qqreadssr2();//é
读éå¸2
else if (i==10&&task.data.taskList[3].doneFlag==0)
qqreadvideo();//è§é¢ä»»å¡
else if(i==11&&task.data.taskList[2].doneFlag==0)
qqreadsign2();//ç¾å°ç¿»å
else if (i==12&&task.data.treasureBox.videoDoneFlag==0)
qqreadbox2();//å®ç®±ç¿»å
else if (i==13&&task.data.taskList[1].doneFlag==0)
qqreadssr3();//é
读éå¸3
else if (i==14)
qqreadwktime();//卿¶é¿æ¥è¯¢
else if (i==15)
qqreadpick();//é¢å¨æ¶é¿å¥å±
else if (i==16)
showmsg();//éç¥
else if (i==17)
$.done();//ç»æ
}
, (i + 1) *dd*1000);
})(i)
}
}
//ä»»å¡å表
function qqreadtask() {
return new Promise((resolve, reject) => {
const toqqreadtaskurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadtaskurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, ä»»å¡å表: ${data}`)
task =JSON.parse(data)
tz+=
'ãç°éä½é¢ã:'+
(task.data.user.amount/10000).toFixed(2)+
'å
\n'+
'ã第'+
task.data.invite.issue+
'æã:æ¶é´'+
task.data.invite.dayRange+
'\n'+
' å·²é请'+
task.data.invite.inviteCount+
'人ï¼åé请'+
task.data.invite.nextInviteConfig.count+
'人è·å¾'+
task.data.invite.nextInviteConfig.amount+
'éå¸\n'+
'ã'+
task.data.taskList[0].title+
'ã:'+
task.data.taskList[0].amount+
'éå¸,'+
task.data.taskList[0].actionText+
'\n'+
'ã'+
task.data.taskList[1].title+
'ã:'+
task.data.taskList[1].amount+
'éå¸,'+
task.data.taskList[1].actionText+
'\n'+
'ã'+
task.data.taskList[2].title+
'ã:'+
task.data.taskList[2].amount+
'éå¸,'+
task.data.taskList[2].actionText+
'\n'+
'ã'+
task.data.taskList[3].title+
'ã:'+
task.data.taskList[3].amount+
'éå¸,'+
task.data.taskList[3].actionText+
'\n'+
'ãå®ç®±ä»»å¡'+
(task.data.treasureBox.count+1)+
'ã:'+
task.data.treasureBox.tipText+
'\n'+
'ã'+task.data.fans.title+
'ã:'+
task.data.fans.fansCount+
'个好å,'+
task.data.fans.todayAmount+
'éå¸\n'
resolve()
})
})
}
//ç¨æ·å
function qqreadinfo() {
return new Promise((resolve, reject) => {
const toqqreadinfourl = {
url: qqreadurlVal,
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadinfourl,(error, response, data) =>{
if(logs) $.log(`${jsname}, ç¨æ·å: ${data}`)
info =JSON.parse(data)
tz+=
'ãç¨æ·ä¿¡æ¯ã:'+info.data.user.nickName+'\n'
resolve()
})
})
}
//é
è±ç¾å°
function qqreadtake() {
return new Promise((resolve, reject) => {
const toqqreadtakeurl ={url: 'https://mqqapi.reader.qq.com/mqq/sign_in/user',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.post(toqqreadtakeurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, é
è±ç¾å°: ${data}`)
take =JSON.parse(data)
if (take.data.takeTicket>0)
{
tz+=
'ãé
è±ç¾å°ã:è·å¾'+take.data.takeTicket+'è±\n'
}
resolve()
})
})
}
//é
读æ¶é¿ä»»å¡
function qqreadconfig() {
return new Promise((resolve, reject) => {
const toqqreadconfigurl = {
url: 'https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=',
headers: JSON.parse(qqreadheaderVal),
};
$.get(toqqreadconfigurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, é
读æ¶é¿æ¥è¯¢: ${data}`)
config =JSON.parse(data)
if (config.code==0)
tz+='ãæ¶é¿æ¥è¯¢ã:仿¥é
读'+(config.data.pageParams.todayReadSeconds/60).toFixed(0)+'åé\n'
resolve()
})
})
}
//é
读æ¶é¿
function qqreadtime() {
return new Promise((resolve, reject) => {
const toqqreadtimeurl = {
url: qqreadtimeurlVal.replace(/readTime=/g, `readTime=${TIME}`),
headers: JSON.parse(qqreadtimeheaderVal),
};
$.get(toqqreadtimeurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, é
读æ¶é¿: ${data}`)
time =JSON.parse(data)
if (time.code==0)
tz+='ãé
读æ¶é¿ã:ä¸ä¼ '+TIME/6+'åé\n'
resolve()
})
})
}
//é
读éå¸1
function qqreadssr1() {
return new Promise((resolve, reject) => {
const toqqreadssr1url = {url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=30`,
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
if (config.data.pageParams.todayReadSeconds/60>=1){
$.get(toqqreadssr1url,(error, response, data) =>{
if(logs) $.log(`${jsname}, éå¸å¥å±1: ${data}`)
ssr1 =JSON.parse(data)
if (ssr1.data.amount>0)
tz+='ãé
读éå¸1ãè·å¾'+ssr1.data.amount+'éå¸\n'
resolve()
})
}
})
}
//é
读éå¸2
function qqreadssr2() {
return new Promise((resolve, reject) => {
const toqqreadssr2url = {url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=300`,
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
if (config.data.pageParams.todayReadSeconds/60>=5){
$.get(toqqreadssr2url,(error, response, data) =>{
if(logs) $.log(`${jsname}, éå¸å¥å±2: ${data}`)
ssr2 =JSON.parse(data)
if (ssr2.data.amount>0)
tz+='ãé
读éå¸2ãè·å¾'+ssr2.data.amount+'éå¸\n'
resolve()
})
}
})
}
//é
读éå¸3
function qqreadssr3() {
return new Promise((resolve, reject) => {
const toqqreadssr3url = {url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=1800`,
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
if (config.data.pageParams.todayReadSeconds/60>=30){
$.get(toqqreadssr3url,(error, response, data) =>{
if(logs) $.log(`${jsname}, éå¸å¥å±3: ${data}`)
ssr3 =JSON.parse(data)
if (ssr3.data.amount>0)
tz+='ãé
读éå¸3ãè·å¾'+ssr3.data.amount+'éå¸\n'
resolve()
})
}
})
}
//éå¸ç¾å°
function qqreadsign() {
return new Promise((resolve, reject) => {
const toqqreadsignurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadsignurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, éå¸ç¾å°: ${data}`)
sign =JSON.parse(data)
if (sign.data.videoDoneFlag)
{
tz+=
'ãéå¸ç¾å°ã:è·å¾'+sign.data.todayAmount+'éå¸\n'
}
resolve()
})
})
}
//éå¸ç¾å°ç¿»å
function qqreadsign2() {
return new Promise((resolve, reject) => {
const toqqreadsign2url ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadsign2url,(error, response, data) =>{
if(logs) $.log(`${jsname}, éå¸ç¾å°ç¿»å: ${data}`)
sign2 =JSON.parse(data)
if (sign2.code==0)
{
tz+=
'ãç¾å°ç¿»åã:è·å¾'+sign2.data.amount+'éå¸\n'
}
resolve()
})
})
}
//æ¯æ¥é
读
function qqreaddayread() {
return new Promise((resolve, reject) => {
const toqqreaddayreadurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreaddayreadurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, æ¯æ¥é
读: ${data}`)
dayread =JSON.parse(data)
if (dayread.code==0)
{
tz+=
'ãæ¯æ¥é
读ã:è·å¾'+dayread.data.amount+'éå¸\n'
}
resolve()
})
})
}
//è§é¢å¥å±
function qqreadvideo() {
return new Promise((resolve, reject) => {
const toqqreadvideourl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadvideourl,(error, response, data) =>{
if(logs) $.log(`${jsname}, è§é¢å¥å±: ${data}`)
video =JSON.parse(data)
if (video.code==0)
{
tz+=
'ãè§é¢å¥å±ã:è·å¾'+video.data.amount+'éå¸\n'
}
resolve()
})
})
}
//å®ç®±å¥å±
function qqreadbox() {
return new Promise((resolve, reject) => {
const toqqreadboxurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadboxurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, å®ç®±å¥å±: ${data}`)
box =JSON.parse(data)
if (box.data.count>=0)
{
tz+=
'ãå®ç®±å¥å±'+box.data.count+'ã:è·å¾'+box.data.amount+'éå¸\n'
}
resolve()
})
})
}
//å®ç®±å¥å±ç¿»å
function qqreadbox2() {
return new Promise((resolve, reject) => {
const toqqreadbox2url ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video',
headers: JSON.parse(qqreadheaderVal),
timeout:60000};
$.get(toqqreadbox2url,(error, response, data) =>{
if(logs) $.log(`${jsname}, å®ç®±å¥å±ç¿»å: ${data}`)
box2 =JSON.parse(data)
if (box2.code==0)
{
tz+=
'ãå®ç®±ç¿»åã:è·å¾'+box2.data.amount+'éå¸\n'
}
resolve()
})
})
}
//æ¬å¨é
读æ¶é¿
function qqreadwktime() {
return new Promise((resolve, reject) => {
const toqqreadwktimeurl = {
url: `https://mqqapi.reader.qq.com/mqq/v1/bookShelfInit`,
headers: JSON.parse(qqreadheaderVal),
};
$.get(toqqreadwktimeurl,(error, response, data) =>{
if(logs) $.log(`${jsname}, é
读æ¶é¿: ${data}`)
wktime =JSON.parse(data)
if (wktime.code==0)
tz+='ãæ¬å¨é
读æ¶é¿ã:'+wktime.data.readTime+'åé\n'
resolve()
})
})
}
//æ¬å¨é
读æ¶é¿å¥å±ä»»å¡
function qqreadpick() {
return new Promise((resolve, reject) => {
const toqqreadpickurl = {
url:`https://mqqapi.reader.qq.com/mqq/pickPackageInit`,
headers: JSON.parse(qqreadheaderVal),
};
if (wktime.data.readTime>=wktimess){
$.get(toqqreadpickurl,(error, response, data) =>{
if(logs) $.log(`${jsname},å¨é
读æ¶é¿å¥å±ä»»å¡: ${data}`)
pick =JSON.parse(data)
if (pick.data[7].isPick==true)
tz+='ã卿¶é¿å¥å±ã:å·²å
¨é¨é¢å\n'
for(let i=0;i