ytdl-server/web.js

23 lines
1.1 KiB
JavaScript

var express = require("express");
require("express-async-errors");
var serveFavicon = require("serve-favicon");
var morgan = require("morgan");
var {getList} = require("./metalist");
var app = module.exports.app = express();
app.set("env", process.env.NODE_ENV || "production");
app.set("trust proxy", ["loopback","linklocal","uniquelocal","173.245.48.0/20","103.21.244.0/22","103.22.200.0/22","103.31.4.0/22","141.101.64.0/18","108.162.192.0/18","190.93.240.0/20","188.114.96.0/20","197.234.240.0/22","198.41.128.0/17","162.158.0.0/15","104.16.0.0/13","104.24.0.0/14","172.64.0.0/13","131.0.72.0/22","2400:cb00::/32","2606:4700::/32","2803:f800::/32","2405:b500::/32","2405:8100::/32","2a06:98c0::/29","2c0f:f248::/32"]);
module.exports.server = app.listen(process.env.PORT, process.env.ADDR);
app.use(morgan(`:date[iso] :remote-addr :method :url ":req[user-agent]" :referrer`));
app.use(serveFavicon("favicon.ico"));
app.use("/v/", express.static(process.env.DOWNLOADS));
app.get("/api/list", async (req, res) => {
res.send(await getList());
});
app.use(express.static("public"));