start_data.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. // const api = require('./src/api/api');
  2. // api.test()
  3. // const csv_data = require('./src/csv_data')
  4. // csv_data.loadData()
  5. var http = require('http');
  6. const url = require('url');
  7. const querystring = require('querystring');
  8. const sql_help = require('./src/use_mysql');
  9. const tools = require('./tools.js');
  10. tools.init()
  11. // const redis_help = require('./src/use_redis');
  12. var init_mysql = false
  13. var init_redis = false
  14. require('./src/config')
  15. global.config.initFinishAccount = function(){
  16. }
  17. global.config.initFinishFindApp = async function(task_id){
  18. const api = require('./src/api/api');
  19. api.createLink(JSON.parse(await redis_help.getKeyValue(task_id)))
  20. }
  21. // var jl_get_asset_list = require('./src/api/jl_get_asset_list')
  22. // jl_get_asset_list.send()
  23. function start_run_heiyan_and_create(param,call_back){
  24. let create_heiyan_book_link = require('./src/api/hy/create_heiyan_book_link')
  25. create_heiyan_book_link.send(param.book_id,param.book_name,(start_page,start_param, info)=>{
  26. call_back(start_page,start_param, info,param.id)
  27. })
  28. }
  29. function start_run_fanqie_and_create(param,call_back){
  30. let remark = param.app_page[0].new_remark
  31. let create_fanqie_book_link = require('./src/api/fq/create_fanqie_book_link')
  32. create_fanqie_book_link.send(param.book_id,1,remark,1,(start_page,start_param, info)=>{
  33. call_back(start_page,start_param, info,param.id)
  34. })
  35. }
  36. async function start_run_and_create(param,call_back){
  37. param.app_page = [
  38. {
  39. "id": 0,
  40. "link": "",
  41. "remark": "",
  42. "operate_type": "NEW",
  43. "start_page": "",
  44. "start_param": ""
  45. }
  46. ]
  47. if(param.channel_type=="fanqie"){
  48. let name = param.book_name +""
  49. param.app_page[0].remark = name.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, '')
  50. param.app_page[0].new_remark = name.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, '')
  51. start_run_fanqie_and_create(param,(start_page,start_param,info,id)=>{
  52. call_back(start_page,start_param, info,id)
  53. })
  54. }else if(param.channel_type=="heiyan"){
  55. param.app_page[0].remark = param.book_name
  56. param.app_page[0].new_remark = param.book_name + ""
  57. start_run_heiyan_and_create(param,(start_page,start_param,info,id)=>{
  58. call_back(start_page,start_param, info,id)
  59. })
  60. }
  61. }
  62. // sql_help.connect((results)=>{
  63. // if(results){
  64. // init_mysql = true
  65. // }
  66. // })
  67. // create table auto_book_link (
  68. // id int not null auto_increment COMMENT '唯一id',
  69. // book_name varchar(1024) DEFAULT "" COMMENT '小说名字',
  70. // book_id varchar(1024) DEFAULT "" COMMENT '书id',
  71. // type varchar(1024) DEFAULT "" COMMENT '类型',
  72. // info JSON COMMENT '详情',
  73. // primary key (id));
  74. async function recv(data){
  75. let cmd = data['cmd']
  76. if(cmd==null||cmd==undefined){
  77. return null
  78. }
  79. let post_param = data['param']
  80. if(post_param==null||post_param==undefined||init_mysql==false||init_redis==false){
  81. return null
  82. }
  83. if(cmd == "create_book_link"){
  84. let param = {}
  85. param.book_id = post_param['book_id']
  86. param.book_name = post_param['book_name']
  87. param.channel_type = post_param['channel_type']
  88. if(param.book_id==""||param.book_name==""||param.channel_type==""){
  89. return null
  90. }
  91. if(param.book_id!=undefined&&param.book_name!=undefined&&param.channel_type!=undefined){
  92. param.id = await redis_help.getNewId()
  93. // tsak_list[param.id] = param
  94. sql_help.isHaveBook(param.book_id,(isHave)=>{
  95. if(!isHave){
  96. start_run_and_create(param,(start_page,start_param, info,id)=>{
  97. let data = {start_page:start_page,start_param:start_param,info:info}
  98. sql_help.query('INSERT INTO auto_book_link SET ?', {book_name:param.book_name,book_id:param.book_id,type:param.channel_type,info:JSON.stringify(data,null,4)}, async ()=>{
  99. console.log("成功创建!")
  100. // let task_data = JSON.parse(await redis_help.getKeyValue(id))
  101. param.app_page[0].start_page = start_page
  102. param.app_page[0].start_param = start_param
  103. await redis_help.setKeyValue(param.id,JSON.stringify(param))
  104. var jl_get_app_list = require('./src/api/jl_get_app_list')
  105. jl_get_app_list.send(id)
  106. })
  107. })
  108. }else{
  109. console.log("已经存在这本书!")
  110. }
  111. })
  112. return {status:"OK"}
  113. }
  114. return null
  115. }
  116. return null
  117. }
  118. var server = http.createServer(function(req,res){
  119. res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有域的请求,注意:在生产环境中应该限制为特定的域
  120. res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); // 允许的方法
  121. res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // 允许的头部
  122. let body = '';
  123. // 监听数据块
  124. req.on('data', chunk => {
  125. body += chunk.toString(); // 将接收到的数据块转换为字符串并拼接
  126. });
  127. // 监听请求结束
  128. req.on('end', () => {
  129. if (req.method === 'POST') {
  130. if (req.headers['content-type'] === 'application/json') {
  131. try {
  132. // 解析 JSON 数据
  133. const jsonData = JSON.parse(body);
  134. // console.log('Received JSON data:', jsonData);
  135. let d = recv(jsonData)
  136. if(d==null){
  137. res.writeHead(200, {'Content-Type': 'application/json'});
  138. res.end(JSON.stringify({ message: '参数错误' ,data:null,code:100}));
  139. }else{
  140. // 发送响应
  141. res.writeHead(200, {'Content-Type': 'application/json'});
  142. res.end(JSON.stringify({ message: "",data:d,code:10000}));
  143. }
  144. } catch (error) {
  145. // 处理解析错误
  146. console.error('Error parsing JSON:', error);
  147. res.writeHead(200, {'Content-Type': 'application/json'});
  148. res.end(JSON.stringify({ error: 'Invalid JSON' }));
  149. }
  150. } else {
  151. // 如果不是 JSON 内容类型,返回错误
  152. res.writeHead(200, {'Content-Type': 'text/plain'});
  153. res.end('Unsupported Media Type. Please send data as JSON.');
  154. }
  155. }else{
  156. res.writeHead(200, {'Content-Type': 'text/plain'});
  157. res.end(' Please Use Post.');
  158. }
  159. });
  160. })
  161. // server.listen(9877,()=>{
  162. // });
  163. // redis_help.connect((results)=>{
  164. // if(results){
  165. // test()
  166. // init_redis = true
  167. // }
  168. // })
  169. async function test(){
  170. // let hy_search_book = require('./src/api/hy/hy_search_book')
  171. // hy_search_book.search_id("1856613738085793794")
  172. // let fq_search_book = require('./src/api/fq/fq_search_book')
  173. // fq_search_book.search_name("阴毒世子")
  174. // fq_search_book.search_id("7156137614049807396")
  175. }
  176. require('./src/1recv_data/recv_server.js')