diff --git a/routes/api/iqiyi.js b/routes/api/iqiyi.js index 89e930c..6fb3693 100644 --- a/routes/api/iqiyi.js +++ b/routes/api/iqiyi.js @@ -2,7 +2,6 @@ const axios = require("axios"); const pako = require("pako"); const { time_to_second, - make_response, content_template, } = require("./utils"); const memory = require("../../utils/memory"); diff --git a/routes/danmaku.js b/routes/danmaku.js index 4b35ad2..e40b190 100644 --- a/routes/danmaku.js +++ b/routes/danmaku.js @@ -26,13 +26,16 @@ const apiLimiter = rateLimit({ skip: (request, response) => allowlist.includes(request.ip), }); +// 返回对象{msg: "ok", title: "标题", content: []} async function build_response(url, req) { + // 循环找最终url for (let q = new URLSearchParams(URL.parse(url).query); q.has("url");) { console.log("Redirecting to", url); url = q.get("url"); q = new URLSearchParams(URL.parse(url).query); } console.log("Real url:", url); + // 测试url是否能下载 try { await axios.get(url, { headers: { "Accept-Encoding": "gzip,deflate,compress" } @@ -41,15 +44,18 @@ async function build_response(url, req) { console.log(e); return { msg: "传入的链接非法!请检查链接是否能在浏览器正常打开" }; } + // 循环找到对应的解析器 let fc = undefined; for (let item of list) { if (url.indexOf(item.domain) !== -1) { fc = item; } } + // 找不到对应的解析器 if (fc === undefined) { return { "msg": "不支持的视频网址" }; } + // 捕获所有错误并添加日志 let ret; try { ret = await fc.work(url); diff --git a/utils/oss.js b/utils/oss.js deleted file mode 100644 index 5b12528..0000000 --- a/utils/oss.js +++ /dev/null @@ -1,103 +0,0 @@ -const OSS = require("ali-oss"); -const path = require("path"); -const fastregion = "oss-accelerate"; - -// 引入环境变量 -require("dotenv") - .config({ path: "../.env" }); - -let client = new OSS({ - region: process.env.ALI_OSS_REGION, - accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID, - accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET, - bucket: process.env.OSS_BUCKET, -}); - -let fastclient = new OSS({ - region: fastregion, - accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID, - accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET, - bucket: process.env.OSS_BUCKET, -}); - -async function get(objname,isFast) { - try { - const result = isFast ? await fastclient.get(objname) : await client.get(objname); - return result.content.toString(); - } catch (e) { - console.log(e); - } -} - -async function putfile(objname, localfilename, headers) { - try { - const res = await client.put(objname,path.normalize(localfilename),{headers}); - return res; - } catch(e) { - console.log(e); - } -} - -async function put(objname, content, headers) { - try { - const result = await client.put(objname, new Buffer.from(content), { headers }); - return result; - } catch (e) { - console.log(e); - } -} - -async function head(objname,isfast) { - try { - const result = isfast ? await fastclient.head(objname) : await client.head(objname); - return result.res.headers; - } catch (e) { - console.log(e); - } -} - -async function signurl(objname, isFast) { - try { - let result = isFast ? await fastclient.signatureUrl(objname):await client.signatureUrl(objname); - result = result.replace("http://", "//") - return result; - } catch (e) { - console.log(e); - } -} - -async function list(prefix) { - const result = await client.list({ - prefix, - }); - return result; -} - -async function putACL(key,acl = "public-read"){ - client.putACL(key,acl); -} - -module.exports = { - get, - put, - putfile, - head, - list, - signurl, - putACL -}; - -async function main() { - get("SUB/database.yaml",true); - put("SUB/test.txt", "中文"); - head("SUB/database.yaml",true); - const url = await signurl("SUB/database.yaml", true); - console.log(url) -} - -if (!module.parent) { - get("SUB/database.yaml"); - put("SUB/test.txt", "中文"); - head("SUB/database.yaml"); - signurl("SUB/database.yaml", true); -}