123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519 |
- const CMD = {}
- const time_count = 250;
- const PROT = 9106
- var http = require('http');
- const axios = require('axios')
- const redis_help = require('../src/use_redis');
- const origin_data_controllers = require('../src/data_manager/Controllers/origin_data_controllers');
- const helper = require('../src/helper');
- const HttpClient = require('../src/HttpClient')
- const config = require('../etc/config.json');
- const tools = require('../tools');
- 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.getOriginDataById({video_id:xml[视频id]})
- if(result.success){
- await origin_data_controllers.updateOriginData({id:result.data.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{
- global.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.get_fq_callback_template = async function(res,distributor_id) {
- let data = await require('../src/api/fq/get_fq_call_back_template').get_callback_template(distributor_id)
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(data==null){
- res.end(JSON.stringify({ message:"成功!",data:{},code:10000}));
- }else{
- console.log('get_fq_callback_template:', data);
- res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
- }
- }
- CMD.get_fq_rechargeTemplate = function(res,distributor_id){
- // var distributorId = config.fanqie_config.distributorId;
- var distributorId = distributor_id
- var secretKey = config.fanqie_config.secretKey;
- const postData = {
- distributor_id: distributorId,
- ts: helper.getCurrentUnixTimestamp(),
- sign: helper.getSign(distributorId,secretKey),
- page_size: 100,
- page_index:0,
- };
- // console.log("get_recharge_template:")
- var url = config.fanqie_config.recharge_list_host
- var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}`
- var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
- axios.get(`${url}${base_params}${other_params}`)
- .then(response => {
- // console.log('Response data:', response.data );
- let data = response.data
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(data.code==200){
- let list = data.data
- res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
- }else{
- res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
- }
- console.log("get_fq_rechargeTemplate:",data)
- })
- .catch(error => {
- console.error('Error:', error);
- res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
- });
- }
- // 应用业务类型。枚举值,提供该字段则只返回对应业务类型分包列表
- // - 快应用 = 1
- // - 微信h5 = 3
- // - 微信短剧 = 4
- // - 抖音短剧 = 7
- // - 抖小网文 = 8
- // - 微小网文 = 12
- CMD.get_fq_package_list = function(res,distributorId,app_type){
- var secretKey = config.fanqie_config.secretKey;
- const postData = {
- distributor_id: distributorId,
- ts: helper.getCurrentUnixTimestamp(),
- sign: helper.getSign(distributorId,secretKey),
- page_size: 50,
- page_index:0,
- app_type:app_type
- };
- var url = config.fanqie_config.get_fq_package_list
- var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&app_type=${postData.app_type}`
- var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
- console.log("url:",`${url}${base_params}${other_params}`)
- axios.get(`${url}${base_params}${other_params}`)
- .then(response => {
- // console.log('Response data:', response.data );
- let data = response.data
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(data.code==200){
- res.end(JSON.stringify({ message:"成功!",data:data.package_info_open_list,code:10000}));
- }else{
- res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
- }
- console.log("get_fq_package_list:",data)
- })
- .catch(error => {
- console.error('Error:', error);
- res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
- });
- }
- CMD.get_fq_bound_package_list = function(res,distributorId,app_id){
- var secretKey = config.fanqie_config.secretKey;
- const postData = {
- distributor_id: distributorId,
- ts: helper.getCurrentUnixTimestamp(),
- sign: helper.getSign(distributorId,secretKey),
- page_size: 50,
- page_index:0,
- app_id:app_id
- };
- var url = config.fanqie_config.get_bound_package_list
- var base_params = `/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&app_id=${postData.app_id}`
- var other_params = `&page_size=${postData.page_size}&page_index=${postData.page_index}`
- console.log("url:",`${url}${base_params}${other_params}`)
- axios.get(`${url}${base_params}${other_params}`)
- .then(response => {
- // console.log('Response data:', response.data );
- let data = response.data
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(data.code==200){
- res.end(JSON.stringify({ message:"成功!",data:data.wx_package_info_open_list,code:10000}));
- }else{
- res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
- }
- console.log("get_fq_bound_package_list:",data)
- })
- .catch(error => {
- console.error('Error:', error);
- res.end(JSON.stringify({ message:"fail!",data:data,code:data.code}));
- });
- }
- CMD.test_fq_book_sid_tt = async function(book_id,sid_tt){
- try{
- let client =new HttpClient()
- let {url,params,headers} = helper.getFqRequestOpt(book_id,sid_tt)
- let response = await client.fqProxyGet(url, params,headers)
- console.log("response:",response.data)
- let obj = response['data']
- return obj['video_info']
- // console.log("url:",url)
- // console.log("params:",params)
- // console.log("headers:",headers)
- // axios.get(url, {
- // params: params,
- // headers: headers
- // })
- // .then(response => {
- // console.log(response.data);
- // })
- // .catch(error => {
- // console.error('Error:', error);
- // });
- }catch(e){
- console.log("test_fq_book_sid_tt:error:",e)
- // return {"error_book_id":book_id,"error_sid_tt":sid_tt}
- return null
- }
- }
- CMD.get_fq_ji_jiang_xia_jia = async function(res) {
- try{
- let response = await require("../src/api/fq/fq_search_book").new_search_ji_jiang_xia_jia()
- console.log("response:",response)
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(response.code==0){
- res.end(JSON.stringify({ message:"成功!",data:response.data.data,code:10000}));
- }else{
- res.end(JSON.stringify({ message:"fail!",data:response,code:response.code}));
- }
- }catch(e){
- console.error('Error:', error);
- res.end(JSON.stringify({ message:"fail!",data:null,code:response.code}));
- }
- }
- CMD.get_pull_token = async function(res){
- let token = await redis_help.getKeyValue("pull_data_token")
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:{token:token},code:10000}));
- console.log('get_pull_token:', token);
- }
- CMD.get_detail = async function(res,token,list) {
- const response = await axios.post("https://dongxiaoju.com"+config.pull_data_config.get_detail,{ list:list,}, {
- headers: {
- 'Accept': 'application/json, text/plain, */*',
- 'token':token
- }
- });
- console.log("response:",response.data.data.list)
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:{response:response.data.data.list},code:10000}));
- }
- CMD.get_dz_book = async function(book_id,res) {
- let data = await require('../src/api/dz/dz_search_book').search_id(book_id)
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
- console.log('get_dz_book:', data);
- }
- CMD.get_dz_callback_template = async function(channelId,isFree,res) {
- console.log("get_dz_callback_template!")
- require('../src/api/dz/get_dz_call_back_template').get_callback_template(channelId,(data)=>{
- console.log('get_dz_callback_template:', data);
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
- },isFree)
- }
- CMD.get_dz_channel_Info_list = async function(res,isFree) {
- console.log("get_dz_channel_Info_list!")
- require('../src/api/dz/get_channel_Info_list').get_channel_Info_list((data)=>{
- console.log('get_dz_channel_Info_list:', data);
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
- },isFree)
- }
- CMD.get_dz_recharge_template = async function(channelId,res) {
- await require('../src/api/dz/get_dz_recharge_template').get_recharge_template(channelId,(data)=>{
- console.log('get_dz_recharge_template:', data);
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:data,code:10000}));
- })
- }
- CMD.get_zy_account_list = async function(res) {
- let token = await require('../src/api/zy/get_zy_token').get_token()
- console.log("token:",token)
- let clinet = tools.getOneNewClinet()
- let response = await clinet.get(`https://openapi-gaia.zhangyue.com/opendata/reseller/info?access_token=${token}`)
- let list = null
- if(response.data.code!=0){
- console.error("get_zy_account_list error:",response)
- }else{
- list = response.data.body.users
- }
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
- }
- CMD.get_zy_callback_template = async function(res,owner,page,size) {
- let token = await require('../src/api/zy/get_zy_token').get_token()
- let clinet = tools.getOneNewClinet()
- let response = await clinet.post(`https://openapi-gaia.zhangyue.com/opendata/reseller/pay/series/callback/list`,{
- access_token:token,
- owner:parseInt(owner),
- page:page,
- size:size
- })
- let list = null
- if(response.data.code!=0){
- console.error("get_zy_account_list error:",response)
- }else{
- list = response.data.body.list
- }
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
- }
- CMD.get_zy_recharge_template = async function(res,user_id,page,size) {
- let token = await require('../src/api/zy/get_zy_token').get_token()
- let clinet = tools.getOneNewClinet()
- let response = await clinet.post(`https://openapi-gaia.zhangyue.com/opendata/reseller/pay/series/recharge`,{
- access_token:token,
- user_id:parseInt(user_id),
- page:page,
- size:size
- })
- let list = null
- if(response.data.code!=0){
- console.error("get_zy_recharge_template error:",response)
- }else{
- list = response.data.body.items
- }
- res.writeHead(200, {'Content-Type': 'application/json'});
- res.end(JSON.stringify({ message:"成功!",data:list,code:10000}));
- }
- 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 if(jsonData['fun']=="test_fq_book_sid_tt"&&jsonData['cmd']=="fq_book"){
- let book_id = jsonData['data']['book_id']
- let sid_tt = jsonData['data']['sid_tt']
- let info = await CMD.test_fq_book_sid_tt(book_id,sid_tt)
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(info==null){
- res.end(JSON.stringify({ message:"失败",code:10001}));
- }else{
- res.end(JSON.stringify({ message:"成功!",data:info,code:10000}));
- }
-
- }else if(jsonData['fun']=="test_fq_mf_book_sid_tt"&&jsonData['cmd']=="fq_mf_book"){
- let book_id = jsonData['data']['book_id']
- let sid_tt = jsonData['data']['sid_tt']
- let info = await CMD.test_fq_mf_book_sid_tt(book_id,sid_tt)
- res.writeHead(200, {'Content-Type': 'application/json'});
- if(info==null){
- res.end(JSON.stringify({ message:"失败",code:10001}));
- }else{
- res.end(JSON.stringify({ message:"成功!",data:info,code:10000}));
- }
-
- }else if(jsonData['fun']=="groupMapping"&&jsonData['cmd']=="hy_link"){
- CMD.get_group_mapping(res)
- }else if(jsonData['fun']=="rechargeTemplate"&&jsonData['cmd']=="hy_link"){
- CMD.get_hy_rechargeTemplate(res)
- }else if(jsonData['fun']=="get_hy_SiteTemplate"&&jsonData['cmd']=="hy_link"){
- CMD.get_hy_SiteTemplate(res)
- }else if(jsonData['fun']=="passBackTemplate"&&jsonData['cmd']=="hy_link"){
- let is_free = jsonData['data']['is_free']
- CMD.get_hy_passBackTemplate(res,is_free)
- }else if(jsonData['fun']=="rechargeTemplate"&&jsonData['cmd']=="fq_link"){
- let distributor_id = jsonData['data']['distributor_id']
- CMD.get_fq_rechargeTemplate(res,distributor_id)
- }else if(jsonData['fun']=="get_fq_package_list"&&jsonData['cmd']=="fq_link"){
- let app_type = jsonData['data']['app_type']
- // let distributor_id = jsonData['data']['distributor_id']
- CMD.get_fq_package_list(res,config.fanqie_config.distributorId,app_type)
- }else if(jsonData['fun']=="get_fq_bound_package_list"&&jsonData['cmd']=="fq_link"){
- let app_id = jsonData['data']['app_id']
- // let distributor_id = jsonData['data']['distributor_id']
- CMD.get_fq_bound_package_list(res,config.fanqie_config.distributorId,app_id)
- }else if(jsonData['fun']=="get_pull_token"&&jsonData['cmd']=="pull_data_config"){
- CMD.get_pull_token(res)
- }else if(jsonData['fun']=="get_dz_book"&&jsonData['cmd']=="dz_link"){
- let book_id = jsonData['data']['book_id']
- CMD.get_dz_book(book_id,res)
- }else if(jsonData['fun']=="get_dz_callback_template"&&jsonData['cmd']=="dz_link"){
- let channelId = jsonData['data']['channelId']
- let isFree = jsonData['data']['isFree']==1
- CMD.get_dz_callback_template(channelId,isFree,res)
- }else if(jsonData['fun']=="get_dz_recharge_template"&&jsonData['cmd']=="dz_link"){
- let channelId = jsonData['data']['channelId']
- CMD.get_dz_recharge_template(channelId,res)
- }else if(jsonData['fun']=="get_dz_channel_Info_list"&&jsonData['cmd']=="dz_link"){
- let isFree = jsonData['data']['isFree']==1
- CMD.get_dz_channel_Info_list(res,isFree)
- }else if(jsonData['fun']=="get_qm_recharge_template"&&jsonData['cmd']=="qm_link"){
- let category = jsonData['data']['category']
- let qm_id = jsonData['data']['qm_id']
- let mini_program_platform_id = jsonData['data']['mini_program_platform_id']
- CMD.get_qm_recharge_template(res,category,mini_program_platform_id,qm_id)
- }else if(jsonData['fun']=="get_qm_callback_template"&&jsonData['cmd']=="qm_link"){
- let mini_program_platform_id = jsonData['data']['mini_program_platform_id']
- let qm_id = jsonData['data']['qm_id']
- CMD.get_qm_callback_template(res,mini_program_platform_id,qm_id)
- }else if(jsonData['fun']=="get_qm_account_list"&&jsonData['cmd']=="qm_link"){
- CMD.get_qm_account_list(res)
- }else if(jsonData['fun']=="get_fq_callback_template"&&jsonData['cmd']=="fq_link"){
- let distributor_id = jsonData['data']['distributor_id']
- CMD.get_fq_callback_template(res,distributor_id)
- }else if(jsonData['fun']=="get_yw_recharge_template"&&jsonData['cmd']=="yw_link"){
- let yw_id = jsonData['data']['yw_id']
- CMD.get_yw_recharge_template(res,yw_id)
- }else if(jsonData['fun']=="test_open_sessid"&&jsonData['cmd']=="yw_link"){
- let book_id = jsonData['data']['book_id']
- CMD.test_open_sessid(res,book_id)
- }else if(jsonData['fun']=="get_yw_open_sessid_status"&&jsonData['cmd']=="yw_link"){
- CMD.get_yw_open_sessid_status(res)
- } else if(jsonData['fun']=="get_zh_recharge_template"&&jsonData['cmd']=="zh_link"){
- let app_type = jsonData['data']['app_type']
- CMD.get_zh_recharge_template(res,app_type)
- }else if(jsonData['fun']=="get_zh_callback_template"&&jsonData['cmd']=="zh_link"){
- CMD.get_zh_callback_template(res)
- }else if(jsonData['fun']=="get_detail"&&jsonData['cmd']=="pull_data"){
- let token = jsonData['data']['token']
- let list = jsonData['data']['list']
- CMD.get_detail(res,token,list)
- }else if(jsonData['fun']=="get_fq_ji_jiang_xia_jia"&&jsonData['cmd']=="fq_link"){
- await CMD.get_fq_ji_jiang_xia_jia(res)
- }else if(jsonData['fun']=="get_zy_recharge_template"&&jsonData['cmd']=="zy_link"){
- let user_id = jsonData['data']['user_id']
- let page = jsonData['data']['page']==undefined?1:jsonData['data']['page']
- let size = jsonData['data']['size']==undefined?20:jsonData['data']['size']
- CMD.get_zy_recharge_template(res,user_id,page,size)
- }else if(jsonData['fun']=="get_zy_callback_template"&&jsonData['cmd']=="zy_link"){
- let owner = jsonData['data']['owner']
- let page = jsonData['data']['page']==undefined?1:jsonData['data']['page']
- let size = jsonData['data']['size']==undefined?100:jsonData['data']['size']
- CMD.get_zy_callback_template(res,owner,page,size)
- }else if(jsonData['fun']=="get_zy_account_list"&&jsonData['cmd']=="zy_link"){
- CMD.get_zy_account_list(res)
- }
- 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()
|