|
@@ -9,6 +9,11 @@ const config = require('../etc/config.json');
|
|
|
const HttpClient = require('../src/HttpClient');
|
|
|
const helper = require('../src/helper');
|
|
|
const tools = require('../tools');
|
|
|
+
|
|
|
+const mysql = require('mysql2/promise');
|
|
|
+const dbConfig = config.isDebug?config.debug_mysql:config.release_mysql
|
|
|
+const taskdbConfig = config.isDebug?config.debug_task_mysql:config.release_task_mysql
|
|
|
+
|
|
|
const time_count = 2000;
|
|
|
const task_queue = []
|
|
|
|
|
@@ -55,7 +60,7 @@ async function processTask(){
|
|
|
await CMD.update_filter_data(FilterConfig,result.data)
|
|
|
}else{
|
|
|
await filter_data_controllers.updateFilterData({id:result.data.id},{status:1,material_sync_status:2})
|
|
|
- task_queue.push({result:result})
|
|
|
+ // task_queue.push({result:result})
|
|
|
}
|
|
|
}
|
|
|
}catch(e){
|
|
@@ -69,78 +74,159 @@ async function processTask(){
|
|
|
|
|
|
}
|
|
|
|
|
|
-async function processCreateTask(){
|
|
|
- let result = null
|
|
|
+async function processNewCreateTask(){
|
|
|
+ let result = {
|
|
|
+ data:null
|
|
|
+ }
|
|
|
+ let connection = null
|
|
|
try{
|
|
|
- if(task_queue.length>0){
|
|
|
- let task_queue_item = task_queue.pop()
|
|
|
- result = task_queue_item.result
|
|
|
- let other_book = await other_book_controllers.getData({product_id:task_queue_item.result.data.book_id})
|
|
|
- if(other_book.success){
|
|
|
- await filter_data_controllers.updateFilterData({id:result.data.id},{status:2,book_id:other_book.data.product_id,book_name:other_book.data.product_name,material_sync_status:2})
|
|
|
- throw "处理了一条长篇或者筛选不要的书"
|
|
|
- }
|
|
|
- let product = await video_product_controllers.getProductData({ book_id: task_queue_item.result.data.book_id });
|
|
|
- let FilterConfig = await redis_help.getKeyValue("FilterConfig")
|
|
|
- FilterConfig = JSON.parse(FilterConfig)
|
|
|
- if(!product.success){
|
|
|
- let tg_platform_id = result.data.tg_platform_id
|
|
|
- if(tg_platform_id==config.platform_fanqiemf){
|
|
|
- let client = new HttpClient()
|
|
|
- let sid_tt = await tools.getFqMfSidtt()
|
|
|
- console.log("sid_tt:",sid_tt,result.data.book_id)
|
|
|
- let response = await client.proxyGet( helper.getMfFqRequestOpt(result.data.book_id,sid_tt))
|
|
|
- console.log("response:",response)
|
|
|
- let obj = response['data']
|
|
|
- if (Object.keys(obj['book_info']).length === 0) {
|
|
|
- result.data.words = 0
|
|
|
- result.data.genre = 999
|
|
|
- result.data.book_id = result.data.book_id
|
|
|
- result.data.book_name = "没有找到这本书"
|
|
|
- }else{
|
|
|
- let book_name = obj['book_info'].book_name
|
|
|
- let book_id = obj['book_info'].book_id
|
|
|
- let genre = CMD.getFqGenre(obj['book_info'].genre==undefined?"0":obj['book_info'].genre)
|
|
|
- let words = obj['book_info'].word_number==undefined?0:obj['book_info'].word_number
|
|
|
- let fq_book_data = {book_name:book_name,book_id:book_id,genre:genre,words:words,info:JSON.stringify(obj['novel_data'])}
|
|
|
- let fq_book = {}
|
|
|
- fq_book.key = result.data.book_id
|
|
|
- // console.log("response:",obj,sid_tt)
|
|
|
- await CMD.add_fq_book(fq_book,fq_book_data)
|
|
|
- let product_result = await video_product_controllers.getProductData({ book_id: fq_book_data.book_id });
|
|
|
- if(!product_result.success){ //如果书库也没有
|
|
|
- fq_book.tg_platform_id = result.data.tg_platform_id
|
|
|
-
|
|
|
- fq_book_data.tg_platform_id = result.data.tg_platform_id
|
|
|
- await CMD.insert_product(fq_book_data)
|
|
|
- }
|
|
|
- result.data.words = words
|
|
|
- result.data.genre = fq_book_data.genre
|
|
|
- result.data.book_id = fq_book_data.book_id
|
|
|
- result.data.book_name = fq_book_data.book_name
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+ connection = await mysql.createConnection({
|
|
|
+ ...dbConfig,
|
|
|
+ multipleStatements: true
|
|
|
+ });
|
|
|
+
|
|
|
+ // let create_day = helper.getLocalDate()
|
|
|
+
|
|
|
+ let sql = `SELECT * FROM filter_data WHERE tg_platform_id = ${config.platform_fanqiemf} AND status = 1 AND material_sync_status = 2 ORDER BY create_day DESC LIMIT 1`
|
|
|
+
|
|
|
+ const [row] = await connection.execute(sql)
|
|
|
+
|
|
|
+ if(row.length<=0){
|
|
|
+ throw 0
|
|
|
+ }
|
|
|
+
|
|
|
+ result.data = row[0]
|
|
|
+ let FilterConfig = await redis_help.getKeyValue("FilterConfig")
|
|
|
+ FilterConfig = JSON.parse(FilterConfig)
|
|
|
+ let tg_platform_id = result.data.tg_platform_id
|
|
|
+ if(tg_platform_id==config.platform_fanqiemf){
|
|
|
+ let client = new HttpClient()
|
|
|
+ let sid_tt = await tools.getFqMfSidtt()
|
|
|
+ console.log("sid_tt:",sid_tt,result.data.book_id)
|
|
|
+ let response = await client.proxyGet( helper.getMfFqRequestOpt(result.data.book_id,sid_tt))
|
|
|
+ console.log("response:",response)
|
|
|
+ let obj = response['data']
|
|
|
+ if (Object.keys(obj['book_info']).length === 0) {
|
|
|
+ result.data.words = 0
|
|
|
+ result.data.genre = 999
|
|
|
+ result.data.book_id = result.data.book_id
|
|
|
+ result.data.book_name = "没有找到这本书"
|
|
|
+ }else{
|
|
|
+ let book_name = obj['book_info'].book_name
|
|
|
+ let book_id = obj['book_info'].book_id
|
|
|
+ let genre = CMD.getFqGenre(obj['book_info'].genre==undefined?"0":obj['book_info'].genre)
|
|
|
+ let words = obj['book_info'].word_number==undefined?0:obj['book_info'].word_number
|
|
|
+ let fq_book_data = {book_name:book_name,book_id:book_id,genre:genre,words:words,info:JSON.stringify(obj['novel_data'])}
|
|
|
+ let fq_book = {}
|
|
|
+ fq_book.key = result.data.book_id
|
|
|
+ // console.log("response:",obj,sid_tt)
|
|
|
+ await CMD.add_fq_book(fq_book,fq_book_data)
|
|
|
+ let product_result = await video_product_controllers.getProductData({ book_id: fq_book_data.book_id });
|
|
|
+ if(!product_result.success){ //如果书库也没有
|
|
|
+ fq_book.tg_platform_id = result.data.tg_platform_id
|
|
|
+
|
|
|
+ fq_book_data.tg_platform_id = result.data.tg_platform_id
|
|
|
+ await CMD.insert_product(fq_book_data)
|
|
|
}
|
|
|
+ result.data.words = words
|
|
|
+ result.data.genre = fq_book_data.genre
|
|
|
+ result.data.book_id = fq_book_data.book_id
|
|
|
+ result.data.book_name = fq_book_data.book_name
|
|
|
}
|
|
|
- await CMD.update_filter_data(FilterConfig,result.data)
|
|
|
+
|
|
|
}
|
|
|
+ await CMD.update_filter_data(FilterConfig,result.data)
|
|
|
}catch(e){
|
|
|
- console.log("error::",e)
|
|
|
- // if(result!=null){
|
|
|
- // await filter_data_controllers.updateFilterData({id:result.data.id},{status:2})
|
|
|
- // }
|
|
|
- console.log("processCreateTask:",e)
|
|
|
+ if(e==0){
|
|
|
+ console.log("processCreateTask:没有需要处理的任务")
|
|
|
+ }else{
|
|
|
+ if(result.data!=null){
|
|
|
+ console.log("特殊错误::",e,result.data)
|
|
|
+ await filter_data_controllers.updateFilterData({id:result.data.id},{status:1,material_sync_status:3})
|
|
|
+ }
|
|
|
+ }
|
|
|
} finally{
|
|
|
- global.setTimeout(processCreateTask, time_count);
|
|
|
+ if(connection!=null){
|
|
|
+ connection.end()
|
|
|
+ }
|
|
|
+ global.setTimeout(processNewCreateTask, time_count);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+// async function processCreateTask(){
|
|
|
+// let result = null
|
|
|
+// try{
|
|
|
+// if(task_queue.length>0){
|
|
|
+// let task_queue_item = task_queue.pop()
|
|
|
+// result = task_queue_item.result
|
|
|
+// let other_book = await other_book_controllers.getData({product_id:task_queue_item.result.data.book_id})
|
|
|
+// if(other_book.success){
|
|
|
+// await filter_data_controllers.updateFilterData({id:result.data.id},{status:2,book_id:other_book.data.product_id,book_name:other_book.data.product_name,material_sync_status:2})
|
|
|
+// throw "处理了一条长篇或者筛选不要的书"
|
|
|
+// }
|
|
|
+// let product = await video_product_controllers.getProductData({ book_id: task_queue_item.result.data.book_id });
|
|
|
+// let FilterConfig = await redis_help.getKeyValue("FilterConfig")
|
|
|
+// FilterConfig = JSON.parse(FilterConfig)
|
|
|
+// if(!product.success){
|
|
|
+// let tg_platform_id = result.data.tg_platform_id
|
|
|
+// if(tg_platform_id==config.platform_fanqiemf){
|
|
|
+// let client = new HttpClient()
|
|
|
+// let sid_tt = await tools.getFqMfSidtt()
|
|
|
+// console.log("sid_tt:",sid_tt,result.data.book_id)
|
|
|
+// let response = await client.proxyGet( helper.getMfFqRequestOpt(result.data.book_id,sid_tt))
|
|
|
+// console.log("response:",response)
|
|
|
+// let obj = response['data']
|
|
|
+// if (Object.keys(obj['book_info']).length === 0) {
|
|
|
+// result.data.words = 0
|
|
|
+// result.data.genre = 999
|
|
|
+// result.data.book_id = result.data.book_id
|
|
|
+// result.data.book_name = "没有找到这本书"
|
|
|
+// }else{
|
|
|
+// let book_name = obj['book_info'].book_name
|
|
|
+// let book_id = obj['book_info'].book_id
|
|
|
+// let genre = CMD.getFqGenre(obj['book_info'].genre==undefined?"0":obj['book_info'].genre)
|
|
|
+// let words = obj['book_info'].word_number==undefined?0:obj['book_info'].word_number
|
|
|
+// let fq_book_data = {book_name:book_name,book_id:book_id,genre:genre,words:words,info:JSON.stringify(obj['novel_data'])}
|
|
|
+// let fq_book = {}
|
|
|
+// fq_book.key = result.data.book_id
|
|
|
+// // console.log("response:",obj,sid_tt)
|
|
|
+// await CMD.add_fq_book(fq_book,fq_book_data)
|
|
|
+// let product_result = await video_product_controllers.getProductData({ book_id: fq_book_data.book_id });
|
|
|
+// if(!product_result.success){ //如果书库也没有
|
|
|
+// fq_book.tg_platform_id = result.data.tg_platform_id
|
|
|
+
|
|
|
+// fq_book_data.tg_platform_id = result.data.tg_platform_id
|
|
|
+// await CMD.insert_product(fq_book_data)
|
|
|
+// }
|
|
|
+// result.data.words = words
|
|
|
+// result.data.genre = fq_book_data.genre
|
|
|
+// result.data.book_id = fq_book_data.book_id
|
|
|
+// result.data.book_name = fq_book_data.book_name
|
|
|
+// }
|
|
|
+
|
|
|
+// }
|
|
|
+// }
|
|
|
+// await CMD.update_filter_data(FilterConfig,result.data)
|
|
|
+// }
|
|
|
+// }catch(e){
|
|
|
+// console.log("error::",e)
|
|
|
+// // if(result!=null){
|
|
|
+// // await filter_data_controllers.updateFilterData({id:result.data.id},{status:2})
|
|
|
+// // }
|
|
|
+// console.log("processCreateTask:",e)
|
|
|
+// } finally{
|
|
|
+// global.setTimeout(processCreateTask, time_count);
|
|
|
+// }
|
|
|
+// }
|
|
|
CMD.init = async function(){
|
|
|
redis_help.connect((results)=>{
|
|
|
if(results){
|
|
|
}
|
|
|
})
|
|
|
processTask();
|
|
|
- processCreateTask();
|
|
|
+ // processCreateTask();
|
|
|
+ processNewCreateTask();
|
|
|
}
|
|
|
CMD.getFqGenre = function(genre){
|
|
|
if(genre=="0"){
|