72 lines
2.6 KiB
JavaScript
Executable File
72 lines
2.6 KiB
JavaScript
Executable File
const {Pinski} = require("pinski")
|
|
const {setInstance} = require("pinski/plugins")
|
|
const constants = require("./utils/constants")
|
|
const iconLoader = require("./utils/icon-loader").icons
|
|
const path = require("path")
|
|
const fs = require("fs")
|
|
|
|
;(async () => {
|
|
// Create directories
|
|
if (!fs.existsSync(constants.server_setup.video_dl_path))
|
|
fs.mkdirSync(constants.server_setup.video_dl_path, { recursive: true })
|
|
if (!fs.existsSync(constants.server_setup.ogg_dl_path))
|
|
fs.mkdirSync(constants.server_setup.ogg_dl_path, { recursive: true })
|
|
if (!fs.existsSync(constants.server_setup.json_cache_path))
|
|
fs.mkdirSync(constants.server_setup.json_cache_path, { recursive: true })
|
|
if (!fs.existsSync(constants.server_setup.ytdlp_cache_path))
|
|
fs.mkdirSync(constants.server_setup.ytdlp_cache_path, { recursive: true })
|
|
|
|
await require("./utils/upgradedb")()
|
|
const icons = await iconLoader
|
|
|
|
const server = new Pinski({
|
|
port: 10412,
|
|
relativeRoot: __dirname,
|
|
filesDir: "html"
|
|
})
|
|
|
|
setInstance(server)
|
|
server.pugDefaultLocals.constants = constants
|
|
server.pugDefaultLocals.icons = icons
|
|
server.pugDefaultLocals.isMobile = req => req.headers["user-agent"].match(/phone|mobile/i)
|
|
|
|
server.muteLogsStartingWith("/watch")
|
|
server.muteLogsStartingWith("/vi/")
|
|
server.muteLogsStartingWith("/favicon")
|
|
server.muteLogsStartingWith("/static")
|
|
|
|
server.addSassDir("sass", ["sass/includes", "sass/themes", "sass/theme-modules"])
|
|
server.addRoute("/static/css/dark.css", "sass/dark.sass", "sass")
|
|
server.addRoute("/static/css/light.css", "sass/light.sass", "sass")
|
|
server.addRoute("/static/css/edgeless-light.css", "sass/edgeless-light.sass", "sass")
|
|
server.addRoute("/static/css/eir.css", "sass/eir.sass", "sass")
|
|
|
|
server.addPugDir("pug", ["pug/includes"])
|
|
server.addPugDir("pug/errors")
|
|
|
|
server.addStaticHashTableDir("html/static/js")
|
|
server.addStaticHashTableDir("html/static/js/elemjs")
|
|
server.addStaticHashTableDir("html/static/images")
|
|
server.addStaticHashTableDir("html/static/fonts")
|
|
|
|
server.addAPIDir("api")
|
|
|
|
// Special paths. DO NOT INCLUDE video cache location, or pinski watcher will lag downloads
|
|
// - Eir
|
|
server.muteLogsStartingWith("/assets")
|
|
server.muteLogsStartingWith("/getVideo")
|
|
server.muteLogsStartingWith("/getCaption")
|
|
server.muteLogsStartingWith("/getOgg")
|
|
server.muteLogsStartingWith("/redownloadVideo")
|
|
server.muteLogsStartingWith("/cacheInfo")
|
|
server.muteLogsStartingWith("/getDeArrow")
|
|
|
|
server.startServer()
|
|
|
|
require("./background/feed-update")
|
|
// Keep cache under a certain size.
|
|
// - Eir
|
|
require("./background/cache-reaper")
|
|
require("./eirtubeMods/dl-queue")
|
|
})()
|