@@ -11,31 +11,32 @@ boxjs链接 https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/zi
1111或者自行下载
1212
13132.19 制作
14+ 2.20 调整ck获取方式
1415
1516⚠️一共1个位置 1个ck 👉 1条 Secrets
1617多账号换行
1718
18- 第一步 添加 hostname=select6 .reader.qq.com,
19+ 第一步 添加 hostname=iostgw6 .reader.qq.com,
1920
20- 第二步 添加header重写
21- 登录QQ阅读APP 点击 我的 获取header
21+ 第二步 添加url重写
22+ 登录QQ阅读APP 获取url
2223
23- QQreadheaderVal 👉QQ_QQreadHEADER
24+ QQreadurlVal 👉QQ_QQreadURL
2425
2526⚠️主机名以及重写👇
26- hostname=select6 .reader.qq.com,
27+ hostname=iostgw6 .reader.qq.com,
2728
2829############## 圈x
29- #QQ阅读APP获取header
30- https:\/\/select6 \.reader\.qq\.com\/* url script-request-header https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/QQread.js
30+ #QQ阅读APP获取url
31+ https:\/\/iostgw6 \.reader\.qq\.com\/* url script-request-header https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/QQread.js
3132
3233############## loon
33- #QQ阅读APP获取header
34- http-request https:\/\/select6 \.reader\.qq\.com\/* script-path=https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/QQread.js, requires-header=true, tag=QQ阅读APP获取header
34+ #QQ阅读APP获取url
35+ http-request https:\/\/iostgw6 \.reader\.qq\.com\/* script-path=https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/QQread.js, requires-header=true, tag=QQ阅读APP获取url
3536
3637############## surge
37- #QQ阅读APP获取header
38- QQ阅读APP获取header = type=http-request,pattern=https:\/\/select6 \.reader\.qq\.com\/*,script-path=https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/QQread.js
38+ #QQ阅读APP获取url
39+ QQ阅读APP获取url = type=http-request,pattern=https:\/\/iostgw6 \.reader\.qq\.com\/*,script-path=https://raw.githubusercontent.com/ziye66666/JavaScript/main/Task/QQread.js
3940
4041*/
4142const $ = Env ( "QQ阅读APP" ) ;
@@ -47,62 +48,63 @@ const notifyttt = 1 // 0为关闭外部推送,1为12 23 点外部推送
4748const notifyInterval = 2 ; // 0为关闭通知,1为所有通知,2为12 23 点通知 , 3为 6 12 18 23 点通知
4849$ . message = '' , COOKIES_SPLIT = '' , CASH = '' , ddtime = '' ;
4950
50- const QQreadheaderArr = [ ] ;
51- let QQreadheaderVal = `` ;
52- let middleQQreadHEADER = [ ] ;
51+ const QQreadurlArr = [ ] ;
52+ let QQreadurlVal = `` ;
53+ let middleQQreadURL = [ ] ;
5354
54- if ( $ . isNode ( ) && process . env . QQ_QQreadHEADER ) {
55+
56+ if ( $ . isNode ( ) && process . env . QQ_QQreadURL ) {
5557 COOKIES_SPLIT = process . env . COOKIES_SPLIT || "\n" ;
5658 console . log (
5759 `============ cookies分隔符为:${ JSON . stringify (
5860 COOKIES_SPLIT
5961 ) } =============\n`
6062 ) ;
6163 if (
62- process . env . QQ_QQreadHEADER &&
63- process . env . QQ_QQreadHEADER . indexOf ( COOKIES_SPLIT ) > - 1
64+ process . env . QQ_QQreadURL &&
65+ process . env . QQ_QQreadURL . indexOf ( COOKIES_SPLIT ) > - 1
6466 ) {
65- middleQQreadHEADER = process . env . QQ_QQreadHEADER . split ( COOKIES_SPLIT ) ;
67+ middleQQreadURL = process . env . QQ_QQreadURL . split ( COOKIES_SPLIT ) ;
6668 } else {
67- middleQQreadHEADER = process . env . QQ_QQreadHEADER . split ( ) ;
69+ middleQQreadURL = process . env . QQ_QQreadURL . split ( ) ;
6870 }
6971}
70- if ( COOKIE . QQreadheaderVal ) {
72+ if ( COOKIE . QQreadurlVal ) {
7173 QQ_COOKIES = {
72- "QQreadheaderVal " : COOKIE . QQreadheaderVal . split ( '\n' ) ,
74+ "QQreadurlVal " : COOKIE . QQreadurlVal . split ( '\n' ) ,
7375 }
74- Length = QQ_COOKIES . QQreadheaderVal . length ;
76+ Length = QQ_COOKIES . QQreadurlVal . length ;
7577}
76- if ( ! COOKIE . QQreadheaderVal ) {
78+ if ( ! COOKIE . QQreadurlVal ) {
7779 if ( $ . isNode ( ) ) {
78- Object . keys ( middleQQreadHEADER ) . forEach ( ( item ) => {
79- if ( middleQQreadHEADER [ item ] ) {
80- QQreadheaderArr . push ( middleQQreadHEADER [ item ] ) ;
80+ Object . keys ( middleQQreadURL ) . forEach ( ( item ) => {
81+ if ( middleQQreadURL [ item ] ) {
82+ QQreadurlArr . push ( middleQQreadURL [ item ] ) ;
8183 }
8284 } ) ;
8385 } else {
84- QQreadheaderArr . push ( $ . getdata ( "QQreadheader " ) ) ;
86+ QQreadurlArr . push ( $ . getdata ( "QQreadurl " ) ) ;
8587 // 根据boxjs中设置的额外账号数,添加存在的账号数据进行任务处理
8688 let QQreadCount = ( $ . getval ( 'QQreadCount' ) || '1' ) - 0 ;
8789 for ( let i = 2 ; i <= QQreadCount ; i ++ ) {
88- if ( $ . getdata ( `QQreadheader ${ i } ` ) ) {
89- QQreadheaderArr . push ( $ . getdata ( `QQreadheader ${ i } ` ) ) ;
90+ if ( $ . getdata ( `QQreadurl ${ i } ` ) ) {
91+ QQreadurlArr . push ( $ . getdata ( `QQreadurl ${ i } ` ) ) ;
9092 }
9193 }
9294 }
93- if ( QQreadheaderArr == '' ) {
95+ if ( QQreadurlArr == '' ) {
9496 Length = 0
95- } else Length = QQreadheaderArr . length
97+ } else Length = QQreadurlArr . length
9698}
9799
98100function GetCookie ( ) {
99- if ( $request && $request . url . indexOf ( "selectRecInfostream " ) >= 0 ) {
100- const QQreadheaderVal = JSON . stringify ( $request . headers ) ;
101- if ( QQreadheaderVal ) $ . setdata ( QQreadheaderVal , "QQreadheader " + $ . idx ) ;
101+ if ( $request && $request . url . indexOf ( "ywkey" ) >= 0 && $request . url . indexOf ( "ywguid ") >= 0 ) {
102+ const QQreadurlVal = JSON . stringify ( $request . urls ) ;
103+ if ( QQreadurlVal ) $ . setdata ( QQreadurlVal , "QQreadurl " + $ . idx ) ;
102104 $ . log (
103- `[${ $ . name + $ . idx } ] 获取QQreadheaderVal ✅: 成功,QQreadheaderVal : ${ QQreadheaderVal } `
105+ `[${ $ . name + $ . idx } ] 获取QQreadurlVal ✅: 成功,QQreadurlVal : ${ QQreadurlVal } `
104106 ) ;
105- $ . msg ( $ . name + $ . idx , `获取QQreadheaderVal : 成功🎉` , `` ) ;
107+ $ . msg ( $ . name + $ . idx , `获取QQreadurlVal : 成功🎉` , `` ) ;
106108 }
107109}
108110console . log (
@@ -168,27 +170,28 @@ function time(inputTime) {
168170 return Y + M + D + h + m + s ;
169171} ;
170172
171-
173+ //随机udid 大写
172174
173175function udid ( ) {
174- var s = [ ] ;
175- var hexDigits = "0123456789ABCDEF" ;
176- for ( var i = 0 ; i < 36 ; i ++ ) {
177- s [ i ] = hexDigits . substr ( Math . floor ( Math . random ( ) * 0x10 ) , 1 ) ;
178- }
179- s [ 14 ] = "4" ; // bits 12-15 of the time_hi_and_version field to 0010
180- s [ 19 ] = hexDigits . substr ( ( s [ 19 ] & 0x3 ) | 0x8 , 1 ) ; // bits 6-7 of the clock_seq_hi_and_reserved to 01
181- s [ 8 ] = s [ 13 ] = s [ 18 ] = s [ 23 ] = "-" ;
176+ var s = [ ] ;
177+ var hexDigits = "0123456789ABCDEF" ;
178+ for ( var i = 0 ; i < 36 ; i ++ ) {
179+ s [ i ] = hexDigits . substr ( Math . floor ( Math . random ( ) * 0x10 ) , 1 ) ;
180+ }
181+ s [ 14 ] = "4" ; // bits 12-15 of the time_hi_and_version field to 0010
182+ s [ 19 ] = hexDigits . substr ( ( s [ 19 ] & 0x3 ) | 0x8 , 1 ) ; // bits 6-7 of the clock_seq_hi_and_reserved to 01
183+ s [ 8 ] = s [ 13 ] = s [ 18 ] = s [ 23 ] = "-" ;
182184
183- var uuid = s . join ( "" ) ;
184- return uuid ;
185+ var uuid = s . join ( "" ) ;
186+ return uuid ;
185187}
186188
189+ //随机udid 小写
187190function udid2 ( ) {
188- function S4 ( ) {
189- return ( ( ( 1 + Math . random ( ) ) * 0x10000 ) | 0 ) . toString ( 16 ) . substring ( 1 ) ;
190- }
191- return ( S4 ( ) + S4 ( ) + "-" + S4 ( ) + "-" + S4 ( ) + "-" + S4 ( ) + "-" + S4 ( ) + S4 ( ) + S4 ( ) ) ;
191+ function S4 ( ) {
192+ return ( ( ( 1 + Math . random ( ) ) * 0x10000 ) | 0 ) . toString ( 16 ) . substring ( 1 ) ;
193+ }
194+ return ( S4 ( ) + S4 ( ) + "-" + S4 ( ) + "-" + S4 ( ) + "-" + S4 ( ) + "-" + S4 ( ) + S4 ( ) + S4 ( ) ) ;
192195}
193196
194197
@@ -221,21 +224,53 @@ async function all() {
221224 $ . done ( ) ;
222225 }
223226 for ( let i = 0 ; i < Length ; i ++ ) {
224- if ( COOKIE . QQreadheaderVal ) {
225- QQreadheaderVal = QQ_COOKIES . QQreadheaderVal [ i ] ;
227+ if ( COOKIE . QQreadurlVal ) {
228+ QQreadurlVal = QQ_COOKIES . QQreadurlVal [ i ] ;
226229 }
227- if ( ! COOKIE . QQreadheaderVal ) {
228- QQreadheaderVal = QQreadheaderArr [ i ] ;
230+ if ( ! COOKIE . QQreadurlVal ) {
231+ QQreadurlVal = QQreadurlArr [ i ] ;
229232 }
230233
234+ ywkey = QQreadurlVal . split ( '&' ) [ 0 ] . split ( '=' ) [ 1 ]
235+ ywguid = QQreadurlVal . split ( '&' ) [ 1 ] . split ( '=' ) [ 1 ]
236+ usid = QQreadurlVal . split ( '&' ) [ 2 ] . split ( '=' ) [ 1 ]
231237
232- IDFA = JSON . parse ( QQreadheaderVal ) . IDFA
233- qimei = JSON . parse ( QQreadheaderVal ) . qimei
234- headerss = QQreadheaderVal . replace ( `${ IDFA } ` , `${ udid ( ) } ` ) . replace ( `${ qimei } ` , `${ udid2 ( ) } ` )
238+ QQreadheaderVal = {
239+ "Accept" : "*/*" ,
240+ "qrem" : "0" ,
241+ "qrtm" : `${ ts ( ) } ` ,
242+ "ua" : "" ,
243+ "rcmd" : "1" ,
244+ "Accept-Encoding" : "gzip" ,
245+ "net_type" : "1" ,
246+ "platform" : "ioswp" ,
247+ "youngerMode" : "0" ,
248+ "usid" : `${ usid } ` ,
249+ "loginType" : "2" ,
250+ "text_type" : "1" ,
251+ "version" : "qqreader_7.5.70.0354_iphone" ,
252+ "Accept-Language" : "zh-cn" ,
253+ "User-Agent" : "QQReaderUI/2558 CFNetwork/1206 Darwin/20.1.0" ,
254+ "ywkey" : `${ ywkey } ` ,
255+ "qimei" : "" ,
256+ "auditStatus" : "0" ,
257+ "Host" : "iostgw6.reader.qq.com" ,
258+ "ywguid" : `${ ywguid } ` ,
259+ "Cache-Control" : "no-cache" ,
260+ "server_sex" : "1" ,
261+ "themeid" : "2000" ,
262+ "Connection" : "keep-alive" ,
263+ "IDFA" : "" ,
264+ "nosid" : "1" ,
265+ "gselect" : "-1" ,
266+ }
235267
268+ QQreadheaderVal . IDFA = udid ( )
269+ QQreadheaderVal . qimei = udid2 ( )
236270 O = ( `${ $ . name + ( i + 1 ) } 🔔` ) ;
237- await console . log ( `-------------------------\n\n🔔开始运行${ $ . name + ( i + 1 ) } 【${ $ . name + ( i + 1 ) } 】` )
271+ await console . log ( `-------------------------\n\n🔔开始运行【${ $ . name + ( i + 1 ) } 】` )
238272 await user ( ) ; //用户信息
273+ QQreadheaderVal . Host = 'eventv36.reader.qq.com'
239274 await signindex ( ) ; //签到列表
240275 await days ( ) ; //任务列表
241276 if ( $ . signindex && $ . signindex . data . finished == false ) {
@@ -274,19 +309,18 @@ function msgShow() {
274309function user ( timeout = 0 ) {
275310 return new Promise ( ( resolve ) => {
276311 setTimeout ( ( ) => {
277- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `commontgw6.reader.qq.com` )
278-
279312 let url = {
280- url : `https://commontgw6.reader.qq.com/v7_5_7/nativepage/getAcctInfo` ,
281- headers : JSON . parse ( header ) ,
313+ url : QQreadurlVal ,
314+ headers : QQreadheaderVal ,
315+
282316 }
283317 $ . get ( url , async ( err , resp , data ) => {
284318 try {
285319 if ( logs ) $ . log ( `${ O } , 用户信息🚩: ${ data } ` ) ;
286320 $ . user = JSON . parse ( data ) ;
287- if ( $ . user . nick ) {
288- console . log ( `\n${ O } \n========== 【${ $ . user . nick } 】 ==========\n` ) ;
289- $ . message += `\n${ O } \n========== 【${ $ . user . nick } 】 ==========\n` ;
321+ if ( $ . user . code == 0 ) {
322+ console . log ( `\n${ O } \n========== 【${ $ . user . nickname } 】 ==========\n` ) ;
323+ $ . message += `\n${ O } \n========== 【${ $ . user . nickname } 】 ==========\n` ;
290324 }
291325 } catch ( e ) {
292326 $ . logErr ( e , resp ) ;
@@ -301,10 +335,9 @@ function user(timeout = 0) {
301335function days ( timeout = 0 ) {
302336 return new Promise ( ( resolve ) => {
303337 setTimeout ( ( ) => {
304- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `eventv36.reader.qq.com` )
305338 let url = {
306339 url : `https://eventv36.reader.qq.com/activity/pkg11955/initV4` ,
307- headers : JSON . parse ( header ) ,
340+ headers : QQreadheaderVal ,
308341 }
309342 $ . get ( url , async ( err , resp , data ) => {
310343 try {
@@ -327,10 +360,9 @@ function days(timeout = 0) {
327360function signindex ( timeout = 0 ) {
328361 return new Promise ( ( resolve ) => {
329362 setTimeout ( ( ) => {
330- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `eventv36.reader.qq.com` )
331363 let url = {
332364 url : `https://eventv36.reader.qq.com/activity/pkg11955/queryPunchCardStatus` ,
333- headers : JSON . parse ( header ) ,
365+ headers : QQreadheaderVal ,
334366 }
335367 $ . get ( url , async ( err , resp , data ) => {
336368 try {
@@ -353,10 +385,9 @@ function signindex(timeout = 0) {
353385function sign ( timeout = 0 ) {
354386 return new Promise ( ( resolve ) => {
355387 setTimeout ( ( ) => {
356- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `eventv36.reader.qq.com` )
357388 let url = {
358389 url : `https://eventv36.reader.qq.com/activity/pkg11955/punchCard_v2` ,
359- headers : JSON . parse ( header ) ,
390+ headers : QQreadheaderVal ,
360391 }
361392 $ . post ( url , async ( err , resp , data ) => {
362393 try {
@@ -383,10 +414,9 @@ function sign(timeout = 0) {
383414function video ( timeout = 0 ) {
384415 return new Promise ( ( resolve ) => {
385416 setTimeout ( ( ) => {
386- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `eventv36.reader.qq.com` )
387417 let url = {
388418 url : `https://eventv36.reader.qq.com/activity/pkg11955/watchVideo` ,
389- headers : JSON . parse ( header ) ,
419+ headers : QQreadheaderVal ,
390420 }
391421 $ . get ( url , async ( err , resp , data ) => {
392422 try {
@@ -409,10 +439,9 @@ function video(timeout = 0) {
409439function extrabox ( timeout = 0 ) {
410440 return new Promise ( ( resolve ) => {
411441 setTimeout ( ( ) => {
412- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `eventv36.reader.qq.com` )
413442 let url = {
414443 url : `https://eventv36.reader.qq.com/activity/pkg11955/queryOpenBoxInfo` ,
415- headers : JSON . parse ( header ) ,
444+ headers : QQreadheaderVal ,
416445 }
417446 $ . get ( url , async ( err , resp , data ) => {
418447 try {
@@ -435,10 +464,9 @@ function extrabox(timeout = 0) {
435464function boxaward ( timeout = 0 ) {
436465 return new Promise ( ( resolve ) => {
437466 setTimeout ( ( ) => {
438- header = headerss . replace ( / s e l e c t 6 .r e a d e r .q q .c o m / g, `eventv36.reader.qq.com` )
439467 let url = {
440468 url : `https://eventv36.reader.qq.com/activity/pkg11955/openBox` ,
441- headers : JSON . parse ( header ) ,
469+ headers : QQreadheaderVal ,
442470 }
443471 $ . get ( url , async ( err , resp , data ) => {
444472 try {
0 commit comments