You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.6 KiB
149 lines
4.6 KiB
|
|
const express = require("express");
|
|
const bodyParser = require("body-parser");
|
|
const multer = require('multer'); // 接受视频流
|
|
const fs = require('fs');
|
|
|
|
|
|
var captcha = require("./kuaishou/ks_slid"); // 快手滑块
|
|
var hn = require("./hnw/hn"); // 惠农网 headers
|
|
var dy_signature = require("./douyin/_ac_signature"); // 抖音主页signature
|
|
var wx_func = require("./wx_video/wasm_video_decode"); // 微信视频号算法生成
|
|
var wx_tool = require("./wx_video/tools"); // 微信视频号解密
|
|
var xhs = require("./xhs/xs-commen"); // 小红书x-comment
|
|
|
|
let Module; // 保存对象存留
|
|
var app = express();
|
|
// 调整参数大小限制
|
|
app.use(bodyParser.json());
|
|
app.use(bodyParser.urlencoded({extended: true}));
|
|
// 设置multer来处理上传的文件
|
|
const storage = multer.memoryStorage();
|
|
const upload = multer({ storage: storage });
|
|
|
|
|
|
app.post("/kuaishou/get_verifyParam", function(req, res){
|
|
try{
|
|
var info = req.body["info"]
|
|
var result = captcha.getJose(info);
|
|
res.send(result);
|
|
console.log("[kuaishou-verify_fp] 请求成功");
|
|
}catch(e){
|
|
console.log(e);
|
|
res.send("[kuaishou-verify_fp] verify fp error");
|
|
}
|
|
});
|
|
|
|
app.get("/hn/get_signature", function(req, res){
|
|
try{
|
|
var noce = req.query.nonce;
|
|
var result = hn.getS(noce);
|
|
res.send(result);
|
|
console.log("[hn-get_header] 请求成功");
|
|
}catch(e){
|
|
console.log(e);
|
|
res.send("[hn-get_header] get header error");
|
|
}
|
|
});
|
|
|
|
|
|
app.get("/douyin/get_signature", function(req, res){
|
|
try{
|
|
var noce = req.query.nonce;
|
|
var result = dy_signature.get_ac_signature(noce);
|
|
res.send(result);
|
|
console.log("[douyin-get_signature] 请求成功");
|
|
}catch(e){
|
|
console.log(e);
|
|
res.send("[douyin-get_signature] get signature error");
|
|
}
|
|
});
|
|
|
|
|
|
app.post("/wx/decode", upload.single('file'), async (req,res) =>{
|
|
if(Module == undefined){
|
|
Module = await wx_func.createWasm(); // 创建modul实例
|
|
console.log("[wx] 初始化 wasm 模块!");
|
|
}
|
|
|
|
try{
|
|
if(req.file){
|
|
var buffer = req.file.buffer; // 视频流
|
|
var decodekey = req.query.decodekey; // 视频buffer
|
|
var local_path = "wx_video/tmp/".concat(decodekey).concat(".mp4");
|
|
console.log("[wx] 获取到的 decodekey:", decodekey,);
|
|
wx_func.p.decryptor = new Module["WxIsaac64"](decodekey);
|
|
wx_func.p.decryptor.generate(131072);
|
|
var video_res = await wx_tool.main1(local_path, buffer, decodekey, wx_func.p.decryptor_array);
|
|
wx_func.p.decryptor.delete();
|
|
console.log("[wx] ", video_res);
|
|
res.send(video_res);
|
|
}else{
|
|
res.send({"status": 500, "msg": "未识别文件"});
|
|
}
|
|
}catch(e){
|
|
console.log(e);
|
|
res.send("[wx] decode error");
|
|
}
|
|
});
|
|
|
|
|
|
// 测试版
|
|
app.post("/wx/decode1", upload.single('file'), async (req,res) =>{
|
|
if(Module == undefined){
|
|
Module = await wx_func.createWasm(); // 创建modul实例
|
|
console.log("[wx] 初始化 wasm 模块!");
|
|
}
|
|
|
|
try{
|
|
var buffer = req.file.buffer; // 视频流
|
|
console.log(buffer);
|
|
var decodekey = req.query.decodekey; // 视频buffer
|
|
var local_path = "wx_video/tmp/".concat(decodekey).concat(".mp4");
|
|
console.log("[wx] 获取到的 decodekey:", decodekey,);
|
|
wx_func.p.decryptor = new Module["WxIsaac64"](decodekey);
|
|
wx_func.p.decryptor.generate(131072);
|
|
const video_res = await wx_tool.main2(local_path, buffer, decodekey, wx_func.p.decryptor_array);
|
|
wx_func.p.decryptor.delete();
|
|
// 将Uint8Array转换为Buffer
|
|
const new_buffer = Buffer.from(video_res);
|
|
// 设置响应类型为二进制
|
|
res.setHeader('Content-Type', 'application/octet-stream');
|
|
|
|
// 发送Buffer数据
|
|
res.send(new_buffer);
|
|
}catch(e){
|
|
console.log(e);
|
|
res.send("[wx] decode error");
|
|
}
|
|
|
|
});
|
|
|
|
app.post("/xhs/get_comment", function(req, res){
|
|
try{
|
|
var a1 = req.body["a1"];
|
|
var xs = req.body["xs"];
|
|
var xt = req.body["xt"];
|
|
|
|
var result = xhs.getCommon(a1, xs, xt);
|
|
// console.log(result);
|
|
res.send(result);
|
|
// res.send(window.code);
|
|
// console.log(window.code);
|
|
// console.log(a);
|
|
console.log("[xhs-comment] 请求成功");
|
|
}catch(e){
|
|
console.log(e);
|
|
res.send("[xhs-comment] verify fp error");
|
|
}
|
|
// res.send(result.toString());
|
|
});
|
|
|
|
|
|
app.listen(3000, ()=>{
|
|
console.log("开启服务,端口3000", new Date().toString());
|
|
})
|
|
|
|
|
|
|
|
|