123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- const CMD = {}
- const time_count = 250;
- const PROT = 9101
- var http = require('http');
- const redis_help = require('../src/use_redis');
- const origin_data_controllers = require('../src/data_manager/Controllers/origin_data_controllers');
- var recv_data_list = []
- const 视频id = 0;
- const 视频链接 = 1;
- const 标题 = 2;
- const 发布时间 = 3;
- const 收藏数 = 4;
- const 评论数 = 5;
- const 点赞数 = 6;
- const 分享数 = 7;
- const 是否挂件 = 8;
- const 挂件地址 = 9;
- let task_status = false
- function excelDateToJs(dateStr) {
- // const date = moment(dateStr, "DD/MM/YYYY HH:mm:ss").toDate();
- // return new Date(date);
- return new Date()
- }
- async function processTask(){
- try{
- if(recv_data_list.length>0){
- const xml = recv_data_list.pop();
- let guajian_link = ''
- guajian_link = xml[挂件地址]
- const result = await origin_data_controllers.getOriginData({video_id:xml[视频id]})
- if(result.success){
- await origin_data_controllers.updateOriginData({video_id:xml[视频id]},{kepp_num:xml[收藏数],comment_num:xml[评论数],like_num:xml[点赞数],shared_num:xml[分享数],guajian_link:guajian_link})
- }else{
- await origin_data_controllers.createOriginData(
- {
- video_id:xml[视频id],
- video_link:xml[视频链接],
- title:xml[标题],
- // publish_time:xml[发布时间],
- publish_time:excelDateToJs(xml[发布时间]),
- kepp_num:xml[收藏数],
- comment_num:xml[评论数],
- like_num:xml[点赞数],
- shared_num:xml[分享数],
- is_guajian:xml[是否挂件],
- guajian_link:guajian_link,
- status:0,
- }
- )
- }
- }else{
- task_status = false;
- }
- }catch(e){
- console.log("数据解析错误:",e)
- }finally{
- setTimeout(processTask,200)
- }
- }
- CMD.startTask = function(data){
- task_status = true;
- let temp_list = JSON.parse(data)
- for (let index = 1; index < temp_list.length; index++) {
- let isGuaJian = parseInt(temp_list[index][是否挂件])==1
- if(isGuaJian){
- recv_data_list.push(temp_list[index])
- }
- }
- console.log("temp_list.length:",temp_list.length)
- processTask()
- }
- CMD.init = function(){
- redis_help.connect(()=>{
- })
- }
- CMD.runTask = async function(){
-
- for (let index = 0; index < recv_data_list.length; index++) {
- const xml = recv_data_list[index];
-
- }
-
- }
- var server = http.createServer(function(req,res){
- res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有域的请求,注意:在生产环境中应该限制为特定的域
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); // 允许的方法
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // 允许的头部
-
- let body = '';
- // 监听数据块
- req.on('data', chunk => {
- body += chunk.toString(); // 将接收到的数据块转换为字符串并拼接
- });
- // 监听请求结束
- req.on('end', async () => {
- if (req.method === 'POST') {
- if (req.headers['content-type'] === 'application/x-www-form-urlencoded') {
- try {
- // 解析 JSON 数据
- const jsonData = JSON.parse(body);
- console.log("recv msg:",jsonData)
- if(jsonData['fun']=="start_filter"&&jsonData['cmd']=="filter_task"){
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(task_status==false){
- CMD.startTask(jsonData['data'])
- res.end(JSON.stringify({ msg: 'success!',code:10000,data:{}}));
- }else{
- res.end(JSON.stringify({ msg: '服务器繁忙!',code:10000,data:{}}));
- }
-
- }else{
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message: 'fun 错误',code:100}));
- }
- } catch (error) {
- // 处理解析错误
- console.error('Error parsing JSON:', error);
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ error: 'Invalid JSON' }));
- }
- } else {
- // 如果不是 JSON 内容类型,返回错误
- res.writeHead(200, {'Content-Type': 'text/plain'});
- res.end('Unsupported Media Type. Please send data as JSON.');
- }
- }else{
- res.writeHead(200, {'Content-Type': 'text/plain'});
- res.end(' Please Use Post.');
- }
-
- });
- })
- server.listen(PROT,()=>{
- });
- CMD.init()
|