parse_task.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. const CMD = {}
  2. const schedule = require('node-schedule');
  3. const redis_help = require('../src/use_redis');
  4. const tools = require('../tools');
  5. const HttpClient = require('../src/HttpClient');
  6. const helper = require('../src/helper');
  7. const { ms } = require('date-fns/locale');
  8. const moment = require('moment');
  9. async function notifyMsg(msg) {
  10. let content = ""
  11. if(msg.番茄免费.isFail){
  12. content+=`<font color=\"warning\">番茄免费:\nname:${msg.番茄免费.name},sid_tt:${msg.番茄免费.sid_tt}</font>\n>`
  13. }
  14. if(msg.番茄付费.isFail){
  15. content+=`<font color=\"warning\">番茄付费:\nname:${msg.番茄付费.name},sid_tt:${msg.番茄付费.sid_tt}</font>\n>`
  16. }
  17. if(msg.阅文.isFail){
  18. content+=`<font color=\"warning\">阅文:\nname:${msg.阅文.name},open_sessid:${msg.阅文.open_sessid}</font>\n>`
  19. }
  20. if(content==""){
  21. return
  22. }
  23. let client = tools.getOneNewClinet()
  24. let postData = {
  25. "msgtype": "markdown",
  26. "markdown": {
  27. "content": `${content}`
  28. }
  29. }
  30. let response = await client.post("https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=9f0de91d-8eb8-43f6-9901-a549e60a895b",postData)
  31. }
  32. CMD.test_fq_book_sid_tt = async function(book_id,sid_tt){
  33. try{
  34. let client =new HttpClient()
  35. let response = await client.proxyRequest( helper.getFqRequestOpt(book_id,sid_tt))
  36. // console.log("response:",response)
  37. if(response['code']!=0){
  38. return null
  39. }
  40. let obj = response['data']
  41. return obj['novel_data']
  42. }catch(e){
  43. // return {"error_book_id":book_id,"error_sid_tt":sid_tt}
  44. return null
  45. }
  46. }
  47. CMD.test_fq_mf_book_sid_tt = async function(book_id,sid_tt){
  48. try{
  49. let client =new HttpClient()
  50. let response = await client.proxyGet( helper.getMfFqRequestOpt(book_id,sid_tt))
  51. // console.log("response:",response)
  52. if(response['code']!=0){
  53. return null
  54. }
  55. let obj = response['data']
  56. return obj['book_info']
  57. }catch(e){
  58. // return {"error_book_id":book_id,"error_sid_tt":sid_tt}
  59. return null
  60. }
  61. }
  62. async function processTask(){
  63. let content = {
  64. "番茄免费":{
  65. "name":"",
  66. "sid_tt":"",
  67. "isFail":false,
  68. "book_id":""
  69. },
  70. "番茄付费":{
  71. "name":"",
  72. "sid_tt":"",
  73. "isFail":false,
  74. "book_id":""
  75. },
  76. "阅文":{
  77. "name":"",
  78. "open_sessid":"",
  79. "isFail":false,
  80. }
  81. }
  82. //1.番茄免费测试
  83. let list = await redis_help.getKeyValue("all_fq_mf_key")
  84. list = JSON.parse(list)
  85. for (let index = 0; index < list.length; index++) {
  86. let fq_mf_data = list[index];
  87. if(fq_mf_data.canUse==1){
  88. let book_info = await CMD.test_fq_mf_book_sid_tt("PI4RDBA5H7E",fq_mf_data.sid_tt)
  89. if(book_info==null){
  90. book_info = await CMD.test_fq_mf_book_sid_tt("PI4RDBA5H7E",fq_mf_data.sid_tt)
  91. if(book_info==null){
  92. console.log("番茄免费 fail!")
  93. content.番茄免费.name = fq_mf_data.name
  94. content.番茄免费.sid_tt = fq_mf_data.sid_tt
  95. content.番茄免费.isFail = true
  96. }else{
  97. content.番茄免费.book_id = book_info["book_id"]
  98. }
  99. }else{
  100. content.番茄免费.book_id = book_info["book_id"]
  101. }
  102. }
  103. }
  104. //2.番茄付费测试
  105. list = await redis_help.getKeyValue("all_fq_key")
  106. list = JSON.parse(list)
  107. for (let index = 0; index < list.length; index++) {
  108. let fq_data = list[index];
  109. if(fq_data.canUse==1){
  110. let book_info = await CMD.test_fq_book_sid_tt("PI43VGRHTX6",fq_data.sid_tt)
  111. if(book_info==null){
  112. book_info = await CMD.test_fq_book_sid_tt("PI43VGRHTX6",fq_data.sid_tt)
  113. if(book_info==null){
  114. console.log("番茄付费 fail!")
  115. content.番茄付费.name = fq_data.name
  116. content.番茄付费.sid_tt = fq_data.sid_tt
  117. content.番茄付费.isFail = true
  118. }else{
  119. content.番茄付费.book_id = book_info["book_id"]
  120. }
  121. }else{
  122. content.番茄付费.book_id = book_info["book_id"]
  123. }
  124. }
  125. }
  126. //3.阅文测试
  127. list = await redis_help.getKeyValue("all_yw_key")
  128. list = JSON.parse(list)
  129. let yw_data = list[0]
  130. const old_time = yw_data.create_time;
  131. const current_time = moment();
  132. const past_time = moment(old_time);
  133. // 计算时间差(小时)
  134. const diff_hours = current_time.diff(past_time, 'hours');
  135. // 判断是否小于7小时
  136. const isLessThan7Hours = diff_hours < 7;
  137. if(isLessThan7Hours){
  138. }else{
  139. console.log("阅文 fail!")
  140. //通知小小帅群消息
  141. content.阅文.name = yw_data.name
  142. content.阅文.open_sessid = yw_data.open_sessid
  143. content.阅文.isFail = true
  144. }
  145. console.log(content)
  146. await notifyMsg(content)
  147. }
  148. CMD.init = async function(){
  149. redis_help.connect(async (results)=>{
  150. if(results){
  151. // await processTask();
  152. const job = schedule.scheduleJob('0 * * * *', async function() {
  153. await processTask();
  154. });
  155. }
  156. })
  157. }
  158. CMD.init()