diff --git a/package.json b/package.json index 5c6061f..26917f3 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "scripts": { "start": "node --max-old-space-size=200 ./bin/www", "dev": "nodemon --max-old-space-size=200 ./bin/www", - "test": "nyc -a mocha --recursive" + "test": "nyc -a mocha --recursive", + "deploy": "flyctl deploy" }, "dependencies": { "ali-oss": "^6.17.1", diff --git a/routes/airportsub.js b/routes/airportsub.js index b793098..5b7e6a6 100644 --- a/routes/airportsub.js +++ b/routes/airportsub.js @@ -99,7 +99,7 @@ router.get('/cache', async function (req, res, next) { const key = Object.keys(database.suburl)[i] messages.push({title: 'Download', key, status: res.status}) const userinfo = res.headers['subscription-userinfo'] - const base64userinfo = btoa(userinfo) + const base64userinfo = Buffer.from(userinfo).toString('base64') // 设置强制下载并设置文件名 headers = { 'Content-type': 'text/plain; charset=utf-8', diff --git a/routes/danmaku.js b/routes/danmaku.js index 049037d..f713274 100644 --- a/routes/danmaku.js +++ b/routes/danmaku.js @@ -10,6 +10,13 @@ function getscheme(req) { return req.headers['x-forwarded-proto'] || req.protocol; } +function getClientIp(req) { + return req.headers['x-forwarded-for'] || + req.connection.remoteAddress || + req.socket.remoteAddress || + req.connection.socket.remoteAddress; +} + async function build_response(url) { try { await axios.get(url) @@ -38,7 +45,7 @@ async function build_response(url) { /* GET home page. */ router.get('/', async function (req, res, next) { - leancloud.danmakuAccessAdd({ip: req.ip, url: req.query.url, ua: req.headers['user-agent']}) + leancloud.danmakuAccessAdd({ip: getClientIp(req), url: req.query.url, ua: req.headers['user-agent']}) //检查是否包含URL参数 if (!req.query.url) { var urls = [mgtv.example_urls[0], bilibili.example_urls[0], tencentvideo.example_urls[0], youku.example_urls[0], iqiyi.example_urls[0]];