From 4d369170ff80be1e4af991611097eaf6909fcb1d Mon Sep 17 00:00:00 2001 From: wukko Date: Fri, 19 May 2023 16:13:38 +0600 Subject: [PATCH 001/111] separated web and api, build improvements wip: - separate web and api servers. - script for building static pages. - building improvements. - async localisation preloading. --- .gitignore | 3 + package.json | 7 +- src/api.js | 196 +++++++++++++++++++++++++++++ src/cobalt.js | 28 +++-- src/front/cobalt.css | 5 +- src/localization/languages/en.json | 2 +- src/localization/languages/ru.json | 2 +- src/localization/manager.js | 15 +-- src/modules/build.js | 12 +- src/modules/buildStatic.js | 7 ++ src/modules/pageRender/elements.js | 3 +- src/modules/stream/manage.js | 2 +- src/web.js | 59 +++++++++ 13 files changed, 315 insertions(+), 26 deletions(-) create mode 100644 src/api.js create mode 100644 src/modules/buildStatic.js create mode 100644 src/web.js diff --git a/.gitignore b/.gitignore index 305746b2..8af52058 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ build # stuff i already made but delayed future + +# docker +docker-compose.yml diff --git a/package.json b/package.json index 1382b1f5..2c0f7258 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cobalt", "description": "save what you love", - "version": "5.7", + "version": "6.0-dev", "author": "wukko", "exports": "./src/cobalt.js", "type": "module", @@ -11,7 +11,10 @@ "scripts": { "start": "node src/cobalt", "setup": "node src/modules/setup", - "test": "node src/test/test" + "test": "node src/test/test", + "build": "node src/modules/buildStatic", + "api": "node src/api", + "web": "node src/web" }, "repository": { "type": "git", diff --git a/src/api.js b/src/api.js new file mode 100644 index 00000000..74c33e1f --- /dev/null +++ b/src/api.js @@ -0,0 +1,196 @@ +import "dotenv/config"; + +import express from "express"; +import cors from "cors"; +import rateLimit from "express-rate-limit"; +import { randomBytes } from "crypto"; + +const ipSalt = randomBytes(64).toString('hex'); + +import { getCurrentBranch, shortCommit } from "./modules/sub/currentCommit.js"; +import { appName, version } from "./modules/config.js"; +import { getJSON } from "./modules/api.js"; +import { apiJSON, checkJSONPost, getIP, languageCode } from "./modules/sub/utils.js"; +import { Bright, Cyan, Green, Red } from "./modules/sub/consoleText.js"; +import stream from "./modules/stream/stream.js"; +import loc, { loadLoc } from "./localization/manager.js"; +import { changelogHistory } from "./modules/pageRender/onDemand.js"; +import { sha256 } from "./modules/sub/crypto.js"; +import { celebrationsEmoji } from "./modules/pageRender/elements.js"; + +if (process.env.apiURL && process.env.apiPort) { + const commitHash = shortCommit(); + const branch = getCurrentBranch(); + const app = express(); + + app.disable('x-powered-by'); + + const corsConfig = process.env.cors === '0' ? { origin: process.env.webURL, optionsSuccessStatus: 200 } : {}; + + const apiLimiter = rateLimit({ + windowMs: 60000, + max: 25, + standardHeaders: false, + legacyHeaders: false, + keyGenerator: (req, res) => sha256(getIP(req), ipSalt), + handler: (req, res, next, opt) => { + res.status(429).json({ "status": "error", "text": loc(languageCode(req), 'ErrorRateLimit') }); + return; + } + }); + const apiLimiterStream = rateLimit({ + windowMs: 60000, + max: 28, + standardHeaders: false, + legacyHeaders: false, + keyGenerator: (req, res) => sha256(getIP(req), ipSalt), + handler: (req, res, next, opt) => { + res.status(429).json({ "status": "error", "text": loc(languageCode(req), 'ErrorRateLimit') }); + return; + } + }); + + const startTime = new Date(); + const startTimestamp = Math.floor(startTime.getTime()); + + // preload localization files + await loadLoc(); + + app.use('/api/:type', cors(corsConfig)); + app.use('/api/json', apiLimiter); + app.use('/api/stream', apiLimiterStream); + app.use('/api/onDemand', apiLimiter); + + app.use((req, res, next) => { + try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } + next(); + }); + app.use((req, res, next) => { + if (req.header("user-agent") && req.header("user-agent").includes("Trident")) res.destroy(); + next(); + }); + app.use('/api/json', express.json({ + verify: (req, res, buf) => { + try { + JSON.parse(buf); + if (buf.length > 720) throw new Error(); + if (String(req.header('Content-Type')) !== "application/json") { + res.status(400).json({ 'status': 'error', 'text': 'invalid content type header' }); + return; + } + if (String(req.header('Accept')) !== "application/json") { + res.status(400).json({ 'status': 'error', 'text': 'invalid accept header' }); + return; + } + } catch(e) { + res.status(400).json({ 'status': 'error', 'text': 'invalid json body.' }); + return; + } + } + })); + + app.post('/api/json', async (req, res) => { + try { + let ip = sha256(getIP(req), ipSalt); + let lang = languageCode(req); + let j = apiJSON(0, { t: "Bad request" }); + try { + let request = req.body; + if (request.url) { + request.dubLang = request.dubLang ? lang : false; + let chck = checkJSONPost(request); + if (chck) chck["ip"] = ip; + j = chck ? await getJSON(chck["url"], lang, chck) : apiJSON(0, { t: loc(lang, 'ErrorCouldntFetch') }); + } else { + j = apiJSON(0, { t: loc(lang, 'ErrorNoLink') }); + } + } catch (e) { + j = apiJSON(0, { t: loc(lang, 'ErrorCantProcess') }); + } + res.status(j.status).json(j.body); + return; + } catch (e) { + res.destroy(); + return + } + }); + + app.get('/api/:type', (req, res) => { + try { + let ip = sha256(getIP(req), ipSalt); + switch (req.params.type) { + case 'stream': + if (req.query.p) { + res.status(200).json({ "status": "continue" }); + return; + } else if (req.query.t && req.query.h && req.query.e) { + stream(res, ip, req.query.t, req.query.h, req.query.e); + } else { + let j = apiJSON(0, { t: "no stream id" }) + res.status(j.status).json(j.body); + return; + } + break; + case 'onDemand': + if (req.query.blockId) { + let blockId = req.query.blockId.slice(0, 3); + let r, j; + switch(blockId) { + case "0": // changelog history + r = changelogHistory(); + j = r ? apiJSON(3, { t: r }) : apiJSON(0, { t: "couldn't render this block" }) + break; + case "1": // celebrations emoji + r = celebrationsEmoji(); + j = r ? apiJSON(3, { t: r }) : false + break; + default: + j = apiJSON(0, { t: "couldn't find a block with this id" }) + break; + } + if (j.body) { + res.status(j.status).json(j.body) + } else { + res.status(204).end() + } + } else { + let j = apiJSON(0, { t: "no block id" }); + res.status(j.status).json(j.body) + } + break; + case 'serverInfo': + res.status(200).json({ + version: version, + commit: commitHash, + branch: branch, + url: process.env.apiURL, + cors: process.env.cors, + startTime: `${startTimestamp}` + }); + break; + default: + let j = apiJSON(0, { t: "unknown response type" }) + res.status(j.status).json(j.body); + break; + } + } catch (e) { + res.status(500).json({ 'status': 'error', 'text': loc(languageCode(req), 'ErrorCantProcess') }); + return; + } + }); + app.get("/api/status", (req, res) => { + res.status(200).end() + }); + app.get("/favicon.ico", (req, res) => { + res.redirect('/icons/favicon.ico'); + }); + app.get("/*", (req, res) => { + res.redirect('/api/json') + }); + + app.listen(process.env.apiPort, () => { + console.log(`\n${Cyan(appName)} API ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${startTimestamp})`)}\n\nURL: ${Cyan(`${process.env.apiURL}`)}\nPort: ${process.env.apiPort}\n`) + }) +} else { + console.log(Red(`cobalt api hasn't been configured yet or configuration is invalid.\n`) + Bright(`please run the setup script to fix this: `) + Green(`npm run setup`)); +} diff --git a/src/cobalt.js b/src/cobalt.js index 990f5d31..066385a7 100644 --- a/src/cobalt.js +++ b/src/cobalt.js @@ -18,7 +18,7 @@ import { getJSON } from "./modules/api.js"; import { apiJSON, checkJSONPost, getIP, languageCode } from "./modules/sub/utils.js"; import { Bright, Cyan, Green, Red } from "./modules/sub/consoleText.js"; import stream from "./modules/stream/stream.js"; -import loc from "./localization/manager.js"; +import loc, { loadLoc } from "./localization/manager.js"; import { buildFront } from "./modules/build.js"; import { changelogHistory } from "./modules/pageRender/onDemand.js"; import { sha256 } from "./modules/sub/crypto.js"; @@ -56,7 +56,12 @@ if (process.env.selfURL && process.env.port) { return; } }); + + const startTime = new Date(); + const startTimestamp = Math.floor(startTime.getTime()); + // preload localization files and build static pages + await loadLoc(); await buildFront(commitHash, branch); app.use('/api/:type', cors(corsConfig)); @@ -64,7 +69,7 @@ if (process.env.selfURL && process.env.port) { app.use('/api/stream', apiLimiterStream); app.use('/api/onDemand', apiLimiter); - app.use('/', express.static('./min')); + app.use('/', express.static('./build/min')); app.use('/', express.static('./src/front')); app.use((req, res, next) => { @@ -164,6 +169,16 @@ if (process.env.selfURL && process.env.port) { res.status(j.status).json(j.body) } break; + case 'serverInfo': + res.status(200).json({ + version: version, + commit: commitHash, + branch: branch, + url: process.env.apiURL, + cors: process.env.cors, + startTime: `${startTimestamp}` + }); + break; default: let j = apiJSON(0, { t: "unknown response type" }) res.status(j.status).json(j.body); @@ -174,12 +189,12 @@ if (process.env.selfURL && process.env.port) { return; } }); + app.get("/api/status", (req, res) => { + res.status(200).end() + }); app.get("/api", (req, res) => { res.redirect('/api/json') }); - app.get("/status", (req, res) => { - res.status(200).end() - }); app.get("/", (req, res) => { res.sendFile(`${__dirname}/${findRendered(languageCode(req), req.header('user-agent') ? req.header('user-agent') : genericUserAgent)}`); }); @@ -191,8 +206,7 @@ if (process.env.selfURL && process.env.port) { }); app.listen(process.env.port, () => { - let startTime = new Date(); - console.log(`\n${Cyan(appName)} ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(new Date().getTime())})`)}\n\nURL: ${Cyan(`${process.env.selfURL}`)}\nPort: ${process.env.port}\n`) + console.log(`\n${Cyan(appName)} ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(startTimestamp)})`)}\n\nURL: ${Cyan(`${process.env.selfURL}`)}\nPort: ${process.env.port}\n`) }) } else { console.log(Red(`cobalt hasn't been configured yet or configuration is invalid.\n`) + Bright(`please run the setup script to fix this: `) + Green(`npm run setup`)); diff --git a/src/front/cobalt.css b/src/front/cobalt.css index 9f9c8a9c..338f0dc1 100644 --- a/src/front/cobalt.css +++ b/src/front/cobalt.css @@ -156,7 +156,7 @@ button:active, .text-to-copy:active { background: var(--accent-press); cursor: pointer; - transform: scale(0.95) + transform: scale(0.95); } .collapse-header:active { background: var(--accent-press); @@ -681,6 +681,9 @@ button:active, #about-donate-footer:active::before { opacity: 0; } +.popup-tabs-child { + width: 100%; +} /* adapt the page according to screen size */ @media screen and (min-width: 2300px) { html { diff --git a/src/localization/languages/en.json b/src/localization/languages/en.json index 4f052578..4fe42dbd 100644 --- a/src/localization/languages/en.json +++ b/src/localization/languages/en.json @@ -47,7 +47,7 @@ "SettingsQualityDescription": "if selected quality isn't available, closest one is used instead.", "LinkGitHubChanges": ">> see previous commits and contribute on github", "NoScriptMessage": "{appName} uses javascript for api requests and interactive interface. you have to allow javascript to use this site. there are no pesty scripts, pinky promise.", - "DownloadPopupDescriptionIOS": "easiest way to save videos on ios:\n1. add this siri shortcut.\n2. press \"share\" above and select \"save to photos\" in appeared share sheet.\nif asked, review the permission request popup on top, and press \"always allow\".\n\nalternative method: press and hold the download button, hide the video preview, and select \"download linked file\" to download.\nthen, open safari downloads, select the file you downloaded, open share menu, and finally press \"save video\".", + "DownloadPopupDescriptionIOS": "easiest way to save videos on ios:\n1. add this siri shortcut.\n2. press \"share\" above and select \"save to photos\" in appeared share sheet.\nif asked, review the permission request, and press \"always allow\".\n\nalternative method:\npress and hold the download button, hide the video preview, and select \"download linked file\" to download.\nthen, open safari downloads, select the file you downloaded, open share menu, and finally press \"save video\".", "DownloadPopupDescription": "download button opens a new tab with requested file. you can disable this popup in settings.", "DownloadPopupWayToSave": "pick a way to save", "ClickToCopy": "press to copy", diff --git a/src/localization/languages/ru.json b/src/localization/languages/ru.json index 7f59f356..8a0845f8 100644 --- a/src/localization/languages/ru.json +++ b/src/localization/languages/ru.json @@ -47,7 +47,7 @@ "SettingsQualityDescription": "если выбранное качество недоступно, то выбирается ближайшее к нему.", "LinkGitHubChanges": ">> смотри предыдущие изменения на github", "NoScriptMessage": "{appName} использует javascript для обработки ссылок и интерактивного интерфейса. ты должен разрешить использование javascript, чтобы пользоваться сайтом. тут нет никаких зловредных скриптов, обещаю.", - "DownloadPopupDescriptionIOS": "наиболее простой метод скачивания видео на ios:\n1. добавь этот сценарий siri.\n2. нажми \"поделиться\" выше и выбери \"save to photos\" в открывшемся окне.\nесли появляется окно с запросом разрешения, то прочитай его, потом нажми \"всегда разрешать\".\n\nальтернативный метод: зажми кнопку \"скачать\", затем скрой превью и выбери \"загрузить файл по ссылке\" в появившемся окне.\nпотом открой загрузки в safari, выбери скачанный файл, нажми иконку \"поделиться\", и, наконец, нажми \"сохранить видео\".", + "DownloadPopupDescriptionIOS": "наиболее простой метод скачивания видео на ios:\n1. добавь этот сценарий siri.\n2. нажми \"поделиться\" выше и выбери \"save to photos\" в открывшемся окне.\nесли появляется окно с запросом разрешения, то прочитай его, потом нажми \"всегда разрешать\".\n\nальтернативный метод:\nзажми кнопку \"скачать\", затем скрой превью и выбери \"загрузить файл по ссылке\" в появившемся окне.\nпотом открой загрузки в safari, выбери скачанный файл, нажми иконку \"поделиться\", и, наконец, нажми \"сохранить видео\".", "DownloadPopupDescription": "кнопка скачивания открывает новое окно с файлом. ты можешь отключить выбор метода скачивания файла в настройках.", "DownloadPopupWayToSave": "выбери, как сохранить", "ClickToCopy": "нажми, чтобы скопировать", diff --git a/src/localization/manager.js b/src/localization/manager.js index 2f5a334a..e5eec9bb 100644 --- a/src/localization/manager.js +++ b/src/localization/manager.js @@ -7,16 +7,13 @@ const locPath = './src/localization/languages'; let loc = {} let languages = []; -export function loadLoc() { - fs.readdir(locPath, (err, files) => { - if (err) return false; - files.forEach(file => { - loc[file.split('.')[0]] = loadJson(`${locPath}/${file}`); - languages.push(file.split('.')[0]) - }); - }) +export async function loadLoc() { + const files = await fs.promises.readdir(locPath).catch((e) => { return [] }); + files.forEach(file => { + loc[file.split('.')[0]] = loadJson(`${locPath}/${file}`); + languages.push(file.split('.')[0]) + }); } -loadLoc(); export function replaceBase(s) { return s.replace(/\n/g, '
').replace(/{saveToGalleryShortcut}/g, links.saveToGalleryShortcut).replace(/{appName}/g, appName).replace(/{repo}/g, repo).replace(/\*;/g, "•"); diff --git a/src/modules/build.js b/src/modules/build.js index 6c4bee85..a2515b0e 100644 --- a/src/modules/build.js +++ b/src/modules/build.js @@ -1,6 +1,7 @@ import * as esbuild from "esbuild"; import * as fs from "fs"; -import { languageList } from "../localization/manager.js"; +import { loadLoc, languageList } from "../localization/manager.js"; + import page from "./pageRender/page.js"; function cleanHTML(html) { @@ -10,6 +11,9 @@ function cleanHTML(html) { } export async function buildFront(commitHash, branch) { try { + // preload localization files + await loadLoc(); + // build html if (!fs.existsSync('./build/')){ fs.mkdirSync('./build/'); @@ -17,6 +21,10 @@ export async function buildFront(commitHash, branch) { fs.mkdirSync('./build/pc/'); fs.mkdirSync('./build/mob/'); } + // get rid of old build path + if (fs.existsSync('./min')) { + fs.rmSync('./min', { recursive: true, force: true }); + } for (let i in languageList) { i = languageList[i]; let params = { @@ -36,7 +44,7 @@ export async function buildFront(commitHash, branch) { // build js & css await esbuild.build({ entryPoints: ['src/front/cobalt.js', 'src/front/cobalt.css'], - outdir: 'min/', + outdir: 'build/min/', minify: true, loader: { '.js': 'js', '.css': 'css', }, charset: 'utf8' diff --git a/src/modules/buildStatic.js b/src/modules/buildStatic.js new file mode 100644 index 00000000..d3ed909f --- /dev/null +++ b/src/modules/buildStatic.js @@ -0,0 +1,7 @@ +import { buildFront } from "./build.js"; +import { getCurrentBranch, shortCommit } from "./sub/currentCommit.js"; + +const commitHash = shortCommit(); +const branch = getCurrentBranch(); + +await buildFront(commitHash, branch); diff --git a/src/modules/pageRender/elements.js b/src/modules/pageRender/elements.js index cdf155ed..dd9861a0 100644 --- a/src/modules/pageRender/elements.js +++ b/src/modules/pageRender/elements.js @@ -89,14 +89,13 @@ export function multiPagePopup(obj) { tabs += `` tabContent += `` } - tabs += `` return ` ` } export function collapsibleList(arr) { diff --git a/src/modules/stream/manage.js b/src/modules/stream/manage.js index e01c2cb0..26dfc08c 100644 --- a/src/modules/stream/manage.js +++ b/src/modules/stream/manage.js @@ -39,7 +39,7 @@ export function createStream(obj) { exp = streamInfo.exp; ghmac = streamInfo.hmac; } - return `${process.env.selfURL}api/stream?t=${streamID}&e=${exp}&h=${ghmac}`; + return `${process.env.apiURL || process.env.selfURL}api/stream?t=${streamID}&e=${exp}&h=${ghmac}`; } export function verifyStream(ip, id, hmac, exp) { diff --git a/src/web.js b/src/web.js new file mode 100644 index 00000000..4f298975 --- /dev/null +++ b/src/web.js @@ -0,0 +1,59 @@ +import "dotenv/config"; + +import express from "express"; + +import path from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename).slice(0, -4); // go up another level (get rid of src/) + +import { getCurrentBranch, shortCommit } from "./modules/sub/currentCommit.js"; +import { appName, genericUserAgent, version } from "./modules/config.js"; +import { languageCode } from "./modules/sub/utils.js"; +import { Bright, Cyan, Green, Red } from "./modules/sub/consoleText.js"; +import { loadLoc } from "./localization/manager.js"; +import { buildFront } from "./modules/build.js"; +import findRendered from "./modules/pageRender/findRendered.js"; + +if (process.env.webURL && process.env.webPort) { + const commitHash = shortCommit(); + const branch = getCurrentBranch(); + const app = express(); + + app.disable('x-powered-by'); + + // preload localization files and build static pages + await loadLoc(); + await buildFront(commitHash, branch); + + app.use('/', express.static('./build/min')); + app.use('/', express.static('./src/front')); + + app.use((req, res, next) => { + try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } + next(); + }); + app.use((req, res, next) => { + if (req.header("user-agent") && req.header("user-agent").includes("Trident")) res.destroy(); + next(); + }); + app.get("/status", (req, res) => { + res.status(200).end() + }); + app.get("/", (req, res) => { + res.sendFile(`${__dirname}/${findRendered(languageCode(req), req.header('user-agent') ? req.header('user-agent') : genericUserAgent)}`); + }); + app.get("/favicon.ico", (req, res) => { + res.redirect('/icons/favicon.ico'); + }); + app.get("/*", (req, res) => { + res.redirect('/') + }); + + app.listen(process.env.webPort, () => { + let startTime = new Date(); + console.log(`\n${Cyan(appName)} WEB ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(new Date().getTime())})`)}\n\nURL: ${Cyan(`${process.env.webURL}`)}\nPort: ${process.env.webPort}\n`) + }) +} else { + console.log(Red(`cobalt web hasn't been configured yet or configuration is invalid.\n`) + Bright(`please run the setup script to fix this: `) + Green(`npm run setup`)); +} From 5636a27ff041c18924a66ff33f1195c9bbdacced Mon Sep 17 00:00:00 2001 From: wukko Date: Fri, 19 May 2023 16:23:10 +0600 Subject: [PATCH 002/111] experimenting with docker --- dockerfile_api | 15 +++++++++++++++ dockerfile_web | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 dockerfile_api create mode 100644 dockerfile_web diff --git a/dockerfile_api b/dockerfile_api new file mode 100644 index 00000000..60fdbec8 --- /dev/null +++ b/dockerfile_api @@ -0,0 +1,15 @@ +FROM node:18-bullseye-slim +WORKDIR /app + +RUN apt-get update +RUN apt-get install -y git +RUN rm -rf /var/lib/apt/lists/* + +COPY package*.json ./ +RUN npm install + +RUN git clone -n https://github.com/wukko/cobalt.git --depth 1 && mv cobalt/.git ./ && rm -rf cobalt + +COPY . . +EXPOSE 9000 +CMD [ "node", "src/api" ] diff --git a/dockerfile_web b/dockerfile_web new file mode 100644 index 00000000..e20460c3 --- /dev/null +++ b/dockerfile_web @@ -0,0 +1,15 @@ +FROM node:18-bullseye-slim +WORKDIR /app + +RUN apt-get update +RUN apt-get install -y git +RUN rm -rf /var/lib/apt/lists/* + +COPY package*.json ./ +RUN npm install + +RUN git clone -n https://github.com/wukko/cobalt.git --depth 1 && mv cobalt/.git ./ && rm -rf cobalt + +COPY . . +EXPOSE 9000 +CMD [ "node", "src/web" ] From 19bc17b1dd72c52886415fd25534227de02830eb Mon Sep 17 00:00:00 2001 From: wukko Date: Fri, 19 May 2023 19:13:48 +0600 Subject: [PATCH 003/111] updated dockerfiles this is a mess, i have to come up with something better --- docker/docker-compose.yml.example | 39 +++++++++++++++++++++++++ dockerfile_api => docker/dockerfile_api | 0 dockerfile_web => docker/dockerfile_web | 0 src/front/cobalt.js | 6 +++- 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 docker/docker-compose.yml.example rename dockerfile_api => docker/dockerfile_api (100%) rename dockerfile_web => docker/dockerfile_web (100%) diff --git a/docker/docker-compose.yml.example b/docker/docker-compose.yml.example new file mode 100644 index 00000000..9284e1d3 --- /dev/null +++ b/docker/docker-compose.yml.example @@ -0,0 +1,39 @@ +version: '3.5' + +services: + cobalt-api: + build: + context: . + dockerfile: ./docker/dockerfile_api + restart: unless-stopped + container_name: cobalt-api + ports: + - 9000:9000/tcp + environment: + - apiPort=9000 + - apiURL='https://co.wuk.sh/' + - cors=1 + cobalt-web: + build: + context: . + dockerfile: ./docker/dockerfile_web + restart: unless-stopped + container_name: cobalt-web + ports: + - 9000:9000/tcp + environment: + - apiPort=9000 + - apiURL='https://co.wuk.sh/' + - cors=1 + cobalt-full: + build: + context: . + dockerfile: ./dockerfile + restart: unless-stopped + container_name: cobalt-full + ports: + - 9000:9000/tcp + environment: + - apiPort=9000 + - apiURL='https://co.wuk.sh/' + - cors=1 diff --git a/dockerfile_api b/docker/dockerfile_api similarity index 100% rename from dockerfile_api rename to docker/dockerfile_api diff --git a/dockerfile_web b/docker/dockerfile_web similarity index 100% rename from dockerfile_web rename to docker/dockerfile_web diff --git a/src/front/cobalt.js b/src/front/cobalt.js index cd77b2d2..59ec949a 100644 --- a/src/front/cobalt.js +++ b/src/front/cobalt.js @@ -19,10 +19,14 @@ const exceptions = { // used for mobile devices "vQuality": "720" }; -const apiURL = ''; +let apiURL = ''; let store = {}; +function changeAPI(url) { + apiURL = url; + return true +} function eid(id) { return document.getElementById(id) } From 9edc4bd61b685800bb6291374d1948ec26ae48f9 Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 22 May 2023 01:13:05 +0600 Subject: [PATCH 004/111] new inner layout - one main controlling script (cobalt.js). - added api server name to serverInfo endpoint. - one dockerfile. - less mess. --- .gitignore | 7 +- ....yml.example => docker-compose.yml.example | 27 +-- docker/dockerfile_api | 15 -- docker/dockerfile_web | 15 -- package.json | 4 +- src/cobalt.js | 219 ++---------------- src/{ => core}/api.js | 63 +++-- src/core/both.js | 197 ++++++++++++++++ src/core/web.js | 34 +++ src/front/cobalt.css | 4 - src/front/cobalt.js | 2 - src/modules/changelog/changelog.json | 4 +- src/modules/pageRender/page.js | 12 +- src/web.js | 59 ----- 14 files changed, 304 insertions(+), 358 deletions(-) rename docker/docker-compose.yml.example => docker-compose.yml.example (54%) delete mode 100644 docker/dockerfile_api delete mode 100644 docker/dockerfile_web rename src/{ => core}/api.js (78%) create mode 100644 src/core/both.js create mode 100644 src/core/web.js delete mode 100644 src/web.js diff --git a/.gitignore b/.gitignore index 8af52058..7d12aa29 100644 --- a/.gitignore +++ b/.gitignore @@ -5,10 +5,8 @@ package-lock.json # secrets .env -# esbuild -min - # page build +min build # stuff i already made but delayed @@ -16,3 +14,6 @@ future # docker docker-compose.yml + +# vscode +.vscode diff --git a/docker/docker-compose.yml.example b/docker-compose.yml.example similarity index 54% rename from docker/docker-compose.yml.example rename to docker-compose.yml.example index 9284e1d3..cb50b9f7 100644 --- a/docker/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -2,38 +2,35 @@ version: '3.5' services: cobalt-api: - build: - context: . - dockerfile: ./docker/dockerfile_api + build: . restart: unless-stopped container_name: cobalt-api ports: - 9000:9000/tcp environment: - apiPort=9000 - - apiURL='https://co.wuk.sh/' + - apiURL=https://co.wuk.sh/ + - apiName=eu-nl - cors=1 cobalt-web: - build: - context: . - dockerfile: ./docker/dockerfile_web + build: . restart: unless-stopped container_name: cobalt-web ports: - 9000:9000/tcp environment: + - webPort=9000 + - webURL=https://co.wukko.me/ - apiPort=9000 - - apiURL='https://co.wuk.sh/' + - apiURL=https://co.wuk.sh/ - cors=1 - cobalt-full: - build: - context: . - dockerfile: ./dockerfile + cobalt-both: + build: . restart: unless-stopped - container_name: cobalt-full + container_name: cobalt-both ports: - 9000:9000/tcp environment: - - apiPort=9000 - - apiURL='https://co.wuk.sh/' + - port=9000 + - selfURL=https://co.wukko.me/ - cors=1 diff --git a/docker/dockerfile_api b/docker/dockerfile_api deleted file mode 100644 index 60fdbec8..00000000 --- a/docker/dockerfile_api +++ /dev/null @@ -1,15 +0,0 @@ -FROM node:18-bullseye-slim -WORKDIR /app - -RUN apt-get update -RUN apt-get install -y git -RUN rm -rf /var/lib/apt/lists/* - -COPY package*.json ./ -RUN npm install - -RUN git clone -n https://github.com/wukko/cobalt.git --depth 1 && mv cobalt/.git ./ && rm -rf cobalt - -COPY . . -EXPOSE 9000 -CMD [ "node", "src/api" ] diff --git a/docker/dockerfile_web b/docker/dockerfile_web deleted file mode 100644 index e20460c3..00000000 --- a/docker/dockerfile_web +++ /dev/null @@ -1,15 +0,0 @@ -FROM node:18-bullseye-slim -WORKDIR /app - -RUN apt-get update -RUN apt-get install -y git -RUN rm -rf /var/lib/apt/lists/* - -COPY package*.json ./ -RUN npm install - -RUN git clone -n https://github.com/wukko/cobalt.git --depth 1 && mv cobalt/.git ./ && rm -rf cobalt - -COPY . . -EXPOSE 9000 -CMD [ "node", "src/web" ] diff --git a/package.json b/package.json index 2c0f7258..9db76a44 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,7 @@ "start": "node src/cobalt", "setup": "node src/modules/setup", "test": "node src/test/test", - "build": "node src/modules/buildStatic", - "api": "node src/api", - "web": "node src/web" + "build": "node src/modules/buildStatic" }, "repository": { "type": "git", diff --git a/src/cobalt.js b/src/cobalt.js index 066385a7..6f3dd795 100644 --- a/src/cobalt.js +++ b/src/cobalt.js @@ -1,213 +1,36 @@ import "dotenv/config"; import express from "express"; -import cors from "cors"; -import rateLimit from "express-rate-limit"; -import { randomBytes } from "crypto"; -const ipSalt = randomBytes(64).toString('hex'); +import { Bright, Green, Red } from "./modules/sub/consoleText.js"; +import { getCurrentBranch, shortCommit } from "./modules/sub/currentCommit.js"; +import { loadLoc } from "./localization/manager.js"; import path from 'path'; import { fileURLToPath } from 'url'; + +import { runWeb } from "./core/web.js"; +import { runAPI } from "./core/api.js"; +import { runBoth } from "./core/both.js"; + +const app = express(); + +const gitCommit = shortCommit(); +const gitBranch = getCurrentBranch(); + const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename).slice(0, -4); // go up another level (get rid of src/) -import { getCurrentBranch, shortCommit } from "./modules/sub/currentCommit.js"; -import { appName, genericUserAgent, version } from "./modules/config.js"; -import { getJSON } from "./modules/api.js"; -import { apiJSON, checkJSONPost, getIP, languageCode } from "./modules/sub/utils.js"; -import { Bright, Cyan, Green, Red } from "./modules/sub/consoleText.js"; -import stream from "./modules/stream/stream.js"; -import loc, { loadLoc } from "./localization/manager.js"; -import { buildFront } from "./modules/build.js"; -import { changelogHistory } from "./modules/pageRender/onDemand.js"; -import { sha256 } from "./modules/sub/crypto.js"; -import findRendered from "./modules/pageRender/findRendered.js"; -import { celebrationsEmoji } from "./modules/pageRender/elements.js"; +app.disable('x-powered-by'); -if (process.env.selfURL && process.env.port) { - const commitHash = shortCommit(); - const branch = getCurrentBranch(); - const app = express(); +await loadLoc(); // preload localization - app.disable('x-powered-by'); - - const corsConfig = process.env.cors === '0' ? { origin: process.env.selfURL, optionsSuccessStatus: 200 } : {}; - - const apiLimiter = rateLimit({ - windowMs: 60000, - max: 25, - standardHeaders: false, - legacyHeaders: false, - keyGenerator: (req, res) => sha256(getIP(req), ipSalt), - handler: (req, res, next, opt) => { - res.status(429).json({ "status": "error", "text": loc(languageCode(req), 'ErrorRateLimit') }); - return; - } - }); - const apiLimiterStream = rateLimit({ - windowMs: 60000, - max: 28, - standardHeaders: false, - legacyHeaders: false, - keyGenerator: (req, res) => sha256(getIP(req), ipSalt), - handler: (req, res, next, opt) => { - res.status(429).json({ "status": "error", "text": loc(languageCode(req), 'ErrorRateLimit') }); - return; - } - }); - - const startTime = new Date(); - const startTimestamp = Math.floor(startTime.getTime()); - - // preload localization files and build static pages - await loadLoc(); - await buildFront(commitHash, branch); - - app.use('/api/:type', cors(corsConfig)); - app.use('/api/json', apiLimiter); - app.use('/api/stream', apiLimiterStream); - app.use('/api/onDemand', apiLimiter); - - app.use('/', express.static('./build/min')); - app.use('/', express.static('./src/front')); - - app.use((req, res, next) => { - try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } - next(); - }); - app.use((req, res, next) => { - if (req.header("user-agent") && req.header("user-agent").includes("Trident")) res.destroy(); - next(); - }); - app.use('/api/json', express.json({ - verify: (req, res, buf) => { - try { - JSON.parse(buf); - if (buf.length > 720) throw new Error(); - if (String(req.header('Content-Type')) !== "application/json") { - res.status(400).json({ 'status': 'error', 'text': 'invalid content type header' }); - return; - } - if (String(req.header('Accept')) !== "application/json") { - res.status(400).json({ 'status': 'error', 'text': 'invalid accept header' }); - return; - } - } catch(e) { - res.status(400).json({ 'status': 'error', 'text': 'invalid json body.' }); - return; - } - } - })); - - app.post('/api/json', async (req, res) => { - try { - let ip = sha256(getIP(req), ipSalt); - let lang = languageCode(req); - let j = apiJSON(0, { t: "Bad request" }); - try { - let request = req.body; - if (request.url) { - request.dubLang = request.dubLang ? lang : false; - let chck = checkJSONPost(request); - if (chck) chck["ip"] = ip; - j = chck ? await getJSON(chck["url"], lang, chck) : apiJSON(0, { t: loc(lang, 'ErrorCouldntFetch') }); - } else { - j = apiJSON(0, { t: loc(lang, 'ErrorNoLink') }); - } - } catch (e) { - j = apiJSON(0, { t: loc(lang, 'ErrorCantProcess') }); - } - res.status(j.status).json(j.body); - return; - } catch (e) { - res.destroy(); - return - } - }); - - app.get('/api/:type', (req, res) => { - try { - let ip = sha256(getIP(req), ipSalt); - switch (req.params.type) { - case 'stream': - if (req.query.p) { - res.status(200).json({ "status": "continue" }); - return; - } else if (req.query.t && req.query.h && req.query.e) { - stream(res, ip, req.query.t, req.query.h, req.query.e); - } else { - let j = apiJSON(0, { t: "no stream id" }) - res.status(j.status).json(j.body); - return; - } - break; - case 'onDemand': - if (req.query.blockId) { - let blockId = req.query.blockId.slice(0, 3); - let r, j; - switch(blockId) { - case "0": // changelog history - r = changelogHistory(); - j = r ? apiJSON(3, { t: r }) : apiJSON(0, { t: "couldn't render this block" }) - break; - case "1": // celebrations emoji - r = celebrationsEmoji(); - j = r ? apiJSON(3, { t: r }) : false - break; - default: - j = apiJSON(0, { t: "couldn't find a block with this id" }) - break; - } - if (j.body) { - res.status(j.status).json(j.body) - } else { - res.status(204).end() - } - } else { - let j = apiJSON(0, { t: "no block id" }); - res.status(j.status).json(j.body) - } - break; - case 'serverInfo': - res.status(200).json({ - version: version, - commit: commitHash, - branch: branch, - url: process.env.apiURL, - cors: process.env.cors, - startTime: `${startTimestamp}` - }); - break; - default: - let j = apiJSON(0, { t: "unknown response type" }) - res.status(j.status).json(j.body); - break; - } - } catch (e) { - res.status(500).json({ 'status': 'error', 'text': loc(languageCode(req), 'ErrorCantProcess') }); - return; - } - }); - app.get("/api/status", (req, res) => { - res.status(200).end() - }); - app.get("/api", (req, res) => { - res.redirect('/api/json') - }); - app.get("/", (req, res) => { - res.sendFile(`${__dirname}/${findRendered(languageCode(req), req.header('user-agent') ? req.header('user-agent') : genericUserAgent)}`); - }); - app.get("/favicon.ico", (req, res) => { - res.redirect('/icons/favicon.ico'); - }); - app.get("/*", (req, res) => { - res.redirect('/') - }); - - app.listen(process.env.port, () => { - console.log(`\n${Cyan(appName)} ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(startTimestamp)})`)}\n\nURL: ${Cyan(`${process.env.selfURL}`)}\nPort: ${process.env.port}\n`) - }) +if (process.env.apiURL && process.env.apiPort && !((process.env.webURL && process.env.webPort) || (process.env.selfURL && process.env.port))) { + await runAPI(express, app, gitCommit, gitBranch, __dirname); +} else if (process.env.webURL && process.env.webPort && !((process.env.apiURL && process.env.apiPort) || (process.env.selfURL && process.env.port))) { + await runWeb(express, app, gitCommit, gitBranch, __dirname); +} else if (process.env.selfURL && process.env.port && !((process.env.apiURL && process.env.apiPort) || (process.env.webURL && process.env.webPort))) { + await runBoth(express, app, gitCommit, gitBranch, __dirname) } else { console.log(Red(`cobalt hasn't been configured yet or configuration is invalid.\n`) + Bright(`please run the setup script to fix this: `) + Green(`npm run setup`)); } diff --git a/src/api.js b/src/core/api.js similarity index 78% rename from src/api.js rename to src/core/api.js index 74c33e1f..0c9bfdbb 100644 --- a/src/api.js +++ b/src/core/api.js @@ -1,30 +1,21 @@ -import "dotenv/config"; - -import express from "express"; import cors from "cors"; import rateLimit from "express-rate-limit"; import { randomBytes } from "crypto"; const ipSalt = randomBytes(64).toString('hex'); -import { getCurrentBranch, shortCommit } from "./modules/sub/currentCommit.js"; -import { appName, version } from "./modules/config.js"; -import { getJSON } from "./modules/api.js"; -import { apiJSON, checkJSONPost, getIP, languageCode } from "./modules/sub/utils.js"; -import { Bright, Cyan, Green, Red } from "./modules/sub/consoleText.js"; -import stream from "./modules/stream/stream.js"; -import loc, { loadLoc } from "./localization/manager.js"; -import { changelogHistory } from "./modules/pageRender/onDemand.js"; -import { sha256 } from "./modules/sub/crypto.js"; -import { celebrationsEmoji } from "./modules/pageRender/elements.js"; - -if (process.env.apiURL && process.env.apiPort) { - const commitHash = shortCommit(); - const branch = getCurrentBranch(); - const app = express(); - - app.disable('x-powered-by'); +import { appName, version } from "../modules/config.js"; +import { getJSON } from "../modules/api.js"; +import { apiJSON, checkJSONPost, getIP, languageCode } from "../modules/sub/utils.js"; +import { Bright, Cyan } from "../modules/sub/consoleText.js"; +import stream from "../modules/stream/stream.js"; +import loc from "../localization/manager.js"; +import { changelogHistory } from "../modules/pageRender/onDemand.js"; +import { sha256 } from "../modules/sub/crypto.js"; +import { celebrationsEmoji } from "../modules/pageRender/elements.js"; +import { verifyStream } from "../modules/stream/manage.js"; +export async function runAPI(express, app, gitCommit, gitBranch, __dirname) { const corsConfig = process.env.cors === '0' ? { origin: process.env.webURL, optionsSuccessStatus: 200 } : {}; const apiLimiter = rateLimit({ @@ -53,9 +44,6 @@ if (process.env.apiURL && process.env.apiPort) { const startTime = new Date(); const startTimestamp = Math.floor(startTime.getTime()); - // preload localization files - await loadLoc(); - app.use('/api/:type', cors(corsConfig)); app.use('/api/json', apiLimiter); app.use('/api/stream', apiLimiterStream); @@ -65,10 +53,6 @@ if (process.env.apiURL && process.env.apiPort) { try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } next(); }); - app.use((req, res, next) => { - if (req.header("user-agent") && req.header("user-agent").includes("Trident")) res.destroy(); - next(); - }); app.use('/api/json', express.json({ verify: (req, res, buf) => { try { @@ -120,6 +104,12 @@ if (process.env.apiURL && process.env.apiPort) { let ip = sha256(getIP(req), ipSalt); switch (req.params.type) { case 'stream': + let streamInfo = verifyStream(ip, req.query.t, req.query.h, req.query.e); + if (streamInfo.error) { + res.status(streamInfo.status).json(apiJSON(0, { t: streamInfo.error }).body); + return; + } + if (req.query.p) { res.status(200).json({ "status": "continue" }); return; @@ -161,8 +151,9 @@ if (process.env.apiURL && process.env.apiPort) { case 'serverInfo': res.status(200).json({ version: version, - commit: commitHash, - branch: branch, + commit: gitCommit, + branch: gitBranch, + name: process.env.apiName ? process.env.apiName : "unknown", url: process.env.apiURL, cors: process.env.cors, startTime: `${startTimestamp}` @@ -178,19 +169,17 @@ if (process.env.apiURL && process.env.apiPort) { return; } }); - app.get("/api/status", (req, res) => { + app.get('/api/status', (req, res) => { res.status(200).end() }); - app.get("/favicon.ico", (req, res) => { - res.redirect('/icons/favicon.ico'); + app.get('/favicon.ico', (req, res) => { + res.sendFile(`${__dirname}/src/front/icons/favicon.ico`) }); - app.get("/*", (req, res) => { + app.get('/*', (req, res) => { res.redirect('/api/json') }); app.listen(process.env.apiPort, () => { - console.log(`\n${Cyan(appName)} API ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${startTimestamp})`)}\n\nURL: ${Cyan(`${process.env.apiURL}`)}\nPort: ${process.env.apiPort}\n`) - }) -} else { - console.log(Red(`cobalt api hasn't been configured yet or configuration is invalid.\n`) + Bright(`please run the setup script to fix this: `) + Green(`npm run setup`)); + console.log(`\n${Cyan(appName)} API ${Bright(`v.${version}-${gitCommit} (${gitBranch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${startTimestamp})`)}\n\nURL: ${Cyan(`${process.env.apiURL}`)}\nPort: ${process.env.apiPort}\n`) + }); } diff --git a/src/core/both.js b/src/core/both.js new file mode 100644 index 00000000..4b14592f --- /dev/null +++ b/src/core/both.js @@ -0,0 +1,197 @@ +import cors from "cors"; +import rateLimit from "express-rate-limit"; +import { randomBytes } from "crypto"; + +const ipSalt = randomBytes(64).toString('hex'); + +import { appName, genericUserAgent, version } from "../modules/config.js"; +import { getJSON } from "../modules/api.js"; +import { apiJSON, checkJSONPost, getIP, languageCode } from "../modules/sub/utils.js"; +import { Bright, Cyan, Green, Red } from "../modules/sub/consoleText.js"; +import stream from "../modules/stream/stream.js"; +import loc from "../localization/manager.js"; +import { buildFront } from "../modules/build.js"; +import { changelogHistory } from "../modules/pageRender/onDemand.js"; +import { sha256 } from "../modules/sub/crypto.js"; +import findRendered from "../modules/pageRender/findRendered.js"; +import { celebrationsEmoji } from "../modules/pageRender/elements.js"; + +export async function runBoth(express, app, gitCommit, gitBranch, __dirname) { + const corsConfig = process.env.cors === '0' ? { origin: process.env.selfURL, optionsSuccessStatus: 200 } : {}; + + const apiLimiter = rateLimit({ + windowMs: 60000, + max: 25, + standardHeaders: false, + legacyHeaders: false, + keyGenerator: (req, res) => sha256(getIP(req), ipSalt), + handler: (req, res, next, opt) => { + res.status(429).json({ "status": "error", "text": loc(languageCode(req), 'ErrorRateLimit') }); + return; + } + }); + const apiLimiterStream = rateLimit({ + windowMs: 60000, + max: 28, + standardHeaders: false, + legacyHeaders: false, + keyGenerator: (req, res) => sha256(getIP(req), ipSalt), + handler: (req, res, next, opt) => { + res.status(429).json({ "status": "error", "text": loc(languageCode(req), 'ErrorRateLimit') }); + return; + } + }); + + const startTime = new Date(); + const startTimestamp = Math.floor(startTime.getTime()); + + // preload localization files and build static pages + await buildFront(gitCommit, gitBranch); + + app.use('/api/:type', cors(corsConfig)); + app.use('/api/json', apiLimiter); + app.use('/api/stream', apiLimiterStream); + app.use('/api/onDemand', apiLimiter); + + app.use('/', express.static('./build/min')); + app.use('/', express.static('./src/front')); + + app.use((req, res, next) => { + try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } + next(); + }); + app.use((req, res, next) => { + if (req.header("user-agent") && req.header("user-agent").includes("Trident")) res.destroy(); + next(); + }); + app.use('/api/json', express.json({ + verify: (req, res, buf) => { + try { + JSON.parse(buf); + if (buf.length > 720) throw new Error(); + if (String(req.header('Content-Type')) !== "application/json") { + res.status(400).json({ 'status': 'error', 'text': 'invalid content type header' }); + return; + } + if (String(req.header('Accept')) !== "application/json") { + res.status(400).json({ 'status': 'error', 'text': 'invalid accept header' }); + return; + } + } catch(e) { + res.status(400).json({ 'status': 'error', 'text': 'invalid json body.' }); + return; + } + } + })); + + app.post('/api/json', async (req, res) => { + try { + let ip = sha256(getIP(req), ipSalt); + let lang = languageCode(req); + let j = apiJSON(0, { t: "Bad request" }); + try { + let request = req.body; + if (request.url) { + request.dubLang = request.dubLang ? lang : false; + let chck = checkJSONPost(request); + if (chck) chck["ip"] = ip; + j = chck ? await getJSON(chck["url"], lang, chck) : apiJSON(0, { t: loc(lang, 'ErrorCouldntFetch') }); + } else { + j = apiJSON(0, { t: loc(lang, 'ErrorNoLink') }); + } + } catch (e) { + j = apiJSON(0, { t: loc(lang, 'ErrorCantProcess') }); + } + res.status(j.status).json(j.body); + return; + } catch (e) { + res.destroy(); + return + } + }); + + app.get('/api/:type', (req, res) => { + try { + let ip = sha256(getIP(req), ipSalt); + switch (req.params.type) { + case 'stream': + if (req.query.p) { + res.status(200).json({ "status": "continue" }); + return; + } else if (req.query.t && req.query.h && req.query.e) { + stream(res, ip, req.query.t, req.query.h, req.query.e); + } else { + let j = apiJSON(0, { t: "no stream id" }) + res.status(j.status).json(j.body); + return; + } + break; + case 'onDemand': + if (req.query.blockId) { + let blockId = req.query.blockId.slice(0, 3); + let r, j; + switch(blockId) { + case "0": // changelog history + r = changelogHistory(); + j = r ? apiJSON(3, { t: r }) : apiJSON(0, { t: "couldn't render this block" }) + break; + case "1": // celebrations emoji + r = celebrationsEmoji(); + j = r ? apiJSON(3, { t: r }) : false + break; + default: + j = apiJSON(0, { t: "couldn't find a block with this id" }) + break; + } + if (j.body) { + res.status(j.status).json(j.body) + } else { + res.status(204).end() + } + } else { + let j = apiJSON(0, { t: "no block id" }); + res.status(j.status).json(j.body) + } + break; + case 'serverInfo': + res.status(200).json({ + version: version, + commit: gitCommit, + branch: gitBranch, + name: process.env.apiName ? process.env.apiName : "unknown", + url: process.env.apiURL, + cors: process.env.cors, + startTime: `${startTimestamp}` + }); + break; + default: + let j = apiJSON(0, { t: "unknown response type" }) + res.status(j.status).json(j.body); + break; + } + } catch (e) { + res.status(500).json({ 'status': 'error', 'text': loc(languageCode(req), 'ErrorCantProcess') }); + return; + } + }); + app.get("/api/status", (req, res) => { + res.status(200).end() + }); + app.get("/api", (req, res) => { + res.redirect('/api/json') + }); + app.get("/", (req, res) => { + res.sendFile(`${__dirname}/${findRendered(languageCode(req), req.header('user-agent') ? req.header('user-agent') : genericUserAgent)}`); + }); + app.get("/favicon.ico", (req, res) => { + res.redirect('/icons/favicon.ico'); + }); + app.get("/*", (req, res) => { + res.redirect('/') + }); + + app.listen(process.env.port, () => { + console.log(`${Red("⚠️ This way of running cobalt has been deprecated and will be removed soon.\nCheck the docs and get ready: ")}${Green("WIP")}`) + console.log(`\n${Cyan(appName)} ${Bright(`v.${version}-${gitCommit} (${gitBranch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(startTimestamp)})`)}\n\nURL: ${Cyan(`${process.env.selfURL}`)}\nPort: ${process.env.port}\n`) + }) +} diff --git a/src/core/web.js b/src/core/web.js new file mode 100644 index 00000000..95f1fd4a --- /dev/null +++ b/src/core/web.js @@ -0,0 +1,34 @@ +import { appName, genericUserAgent, version } from "../modules/config.js"; +import { languageCode } from "../modules/sub/utils.js"; +import { Bright, Cyan } from "../modules/sub/consoleText.js"; +import { buildFront } from "../modules/build.js"; +import findRendered from "../modules/pageRender/findRendered.js"; + +export async function runWeb(express, app, gitCommit, gitBranch, __dirname) { + await buildFront(gitCommit, gitBranch); + + app.use('/', express.static('./build/min')); + app.use('/', express.static('./src/front')); + + app.use((req, res, next) => { + try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } + next(); + }); + app.get("/status", (req, res) => { + res.status(200).end() + }); + app.get("/", (req, res) => { + res.sendFile(`${__dirname}/${findRendered(languageCode(req), req.header('user-agent') ? req.header('user-agent') : genericUserAgent)}`) + }); + app.get("/favicon.ico", (req, res) => { + res.sendFile(`${__dirname}/src/front/icons/favicon.ico`) + }); + app.get("/*", (req, res) => { + res.redirect('/') + }); + + app.listen(process.env.webPort, () => { + let startTime = new Date(); + console.log(`\n${Cyan(appName)} WEB ${Bright(`v.${version}-${gitCommit} (${gitBranch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(new Date().getTime())})`)}\n\nURL: ${Cyan(`${process.env.webURL}`)}\nPort: ${process.env.webPort}\n`) + }) +} diff --git a/src/front/cobalt.css b/src/front/cobalt.css index 338f0dc1..749ff065 100644 --- a/src/front/cobalt.css +++ b/src/front/cobalt.css @@ -664,10 +664,6 @@ button:active, #pd-share { display: none; } -#hop-attribution { - display: block; - text-align: right; -} #about-donate-footer::before { content: ""; position: absolute; diff --git a/src/front/cobalt.js b/src/front/cobalt.js index 59ec949a..f801a704 100644 --- a/src/front/cobalt.js +++ b/src/front/cobalt.js @@ -19,8 +19,6 @@ const exceptions = { // used for mobile devices "vQuality": "720" }; -let apiURL = ''; - let store = {}; function changeAPI(url) { diff --git a/src/modules/changelog/changelog.json b/src/modules/changelog/changelog.json index 0636d947..aa573457 100644 --- a/src/modules/changelog/changelog.json +++ b/src/modules/changelog/changelog.json @@ -1,9 +1,9 @@ { "current": { "version": "5.4", - "title": "instagram support, hop, docker, and more!", + "title": "instagram support, docker, and more!", "banner": "catphonestand.webp", - "content": "something many of you've been waiting for is finally here! try it out and let me know what you think :)\n\ntl;dr:\n*; added experimental instagram support! download any reels or videos you like, and make sure to report any issues you encounter. yes, you can convert either to audio.\n*; fixed support for on.soundcloud links.\n*; added share button to \"how to save?\" popup.\n*; added docker support.\n*; main instance is now powered by hop.io.\n\nservice improvements:\n*; added experimental support for videos from instagram. currently only reels and post videos are downloadable, but i'm looking into ways to save high resolution photos too. if you experience any issues, please report them on either of support platforms.\n*; fixed support for on.soundcloud share links. should work just as well as other versions!\n*; fixed an issue that made some youtube videos impossible to download.\n\ninterface improvements:\n*; new css-only checkmark! yes, i can't stop tinkering with it because slight flashing on svg load annoyed me. now it loads instantly (and also looks slightly better).\n*; fixed copy animation.\n*; minor localization improvements.\n*; fixed the embed logo that i broke somewhere in between 5.3 and 5.4.\n\ninternal improvements:\n*; now using nanoid for live render stream ids.\n*; added support for docker. it's kind of clumsy because of how i get .git folder inside the container, but if you know how to do it better, feel free to make a pr.\n*; cobalt now checks only for existence of environment variables, not exactly the .env file.\n*; changed the way user ip address is retrieved for instances using cloudflare.\n*; added ability to disable cors, both to setup script and environment variables.\n*; moved main instance to hop.io infra. there should no longer be random downtimes. huge shout out to the hop team for being so nice and helping me out :D\n\ni can't believe how diverse and widespread cobalt has become. it's used in all fields: music production, education, content creation, and even game development. thank you. this is absolutely nuts.\nif you don't mind sharing, please tell me about your use case. i'd really love to hear how you use cobalt and how i could make it even more useful for you." + "content": "something many of you've been waiting for is finally here! try it out and let me know what you think :)\n\ntl;dr:\n*; added experimental instagram support! download any reels or videos you like, and make sure to report any issues you encounter. yes, you can convert either to audio.\n*; fixed support for on.soundcloud links.\n*; added share button to \"how to save?\" popup.\n*; added docker support.\n\nservice improvements:\n*; added experimental support for videos from instagram. currently only reels and post videos are downloadable, but i'm looking into ways to save high resolution photos too. if you experience any issues, please report them on either of support platforms.\n*; fixed support for on.soundcloud share links. should work just as well as other versions!\n*; fixed an issue that made some youtube videos impossible to download.\n\ninterface improvements:\n*; new css-only checkmark! yes, i can't stop tinkering with it because slight flashing on svg load annoyed me. now it loads instantly (and also looks slightly better).\n*; fixed copy animation.\n*; minor localization improvements.\n*; fixed the embed logo that i broke somewhere in between 5.3 and 5.4.\n\ninternal improvements:\n*; now using nanoid for live render stream ids.\n*; added support for docker. it's kind of clumsy because of how i get .git folder inside the container, but if you know how to do it better, feel free to make a pr.\n*; cobalt now checks only for existence of environment variables, not exactly the .env file.\n*; changed the way user ip address is retrieved for instances using cloudflare.\n*; added ability to disable cors, both to setup script and environment variables.\n\ni can't believe how diverse and widespread cobalt has become. it's used in all fields: music production, education, content creation, and even game development. thank you. this is absolutely nuts.\nif you don't mind sharing, please tell me about your use case. i'd really love to hear how you use cobalt and how i could make it even more useful for you." }, "history": [{ "version": "5.3", diff --git a/src/modules/pageRender/page.js b/src/modules/pageRender/page.js index d506890a..f4046e80 100644 --- a/src/modules/pageRender/page.js +++ b/src/modules/pageRender/page.js @@ -48,10 +48,10 @@ export default function(obj) { ${appName} - + - + @@ -106,7 +106,6 @@ export default function(obj) { "title": t("CollapsePrivacy"), "body": t("PrivacyPolicy") }]) - + `${process.env.DEPLOYMENT_ID && process.env.INTERNAL_IP ? 'powered by hop.io' : ''}` }] }) }, { @@ -408,7 +407,8 @@ export default function(obj) { }])} - + }; + let apiURL = '${process.env.apiURL ? process.env.apiURL.slice(0, -1) : ''}'; + `; } catch (err) { diff --git a/src/web.js b/src/web.js deleted file mode 100644 index 4f298975..00000000 --- a/src/web.js +++ /dev/null @@ -1,59 +0,0 @@ -import "dotenv/config"; - -import express from "express"; - -import path from 'path'; -import { fileURLToPath } from 'url'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename).slice(0, -4); // go up another level (get rid of src/) - -import { getCurrentBranch, shortCommit } from "./modules/sub/currentCommit.js"; -import { appName, genericUserAgent, version } from "./modules/config.js"; -import { languageCode } from "./modules/sub/utils.js"; -import { Bright, Cyan, Green, Red } from "./modules/sub/consoleText.js"; -import { loadLoc } from "./localization/manager.js"; -import { buildFront } from "./modules/build.js"; -import findRendered from "./modules/pageRender/findRendered.js"; - -if (process.env.webURL && process.env.webPort) { - const commitHash = shortCommit(); - const branch = getCurrentBranch(); - const app = express(); - - app.disable('x-powered-by'); - - // preload localization files and build static pages - await loadLoc(); - await buildFront(commitHash, branch); - - app.use('/', express.static('./build/min')); - app.use('/', express.static('./src/front')); - - app.use((req, res, next) => { - try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } - next(); - }); - app.use((req, res, next) => { - if (req.header("user-agent") && req.header("user-agent").includes("Trident")) res.destroy(); - next(); - }); - app.get("/status", (req, res) => { - res.status(200).end() - }); - app.get("/", (req, res) => { - res.sendFile(`${__dirname}/${findRendered(languageCode(req), req.header('user-agent') ? req.header('user-agent') : genericUserAgent)}`); - }); - app.get("/favicon.ico", (req, res) => { - res.redirect('/icons/favicon.ico'); - }); - app.get("/*", (req, res) => { - res.redirect('/') - }); - - app.listen(process.env.webPort, () => { - let startTime = new Date(); - console.log(`\n${Cyan(appName)} WEB ${Bright(`v.${version}-${commitHash} (${branch})`)}\nStart time: ${Bright(`${startTime.toUTCString()} (${Math.floor(new Date().getTime())})`)}\n\nURL: ${Cyan(`${process.env.webURL}`)}\nPort: ${process.env.webPort}\n`) - }) -} else { - console.log(Red(`cobalt web hasn't been configured yet or configuration is invalid.\n`) + Bright(`please run the setup script to fix this: `) + Green(`npm run setup`)); -} From 5940bf0b18ca7975bbb80ac7592a09021b1a1612 Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 22 May 2023 01:14:59 +0600 Subject: [PATCH 005/111] comment --- src/cobalt.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cobalt.js b/src/cobalt.js index 6f3dd795..d349a79e 100644 --- a/src/cobalt.js +++ b/src/cobalt.js @@ -25,6 +25,7 @@ app.disable('x-powered-by'); await loadLoc(); // preload localization +// i don't like this at all if (process.env.apiURL && process.env.apiPort && !((process.env.webURL && process.env.webPort) || (process.env.selfURL && process.env.port))) { await runAPI(express, app, gitCommit, gitBranch, __dirname); } else if (process.env.webURL && process.env.webPort && !((process.env.apiURL && process.env.apiPort) || (process.env.selfURL && process.env.port))) { From 1014ee3413f7a1ffd341d19c73d80ca772348d11 Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 23 May 2023 22:52:17 +0600 Subject: [PATCH 006/111] added discord server to about --- src/config.json | 4 ++++ src/front/emoji/alien_monster.svg | 9 +++++++++ src/modules/emoji.js | 3 ++- src/modules/pageRender/page.js | 5 +++-- 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/front/emoji/alien_monster.svg diff --git a/src/config.json b/src/config.json index 2871c3ea..91915bcf 100644 --- a/src/config.json +++ b/src/config.json @@ -14,6 +14,10 @@ "mastodon": { "url": "https://wetdry.world/@cobalt", "handle": "@cobalt@wetdry.world" + }, + "discord": { + "url": "https://discord.gg/pQPt8HBUPu", + "handle": "cobalt community server" } } }, diff --git a/src/front/emoji/alien_monster.svg b/src/front/emoji/alien_monster.svg new file mode 100644 index 00000000..66be00bd --- /dev/null +++ b/src/front/emoji/alien_monster.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/modules/emoji.js b/src/modules/emoji.js index 284404d4..3565a452 100644 --- a/src/modules/emoji.js +++ b/src/modules/emoji.js @@ -23,7 +23,8 @@ const names = { "🐙": "octopus", "🔮": "crystal_ball", "💪": "biceps", - "💖": "sparkling_heart" + "💖": "sparkling_heart", + "👾": "alien_monster" } let sizing = { 22: 0.4, diff --git a/src/modules/pageRender/page.js b/src/modules/pageRender/page.js index f4046e80..9e6bf957 100644 --- a/src/modules/pageRender/page.js +++ b/src/modules/pageRender/page.js @@ -96,8 +96,9 @@ export default function(obj) { "name": "support", "title": t("CollapseSupport"), "body": `${t("FollowSupport")}
- ${socialLink(emoji("🐘"), "mastodon", authorInfo.support.mastodon.handle, authorInfo.support.mastodon.url)} - ${socialLink(emoji("🐦"), "twitter", authorInfo.support.twitter.handle, authorInfo.support.twitter.url)}
+ ${socialLink(emoji("🐦"), "twitter", authorInfo.support.twitter.handle, authorInfo.support.twitter.url)} + ${socialLink(emoji("👾"), "discord", authorInfo.support.discord.handle, authorInfo.support.discord.url)} + ${socialLink(emoji("🐘"), "mastodon", authorInfo.support.mastodon.handle, authorInfo.support.mastodon.url)}
${t("SourceCode")}
${socialLink(emoji("🐙"), "github", repo.replace("https://github.com/", ''), repo)}
${t("SupportNote")}` From 40291c4d24cb5f441cdddfd26104f149bc4ee27c Mon Sep 17 00:00:00 2001 From: Snazzah Date: Wed, 24 May 2023 12:32:41 -0500 Subject: [PATCH 007/111] feat: add pinterest support --- src/modules/processing/match.js | 4 ++ src/modules/processing/matchActionDecider.js | 1 + src/modules/processing/services/pinterest.js | 24 ++++++++++ src/modules/processing/servicesConfig.json | 5 +++ .../processing/servicesPatternTesters.js | 4 +- src/modules/sub/utils.js | 3 ++ src/test/tests.json | 45 +++++++++++++++++++ 7 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 src/modules/processing/services/pinterest.js diff --git a/src/modules/processing/match.js b/src/modules/processing/match.js index 3328a32c..e06166db 100644 --- a/src/modules/processing/match.js +++ b/src/modules/processing/match.js @@ -17,6 +17,7 @@ import vimeo from "./services/vimeo.js"; import soundcloud from "./services/soundcloud.js"; import instagram from "./services/instagram.js"; import vine from "./services/vine.js"; +import pinterest from "./services/pinterest.js"; export default async function (host, patternMatch, url, lang, obj) { try { @@ -110,6 +111,9 @@ export default async function (host, patternMatch, url, lang, obj) { case "vine": r = await vine({ id: patternMatch["id"] }); break; + case "pinterest": + r = await pinterest({ id: patternMatch["id"] }); + break; default: return apiJSON(0, { t: errorUnsupported(lang) }); } diff --git a/src/modules/processing/matchActionDecider.js b/src/modules/processing/matchActionDecider.js index ba10af27..e26d8ef3 100644 --- a/src/modules/processing/matchActionDecider.js +++ b/src/modules/processing/matchActionDecider.js @@ -56,6 +56,7 @@ export default function(r, host, ip, audioFormat, isAudioOnly, lang, isAudioMute case "instagram": case "tumblr": case "twitter": + case "pinterest": responseType = 1; break; } diff --git a/src/modules/processing/services/pinterest.js b/src/modules/processing/services/pinterest.js new file mode 100644 index 00000000..2e3354e2 --- /dev/null +++ b/src/modules/processing/services/pinterest.js @@ -0,0 +1,24 @@ +import { maxVideoDuration } from "../../config.js"; + +export default async function(obj) { + const pinId = obj.id.split('--').reverse()[0]; + if (!/^\d+$/.test(pinId)) return { error: 'ErrorCantGetID' }; + let data = await fetch(`https://www.pinterest.com/resource/PinResource/get?data=${encodeURIComponent(JSON.stringify({ + options: { + field_set_key: "unauth_react_main_pin", + id: pinId + } + }))}`).then((r) => { return r.json() }).catch(() => { return false }); + if (!data) return { error: 'ErrorCouldntFetch' }; + + data = data["resource_response"]["data"]; + + let video = null; + + if (data.videos !== null) video = data.videos.video_list.V_720P; + else if (data.story_pin_data !== null) video = data.story_pin_data.pages[0].blocks[0].video.video_list.V_EXP7; + + if (!video) return { error: 'ErrorEmptyDownload' }; + if (video.duration > maxVideoDuration) return { error: ['ErrorLengthLimit', maxVideoDuration / 60000] }; + return { urls: video.url, filename: `pinterest_${pinId}.mp4`, audioFilename: `pinterest_${pinId}_audio` } +} diff --git a/src/modules/processing/servicesConfig.json b/src/modules/processing/servicesConfig.json index 2bb7f8fe..1890edac 100644 --- a/src/modules/processing/servicesConfig.json +++ b/src/modules/processing/servicesConfig.json @@ -62,6 +62,11 @@ "tld": "co", "patterns": ["v/:id"], "enabled": true + }, + "pinterest": { + "alias": "pinterest videos & stories", + "patterns": ["pin/:id"], + "enabled": true } } } diff --git a/src/modules/processing/servicesPatternTesters.js b/src/modules/processing/servicesPatternTesters.js index 8f70613c..e3286c37 100644 --- a/src/modules/processing/servicesPatternTesters.js +++ b/src/modules/processing/servicesPatternTesters.js @@ -28,5 +28,7 @@ export const testers = { "instagram": (patternMatch) => (patternMatch["id"] && patternMatch["id"].length <= 12), - "vine": (patternMatch) => (patternMatch["id"] && patternMatch["id"].length <= 12) + "vine": (patternMatch) => (patternMatch["id"] && patternMatch["id"].length <= 12), + + "pinterest": (patternMatch) => (patternMatch["id"] && patternMatch["id"].length <= 128) } diff --git a/src/modules/sub/utils.js b/src/modules/sub/utils.js index 48e6b7c7..92b10820 100644 --- a/src/modules/sub/utils.js +++ b/src/modules/sub/utils.js @@ -72,6 +72,9 @@ export function cleanURL(url, host) { break; case "tiktok": url = url.replace(/@([a-zA-Z]+(\.[a-zA-Z]+)+)/, "@a") + case "pinterest": + // Redirect all TLDs back to .com + url = url.replace(/:\/\/(?:www.)pinterest(?:\.[a-z.]+)/, "://pinterest.com") default: url = url.split('?')[0]; if (url.substring(url.length - 1) === "/") url = url.substring(0, url.length - 1); diff --git a/src/test/tests.json b/src/test/tests.json index 17ed2c41..f3381b54 100644 --- a/src/test/tests.json +++ b/src/test/tests.json @@ -893,5 +893,50 @@ "code": 200, "status": "stream" } + }], + "pinterest": [{ + "name": "regular video", + "url": "https://www.pinterest.com/pin/70437485604616/", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } + }, { + "name": "regular video (isAudioOnly)", + "url": "https://www.pinterest.com/pin/70437485604616/", + "params": { + "isAudioOnly": true + }, + "expected": { + "code": 200, + "status": "stream" + } + }, { + "name": "regular video (isAudioMuted)", + "url": "https://www.pinterest.com/pin/70437485604616/", + "params": { + "isAudioMuted": true + }, + "expected": { + "code": 200, + "status": "stream" + } + }, { + "name": "regular video (.ca TLD)", + "url": "https://www.pinterest.ca/pin/70437485604616/", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } + }, { + "name": "story", + "url": "https://www.pinterest.com/pin/gadget-cool-products-amazon-product-technology-kitchen-gadgets--1084663891475263837/", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } }] } \ No newline at end of file From f68edb51c73100e5494aa4203629c34fdd988769 Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 5 Jun 2023 11:27:43 +0600 Subject: [PATCH 008/111] 4 spaces!! four!! --- src/modules/processing/services/pinterest.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/processing/services/pinterest.js b/src/modules/processing/services/pinterest.js index 2e3354e2..335d7360 100644 --- a/src/modules/processing/services/pinterest.js +++ b/src/modules/processing/services/pinterest.js @@ -2,12 +2,12 @@ import { maxVideoDuration } from "../../config.js"; export default async function(obj) { const pinId = obj.id.split('--').reverse()[0]; - if (!/^\d+$/.test(pinId)) return { error: 'ErrorCantGetID' }; + if (!(/^\d+$/.test(pinId))) return { error: 'ErrorCantGetID' }; let data = await fetch(`https://www.pinterest.com/resource/PinResource/get?data=${encodeURIComponent(JSON.stringify({ - options: { - field_set_key: "unauth_react_main_pin", - id: pinId - } + options: { + field_set_key: "unauth_react_main_pin", + id: pinId + } }))}`).then((r) => { return r.json() }).catch(() => { return false }); if (!data) return { error: 'ErrorCouldntFetch' }; From 55f1e4b704cafcca64bc9bc4fe14c0eaa0cd907c Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 5 Jun 2023 12:43:04 +0600 Subject: [PATCH 009/111] tumblr audio, youtube vr, updated setup script, further mitosis accommodations --- README.md | 20 ++-- docker-compose.yml.example | 4 - docs/API.md | 8 ++ src/core/web.js | 17 +++ src/modules/api.js | 3 +- src/modules/processing/matchActionDecider.js | 8 +- src/modules/processing/services/tumblr.js | 18 +++- src/modules/processing/services/youtube.js | 13 ++- src/modules/setup.js | 104 ++++++++++++++----- src/test/tests.json | 29 ++++++ 10 files changed, 173 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 881a6347..e5355d1d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # cobalt Best way to save what you love. -Main instance: [co.wukko.me](https://co.wukko.me/) +Live web app: [co.wukko.me](https://co.wukko.me/) ![cobalt logo with repeated logo pattern background](https://raw.githubusercontent.com/wukko/cobalt/current/src/front/icons/pattern.png "cobalt logo with repeated logo pattern background") @@ -21,21 +21,22 @@ Paste the link, get the video, move on. It's that simple. Just how it should be. | Reddit | ✅ | ✅ | ✅ | Support for GIFs and videos. | | SoundCloud | ➖ | ✅ | ➖ | Audio metadata, downloads from private links. | | TikTok | ✅ | ✅ | ✅ | Supports downloads of: videos with or without watermark, images from slideshow without watermark, full (original) audios. | -| Tumblr | ✅ | ✅ | ✅ | | +| Tumblr | ✅ | ✅ | ✅ | Support for audio file downloads. | | Twitter | ✅ | ✅ | ✅ | Ability to pick what to save from multi-media tweets. | | Twitter Spaces | ➖ | ✅ | ➖ | Audio metadata with all participants and other info. | | Vimeo | ✅ | ✅ | ✅ | Audio downloads are only available for dash files. | | Vine Archive | ✅ | ✅ | ✅ | | | VK Videos | ✅ | ❌ | ❌ | | | VK Clips | ✅ | ❌ | ❌ | | -| YouTube Videos & Shorts | ✅ | ✅ | ✅ | Support for 8K, 4K, HDR, and high FPS videos. Audio metadata & dubs. h264/av1/vp9 codecs. | +| YouTube Videos & Shorts | ✅ | ✅ | ✅ | Support for 8K, 4K, HDR, VR, and high FPS videos. Audio metadata & dubs. h264/av1/vp9 codecs. | | YouTube Music | ➖ | ✅ | ➖ | Audio metadata. | This list is not final and keeps expanding over time, make sure to check it once in a while! ## cobalt API cobalt has an open API that you can use in your projects for **free**. -It's easy and straightforward to use, [check out the docs](https://github.com/wukko/cobalt/blob/current/docs/API.md) and see for yourself. +It's easy and straightforward to use, [check out the docs](https://github.com/wukko/cobalt/blob/current/docs/API.md) and see for yourself. +Feel free to use the main API instance ([co.wuk.sh](https://co.wuk.sh/)) in your projects. ## How to contribute translations You can translate cobalt to any language you want on [cobalt's Crowdin](https://crowdin-co.wukko.me/). Feel free to ignore QA errors if you think you know better. If you don't see a language you want to translate cobalt to, open an issue, and I'll add it to Crowdin. @@ -62,6 +63,8 @@ Setup script installs all needed `npm` dependencies, but you have to install `No 3. Run cobalt via `npm start` 4. Done. +You need to host API and web app separately ever since v.6.0. Setup script will help you with that! + ### Ubuntu 22.04+ workaround `nscd` needs to be installed and running so that the `ffmpeg-static` binary can resolve DNS ([#101](https://github.com/wukko/cobalt/issues/101#issuecomment-1494822258)): @@ -71,13 +74,8 @@ sudo service nscd start ``` ### Docker -It's also possible to run cobalt via Docker, but you **need** to set all environment variables yourself: - -| Variable | Description | Example | -| -------- | :--- | :--- | -| `selfURL` | Instance URL | `http://localhost:9000/` or `https://co.wukko.me/` or etc | -| `port` | Instance port | `9000` | -| `cors` | CORS toggle | `0` | +It's also possible to run cobalt via Docker. I *highly* recommend using Docker compose. +Check out the [example compose file](https://github.com/wukko/cobalt/blob/current/docker-compose.yml.example) and alter it for your needs. ## Disclaimer cobalt is my passion project, so update schedule depends solely on my free time, motivation, and mood. diff --git a/docker-compose.yml.example b/docker-compose.yml.example index cb50b9f7..8ba8c870 100644 --- a/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -11,7 +11,6 @@ services: - apiPort=9000 - apiURL=https://co.wuk.sh/ - apiName=eu-nl - - cors=1 cobalt-web: build: . restart: unless-stopped @@ -21,9 +20,7 @@ services: environment: - webPort=9000 - webURL=https://co.wukko.me/ - - apiPort=9000 - apiURL=https://co.wuk.sh/ - - cors=1 cobalt-both: build: . restart: unless-stopped @@ -33,4 +30,3 @@ services: environment: - port=9000 - selfURL=https://co.wukko.me/ - - cors=1 diff --git a/docs/API.md b/docs/API.md index f45e2c0e..38038bd0 100644 --- a/docs/API.md +++ b/docs/API.md @@ -1,5 +1,13 @@ # cobalt API Documentation This document provides info about methods and acceptable variables for all cobalt API requests.
+ +``` +⚠️ Main API instance has moved to https://co.wuk.sh/ + +Previous API domain will stop redirecting users to correct API instance after July 25th. +Make sure to update your projects in time. +``` + ## POST: ``/api/json`` Main processing endpoint.
diff --git a/src/core/web.js b/src/core/web.js index 95f1fd4a..afde9fe7 100644 --- a/src/core/web.js +++ b/src/core/web.js @@ -4,9 +4,18 @@ import { Bright, Cyan } from "../modules/sub/consoleText.js"; import { buildFront } from "../modules/build.js"; import findRendered from "../modules/pageRender/findRendered.js"; +// * will be removed in the future +import cors from "cors"; +// * + export async function runWeb(express, app, gitCommit, gitBranch, __dirname) { await buildFront(gitCommit, gitBranch); + // * will be removed in the future + const corsConfig = process.env.cors === '0' ? { origin: process.env.webURL, optionsSuccessStatus: 200 } : {}; + app.use('/api/:type', cors(corsConfig)); + // * + app.use('/', express.static('./build/min')); app.use('/', express.static('./src/front')); @@ -23,6 +32,14 @@ export async function runWeb(express, app, gitCommit, gitBranch, __dirname) { app.get("/favicon.ico", (req, res) => { res.sendFile(`${__dirname}/src/front/icons/favicon.ico`) }); + // * will be removed in the future + app.get("/api/*", (req, res) => { + res.redirect(308, process.env.apiURL.slice(0, -1) + req.url) + }); + app.post("/api/*", (req, res) => { + res.redirect(308, process.env.apiURL.slice(0, -1) + req.url) + }); + // * app.get("/*", (req, res) => { res.redirect('/') }); diff --git a/src/modules/api.js b/src/modules/api.js index d5446810..94ed5040 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -34,8 +34,9 @@ export async function getJSON(originalURL, lang, obj) { } if (!(host && host.length < 20 && host in patterns && patterns[host]["enabled"])) return apiJSON(0, { t: errorUnsupported(lang) }); + let pathToMatch = cleanURL(url, host).split(`.${patterns[host]['tld'] ? patterns[host]['tld'] : "com"}/`)[1].replace('.', ''); for (let i in patterns[host]["patterns"]) { - patternMatch = new UrlPattern(patterns[host]["patterns"][i]).match(cleanURL(url, host).split(`.${patterns[host]['tld'] ? patterns[host]['tld'] : "com"}/`)[1].replace('.', '')); + patternMatch = new UrlPattern(patterns[host]["patterns"][i]).match(pathToMatch); if (patternMatch) break } if (!patternMatch) return apiJSON(0, { t: errorUnsupported(lang) }); diff --git a/src/modules/processing/matchActionDecider.js b/src/modules/processing/matchActionDecider.js index ba10af27..e0005044 100644 --- a/src/modules/processing/matchActionDecider.js +++ b/src/modules/processing/matchActionDecider.js @@ -113,9 +113,11 @@ export default function(r, host, ip, audioFormat, isAudioOnly, lang, isAudioMute processType = "bridge" } } - - if ((audioFormat === "best" && services[host]["bestAudio"]) - || services[host]["bestAudio"] && (audioFormat === services[host]["bestAudio"])) { + if (host === "tumblr" && !r.filename && (audioFormat === "best" || audioFormat === "mp3")) { + audioFormat = "mp3"; + processType = "bridge" + } + if ((audioFormat === "best" && services[host]["bestAudio"]) || (services[host]["bestAudio"] && (audioFormat === services[host]["bestAudio"]))) { audioFormat = services[host]["bestAudio"]; processType = "bridge" } else if (audioFormat === "best") { diff --git a/src/modules/processing/services/tumblr.js b/src/modules/processing/services/tumblr.js index 95ba7f4e..7ae7336c 100644 --- a/src/modules/processing/services/tumblr.js +++ b/src/modules/processing/services/tumblr.js @@ -8,7 +8,21 @@ export default async function(obj) { }).then((r) => { return r.text() }).catch(() => { return false }); if (!html) return { error: 'ErrorCouldntFetch' }; - if (!html.includes('property="og:video" content="https://va.media.tumblr.com/')) return { error: 'ErrorEmptyDownload' }; - return { urls: `https://va.media.tumblr.com/${html.split('property="og:video" content="https://va.media.tumblr.com/')[1].split('"')[0]}`, filename: `tumblr_${obj.id}.mp4`, audioFilename: `tumblr_${obj.id}_audio` } + let r; + if (html.includes('property="og:video" content="https://va.media.tumblr.com/')) { + r = { + urls: `https://va.media.tumblr.com/${html.split('property="og:video" content="https://va.media.tumblr.com/')[1].split('"')[0]}`, + filename: `tumblr_${obj.id}.mp4`, + audioFilename: `tumblr_${obj.id}_audio` + } + } else if (html.includes('property="og:audio" content="https://a.tumblr.com/')) { + r = { + urls: `https://a.tumblr.com/${html.split('property="og:audio" content="https://a.tumblr.com/')[1].split('"')[0]}`, + audioFilename: `tumblr_${obj.id}`, + isAudioOnly: true + } + } else r = { error: 'ErrorEmptyDownload' }; + + return r; } diff --git a/src/modules/processing/services/youtube.js b/src/modules/processing/services/youtube.js index 25266547..e686b4c7 100644 --- a/src/modules/processing/services/youtube.js +++ b/src/modules/processing/services/youtube.js @@ -23,6 +23,10 @@ const c = { export default async function(o) { let info, isDubbed, quality = o.quality === "max" ? "9000" : o.quality; //set quality 9000(p) to be interpreted as max + function qual(i) { + return i['quality_label'].split('p')[0].split('s')[0] + } + try { info = await yt.getBasicInfo(o.id, 'ANDROID'); } catch (e) { @@ -30,6 +34,7 @@ export default async function(o) { } if (!info) return { error: 'ErrorCantConnectToServiceAPI' }; + if (info.playability_status.status !== 'OK') return { error: 'ErrorYTUnavailable' }; if (info.basic_info.is_live) return { error: 'ErrorLiveVideo' }; @@ -40,7 +45,7 @@ export default async function(o) { bestQuality = adaptive_formats.find(i => i["has_video"]); hasAudio = adaptive_formats.find(i => i["has_audio"]); - if (bestQuality) bestQuality = bestQuality['quality_label'].split('p')[0]; + if (bestQuality) bestQuality = qual(bestQuality); if (!bestQuality && !o.isAudioOnly || !hasAudio) return { error: 'ErrorYTTryOtherCodec' }; if (info.basic_info.duration > maxVideoDuration / 1000) return { error: ['ErrorLengthLimit', maxVideoDuration / 60000] }; @@ -73,9 +78,9 @@ export default async function(o) { }; return r } - let checkSingle = (i) => ((i['quality_label'].split('p')[0] === quality || i['quality_label'].split('p')[0] === bestQuality) && i["mime_type"].includes(c[o.format].codec)), - checkBestVideo = (i) => (i["has_video"] && !i["has_audio"] && i['quality_label'].split('p')[0] === bestQuality), - checkRightVideo = (i) => (i["has_video"] && !i["has_audio"] && i['quality_label'].split('p')[0] === quality); + let checkSingle = (i) => ((qual(i) === quality || qual(i) === bestQuality) && i["mime_type"].includes(c[o.format].codec)), + checkBestVideo = (i) => (i["has_video"] && !i["has_audio"] && qual(i) === bestQuality), + checkRightVideo = (i) => (i["has_video"] && !i["has_audio"] && qual(i) === quality); if (!o.isAudioOnly && !o.isAudioMuted && o.format === 'h264') { let single = info.streaming_data.formats.find(i => checkSingle(i)); diff --git a/src/modules/setup.js b/src/modules/setup.js index 2740a770..3aae0543 100644 --- a/src/modules/setup.js +++ b/src/modules/setup.js @@ -5,48 +5,100 @@ import { execSync } from "child_process"; let envPath = './.env'; let q = `${Cyan('?')} \x1b[1m`; -let ob = {} +let ob = {}; let rl = createInterface({ input: process.stdin, output: process.stdout }); let final = () => { - if (existsSync(envPath)) { - unlinkSync(envPath) - } + if (existsSync(envPath)) unlinkSync(envPath); + for (let i in ob) { appendFileSync(envPath, `${i}=${ob[i]}\n`) } - console.log(Bright("\nAwesome! I've created a fresh .env file for you.")) - console.log(`${Bright("Now I'll run")} ${Cyan("npm install")} ${Bright("to install all dependencies. It shouldn't take long.\n\n")}`) + console.log(Bright("\nAwesome! I've created a fresh .env file for you.")); + console.log(`${Bright("Now I'll run")} ${Cyan("npm install")} ${Bright("to install all dependencies. It shouldn't take long.\n\n")}`); execSync('npm install', { stdio: [0, 1, 2] }); - console.log(`\n\n${Cyan("All done!\n")}`) - console.log(Bright("You can re-run this script at any time to update the configuration.")) - console.log(Bright("\nYou're now ready to start cobalt. Simply run ") + Cyan("npm start") + Bright('!\nHave fun :)')) + console.log(`\n\n${Cyan("All done!\n")}`); + console.log(Bright("You can re-run this script at any time to update the configuration.")); + console.log(Bright("\nYou're now ready to start cobalt. Simply run ") + Cyan("npm start") + Bright('!\nHave fun :)')); rl.close() } console.log( - `${Cyan("Welcome to cobalt!")}\n${Bright("Let's start by creating a new ")}${Cyan(".env")}${Bright(" file. You can always change it later.")}` + `${Cyan("Hey, this is cobalt.")}\n${Bright("Let's start by creating a new ")}${Cyan(".env")}${Bright(" file. You can always change it later.")}` ) + console.log( - Bright("\nWhat's the domain this instance will be running on? (localhost)\nExample: co.wukko.me") + `\n${Bright("⚠️ Please notice that since v.6.0 cobalt is hosted in two parts. API and web app are now separate.\nMerged hosting is deprecated and will be removed in the future.")}` ) +function setup() { + console.log(Bright("\nWhat kind of server will this instance be?\nOptions: api, web.")); -rl.question(q, r1 => { - ob['selfURL'] = `http://localhost:9000/` - ob['port'] = 9000 - if (r1) ob['selfURL'] = `https://${r1}/` + rl.question(q, r1 => { + switch (r1.toLowerCase()) { + case 'api': + console.log(Bright("\nCool! What's the domain this API instance will be running on? (localhost)\nExample: co.wuk.sh")); - console.log(Bright("\nGreat! Now, what's the port it'll be running on? (9000)")) + rl.question(q, apiURL => { + ob['apiURL'] = `http://localhost:9000/`; + ob['apiPort'] = 9000; + if (apiURL && apiURL !== "localhost") ob['apiURL'] = `https://${apiURL.toLowerCase()}/`; - rl.question(q, r2 => { - if (r2) ob['port'] = r2 - if (!r1 && r2) ob['selfURL'] = `http://localhost:${r2}/` + console.log(Bright("\nGreat! Now, what port will it be running on? (9000)")); - console.log(Bright("\nWould you like to enable CORS? It allows other websites and extensions to use your instance's API.\ny/n (n)")) + rl.question(q, apiPort => { + if (apiPort) ob['apiPort'] = apiPort; + if (apiPort && (apiURL === "localhost" || !apiURL)) ob['apiURL'] = `http://localhost:${apiPort}/`; - rl.question(q, r3 => { - if (r3.toLowerCase() !== 'y') ob['cors'] = '0' - final() - }) - }); -}) + console.log(Bright("\nWhat will your instance's name be? Usually it's something like eu-nl aka region-country. (local)")); + + rl.question(q, apiName => { + ob['apiName'] = apiName.toLowerCase(); + if (!apiName || apiName === "local") ob['apiName'] = "local"; + + console.log(Bright("\nOne last thing: would you like to enable CORS? It allows other websites and extensions to use your instance's API.\ny/n (n)")); + + rl.question(q, apiCors => { + if (apiCors.toLowerCase() !== 'y') ob['cors'] = '0' + final() + }) + }) + }); + + }) + break; + case 'web': + console.log(Bright("\nAwesome! What's the domain this web app instance will be running on? (localhost)\nExample: co.wukko.me")); + + rl.question(q, webURL => { + ob['webURL'] = `http://localhost:9001/`; + ob['webPort'] = 9001; + if (webURL && webURL !== "localhost") ob['webURL'] = `https://${webURL.toLowerCase()}/`; + + console.log( + Bright("\nGreat! Now, what port will it be running on? (9001)") + ) + rl.question(q, webPort => { + if (webPort) ob['webPort'] = webPort; + if (webPort && (webURL === "localhost" || !webURL)) ob['webURL'] = `http://localhost:${webPort}/`; + + console.log( + Bright("\nOne last thing: what default API domain should be used? (co.wuk.sh)\nIf it's hosted locally, make sure to include the port:") + Cyan(" localhost:9000") + ); + + rl.question(q, apiURL => { + ob['apiURL'] = `https://${apiURL.toLowerCase()}/`; + if (apiURL.includes(':')) ob['apiURL'] = `http://${apiURL.toLowerCase()}/`; + if (!apiURL) ob['apiURL'] = "https://co.wuk.sh/"; + final() + }) + }); + + }); + break; + default: + console.log(Bright("\nThis is not an option. Try again.")); + setup() + } + }) +} +setup() diff --git a/src/test/tests.json b/src/test/tests.json index 17ed2c41..cda2653d 100644 --- a/src/test/tests.json +++ b/src/test/tests.json @@ -446,6 +446,17 @@ "code": 200, "status": "stream" } + }, { + "name": "vr 360, av1, max", + "url": "https://www.youtube.com/watch?v=hEdzv7D4CbQ", + "params": { + "vCodec": "vp9", + "vQuality": "max" + }, + "expected": { + "code": 200, + "status": "stream" + } }, { "name": "inexistent video", "url": "https://youtube.com/watch?v=gnjuHYWGEW", @@ -717,6 +728,24 @@ "code": 200, "status": "redirect" } + }, { + "name": "tumblr audio", + "url": "https://rf9weu8hjf789234hf9.tumblr.com/post/172006661342/everyone-thats-made-a-video-out-of-this-without", + "params": {}, + "expected": { + "code": 200, + "status": "stream" + } + }, { + "name": "tumblr video converted to audio", + "url": "https://garfield-69.tumblr.com/post/696499862852780032", + "params": { + "isAudioOnly": true + }, + "expected": { + "code": 200, + "status": "stream" + } }], "vimeo": [{ "name": "4k progressive", From 66c797e2520baa7e096ee7e8d2efdb472a6fb578 Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 5 Jun 2023 12:47:03 +0600 Subject: [PATCH 010/111] oops --- src/core/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/api.js b/src/core/api.js index 0c9bfdbb..6826efd2 100644 --- a/src/core/api.js +++ b/src/core/api.js @@ -15,7 +15,7 @@ import { sha256 } from "../modules/sub/crypto.js"; import { celebrationsEmoji } from "../modules/pageRender/elements.js"; import { verifyStream } from "../modules/stream/manage.js"; -export async function runAPI(express, app, gitCommit, gitBranch, __dirname) { +export function runAPI(express, app, gitCommit, gitBranch, __dirname) { const corsConfig = process.env.cors === '0' ? { origin: process.env.webURL, optionsSuccessStatus: 200 } : {}; const apiLimiter = rateLimit({ From 8d39096977fe71925aaf92a3722e0e21d609b7bc Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 7 Jun 2023 16:18:41 +0600 Subject: [PATCH 011/111] image lazy loading --- README.md | 1 + src/modules/emoji.js | 2 +- src/modules/pageRender/onDemand.js | 2 +- src/modules/pageRender/page.js | 7 ++++--- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e5355d1d..e930d078 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Paste the link, get the video, move on. It's that simple. Just how it should be. | bilibili.com | ✅ | ✅ | ✅ | | | Instagram | ✅ | ✅ | ✅ | Ability to pick what to save from multi-media posts. | | Instagram Reels | ✅ | ✅ | ✅ | | +| Pinterest | ✅ | ✅ | ✅ | Support for videos and stories. | | Reddit | ✅ | ✅ | ✅ | Support for GIFs and videos. | | SoundCloud | ➖ | ✅ | ➖ | Audio metadata, downloads from private links. | | TikTok | ✅ | ✅ | ✅ | Supports downloads of: videos with or without watermark, images from slideshow without watermark, full (original) audios. | diff --git a/src/modules/emoji.js b/src/modules/emoji.js index 3565a452..6f2c092b 100644 --- a/src/modules/emoji.js +++ b/src/modules/emoji.js @@ -37,5 +37,5 @@ export default function(emoji, size, disablePadding) { let padding = size !== 22 ? `margin-right:${sizing[size] ? sizing[size] : "0.4"}rem;` : false; if (disablePadding) padding = 'margin-right:0!important;'; if (!names[emoji]) emoji = "❓"; - return `` + return `` } diff --git a/src/modules/pageRender/onDemand.js b/src/modules/pageRender/onDemand.js index 65babd46..2635f53d 100644 --- a/src/modules/pageRender/onDemand.js +++ b/src/modules/pageRender/onDemand.js @@ -10,7 +10,7 @@ export function changelogHistory() { // blockId 0 let historyLen = history.length; for (let i in history) { let separator = (i !== 0 && i !== historyLen) ? '
' : ''; - render += `${separator}${history[i]["banner"] ? `
` : ''}` + render += `${separator}${history[i]["banner"] ? `
` : ''}` } cache['0'] = render; return render; diff --git a/src/modules/pageRender/page.js b/src/modules/pageRender/page.js index 9e6bf957..52082cef 100644 --- a/src/modules/pageRender/page.js +++ b/src/modules/pageRender/page.js @@ -63,8 +63,8 @@ export default function(obj) { + - @@ -122,7 +122,8 @@ export default function(obj) { text: `
${t('ChangelogLastMajor')}
`, raw: true }, { - text: changelogManager("banner") ? `
`: '', + text: changelogManager("banner") ? + `
`: '', raw: true }, { text: changelogManager("title"), @@ -160,7 +161,7 @@ export default function(obj) { text: `
${t('DonateSub')}
`, raw: true }, { - text: `
`, + text: `
`, raw: true }, { text: t('DonateExplanation') From 527ca29215906a33c53538e456ae6f7c8eaed6ae Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 7 Jun 2023 21:41:06 +0600 Subject: [PATCH 012/111] 6.0 in this commit: - enhanced css (hover border, less annoying donate highlight, checkbox width fix for mobile, more consistent color scheme) - addition of an urgent notice (in this case it mentions all issues related to old infra being fixed) - updated twitter picker test - changelog for 6.0 - removed partial translations --- docs/API.md | 23 +++- package.json | 2 +- src/core/api.js | 2 +- src/core/both.js | 2 +- src/front/cobalt.css | 122 ++++++++++---------- src/front/cobalt.js | 3 +- src/front/updateBanners/catswitchboxes.webp | Bin 0 -> 2943494 bytes src/localization/languages/en.json | 8 +- src/localization/languages/es.json | 115 ------------------ src/localization/languages/fr.json | 101 ---------------- src/localization/languages/id.json | 74 ------------ src/localization/languages/it.json | 101 ---------------- src/localization/languages/nl.json | 101 ---------------- src/localization/languages/pl.json | 111 ------------------ src/localization/languages/pt.json | 115 ------------------ src/localization/languages/ru.json | 10 +- src/localization/languages/uk.json | 106 ----------------- src/modules/changelog/changelog.json | 9 +- src/modules/emoji.js | 1 + src/modules/pageRender/page.js | 1 + src/test/tests.json | 4 +- 21 files changed, 107 insertions(+), 904 deletions(-) create mode 100644 src/front/updateBanners/catswitchboxes.webp delete mode 100644 src/localization/languages/es.json delete mode 100644 src/localization/languages/fr.json delete mode 100644 src/localization/languages/id.json delete mode 100644 src/localization/languages/it.json delete mode 100644 src/localization/languages/nl.json delete mode 100644 src/localization/languages/pl.json delete mode 100644 src/localization/languages/pt.json delete mode 100644 src/localization/languages/uk.json diff --git a/docs/API.md b/docs/API.md index 38038bd0..7c2a5b34 100644 --- a/docs/API.md +++ b/docs/API.md @@ -65,7 +65,22 @@ On-demand website element loading. Currently used only for older changelogs.
| blockId | ``0`` | Block ID to be rendered on the server. | ### Response Body Variables -| key | type | variables | -|:-----------|:-------|:-----------------------------| -| status | string | ``error / success`` | -| text | string | Error text or rendered block | \ No newline at end of file +| key | type | variables | +|:-------|:-------|:-----------------------------| +| status | string | ``error / success`` | +| text | string | Error text or rendered block | + +## GET: ``/api/serverInfo`` +Returns current basic server info.
+Response Body Type: ``application/json`` + +### Response Body Variables +| key | type | variables | +|:----------|:-------|:------------------| +| version | string | cobalt version | +| commit | string | Git commit | +| branch | string | Git branch | +| name | string | Server name | +| url | string | Server url | +| cors | string | CORS status | +| startTime | string | Server start time | diff --git a/package.json b/package.json index 9db76a44..8b8cdf78 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cobalt", "description": "save what you love", - "version": "6.0-dev", + "version": "6.0", "author": "wukko", "exports": "./src/cobalt.js", "type": "module", diff --git a/src/core/api.js b/src/core/api.js index 6826efd2..0363f5aa 100644 --- a/src/core/api.js +++ b/src/core/api.js @@ -155,7 +155,7 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) { branch: gitBranch, name: process.env.apiName ? process.env.apiName : "unknown", url: process.env.apiURL, - cors: process.env.cors, + cors: process.env.cors && process.env.cors === "0" ? 0 : 1, startTime: `${startTimestamp}` }); break; diff --git a/src/core/both.js b/src/core/both.js index 4b14592f..1c0065bd 100644 --- a/src/core/both.js +++ b/src/core/both.js @@ -160,7 +160,7 @@ export async function runBoth(express, app, gitCommit, gitBranch, __dirname) { branch: gitBranch, name: process.env.apiName ? process.env.apiName : "unknown", url: process.env.apiURL, - cors: process.env.cors, + cors: process.env.cors && process.env.cors === "0" ? 0 : 1, startTime: `${startTimestamp}` }); break; diff --git a/src/front/cobalt.css b/src/front/cobalt.css index 749ff065..e2f9c378 100644 --- a/src/front/cobalt.css +++ b/src/front/cobalt.css @@ -9,51 +9,46 @@ --red: rgb(255, 0, 61); --gap: 0.5rem; --gap-no-icon: 0.6rem; - --rainbow-gradient: linear-gradient(161deg,#ffe454,#ff6964,#fe85e5,#bd26fe,#587ae9,#8ded95); } @media (prefers-color-scheme: dark) { :root { --accent: rgb(225, 225, 225); + --accent-highlight: rgb(225, 225, 225, 4%); + --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(25, 25, 25); - --accent-button-bg: rgb(20, 20, 20); - --accent-press: rgb(10, 10, 10); - --accent-unhover: rgb(100, 100, 100); - --accent-unhover-2: rgb(110, 110, 110); + --accent-button: rgb(20, 20, 20); + --subbackground: rgb(10, 10, 10); --background: rgb(0, 0, 0); - --glow-transparency: 0.45; } } @media (prefers-color-scheme: light) { :root { --accent: rgb(25, 25, 25); + --accent-highlight: rgb(25, 25, 25, 6%); + --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(225, 225, 225); - --accent-button-bg: rgb(230, 230, 230); - --accent-press: rgb(240, 240, 240); - --accent-unhover: rgb(190, 190, 190); - --accent-unhover-2: rgb(110, 110, 110); + --accent-button: rgb(230, 230, 230); + --subbackground: rgb(240, 240, 240); --background: rgb(255, 255, 255); - --glow-transparency: 0.6; } } [data-theme="dark"] { --accent: rgb(225, 225, 225); + --accent-highlight: rgb(225, 225, 225, 4%); + --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(25, 25, 25); - --accent-button-bg: rgb(20, 20, 20); - --accent-press: rgb(10, 10, 10); - --accent-unhover: rgb(100, 100, 100); - --accent-unhover-2: rgb(110, 110, 110); + --accent-button: rgb(20, 20, 20); + --subbackground: rgb(10, 10, 10); --background: rgb(0, 0, 0); - --glow-transparency: 0.45; } [data-theme="light"] { --accent: rgb(25, 25, 25); + --accent-highlight: rgb(25, 25, 25, 6%); + --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(225, 225, 225); - --accent-button-bg: rgb(230, 230, 230); - --accent-press: rgb(240, 240, 240); - --accent-unhover: rgb(190, 190, 190); - --accent-unhover-2: rgb(110, 110, 110); + --accent-button: rgb(230, 230, 230); + --subbackground: rgb(240, 240, 240); --background: rgb(255, 255, 255); - --glow-transparency: 0.6; } html, body { @@ -75,7 +70,7 @@ a { -webkit-user-select: none; } ::placeholder { - color: var(--accent-unhover-2); + color: var(--accent-subtext); } .switches::-webkit-scrollbar, #popup-content::-webkit-scrollbar { display: none; @@ -92,7 +87,7 @@ a { width: auto; margin-right: var(--padding-1); margin-bottom: var(--padding-1); - background: var(--accent-button-bg); + background: var(--accent-button); } .checkbox-label { line-height: 1.3rem; @@ -148,19 +143,19 @@ input[type="text"], .desktop .collapse-header:hover, .desktop #close-button:hover { background: var(--accent-hover); + box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; cursor: pointer; } button:active, .switch:active, .checkbox:active, .text-to-copy:active { - background: var(--accent-press); + box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; cursor: pointer; transform: scale(0.95); } .collapse-header:active { - background: var(--accent-press); - cursor: pointer; + box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; } .switch.text-backdrop, .switch.text-backdrop:hover, @@ -170,10 +165,11 @@ button:active, .text-to-copy.text-backdrop:active { background: var(--accent); color: var(--background); + box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; } .picker-image:active { cursor: pointer; - transform: scale(0.95) + transform: scale(0.95); } .button { background: none; @@ -234,7 +230,7 @@ button:active, color: var(--accent); border: 0; float: right; - border-bottom: 0.1rem solid var(--accent-unhover); + border-bottom: 0.1rem solid var(--accent-subtext); outline: none; font-size: 0.8rem; } @@ -244,6 +240,7 @@ button:active, padding: 0 1rem 0.2rem; transform: none; font-size: 1rem; + box-shadow: none!important; } #url-input-area:focus { outline: none; @@ -260,7 +257,7 @@ button:active, letter-spacing: -0.36rem; } #download-button:disabled { - color: var(--accent-unhover); + color: var(--accent-subtext); cursor: not-allowed; } #footer { @@ -284,7 +281,7 @@ button:active, } .footer-button { width: auto!important; - color: var(--accent-unhover-2); + color: var(--accent-subtext); padding: var(--gap) 1.2rem!important; align-content: center; } @@ -404,12 +401,12 @@ button:active, .popup-footer-content { font-size: 0.8rem; line-height: var(--line-height); - color: var(--accent-unhover-2); - border-top: 0.05rem solid var(--accent-unhover-2); + color: var(--accent-subtext); + border-top: 0.05rem solid var(--accent-subtext); padding-top: 0.4rem; } #popup-above-title { - color: var(--accent-unhover-2); + color: var(--accent-subtext); font-size: 0.8rem; } #popup-content { @@ -439,8 +436,8 @@ button:active, .separator, .category-title { width: 100%; - color: var(--accent-unhover-2); - border-bottom: 0.05rem solid var(--accent-unhover-2); + color: var(--accent-subtext); + border-bottom: 0.05rem solid var(--accent-subtext); padding-bottom: 0.25rem; margin-bottom: calc(var(--gap-no-icon)*1.5); } @@ -480,17 +477,17 @@ button:active, font-size: 0.8rem; text-align: left; line-height: 1.3rem!important; - color: var(--accent-unhover-2); + color: var(--accent-subtext); } .subtext { - color: var(--accent-unhover-2); + color: var(--accent-subtext); } .switch { padding: var(--gap-no-icon); width: 100%; text-align: left; color: var(--accent); - background: var(--accent-button-bg); + background: var(--accent-button); display: flex; justify-content: center; align-items: center; @@ -532,7 +529,7 @@ button:active, .text-to-copy { user-select: text; -webkit-user-select: text; - background: var(--accent-button-bg); + background: var(--accent-button); padding: var(--padding-1); overflow: auto; } @@ -572,19 +569,20 @@ button:active, object-fit: cover; width: inherit; height: inherit; + cursor: pointer; } .picker-image-container { width: 8rem; height: 8rem; margin-bottom: var(--padding-1); - background-color: var(--accent-button-bg); + background-color: var(--accent-button); } .picker-various-container { height: 20rem; width: 25rem; margin-bottom: var(--padding-1); - background-color: var(--accent-button-bg); - border: var(--accent-button-bg) 0.18rem solid; + background-color: var(--accent-button); + border: var(--accent-button) 0.18rem solid; position: relative; } #picker-holder { @@ -623,7 +621,7 @@ button:active, padding: var(--gap) 1.2rem; } .collapse-list { - background: var(--accent-press); + background: var(--subbackground); user-select: none; -webkit-user-select: none; } @@ -634,7 +632,7 @@ button:active, flex-direction: row; align-items: center; cursor: pointer; - background: var(--accent-button-bg); + background: var(--accent-button); } .collapse-indicator { transform: rotate(180deg); @@ -664,22 +662,22 @@ button:active, #pd-share { display: none; } -#about-donate-footer::before { - content: ""; - position: absolute; - height: 110%; - width: 32%; - background: var(--rainbow-gradient); - z-index: -2; - filter: blur(5px); - opacity: var(--glow-transparency); -} -#about-donate-footer:active::before { - opacity: 0; +#about-donate-footer { + box-shadow: 0 0 0 0.1rem var(--accent) inset; } .popup-tabs-child { width: 100%; } +.urgent-notice { + top: 1.7rem; + width: auto; + text-align: left; + position: absolute; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; +} /* adapt the page according to screen size */ @media screen and (min-width: 2300px) { html { @@ -770,7 +768,7 @@ button:active, width: 90%; } .checkbox { - width: 100%; + width: calc(100% - 1.3rem); } } @media screen and (max-width: 320px) { @@ -783,6 +781,9 @@ button:active, font-size: 1.07rem; line-height: 1.5rem; } + .checkbox { + width: calc(100% - 1rem); + } .footer-button, #audioMode-false, #audioMode-true, @@ -866,10 +867,6 @@ button:active, flex-direction: column; align-items: stretch; } - #about-donate-footer::before { - height: 50%; - width: 50%; - } .footer-pair .footer-button { width: 100%!important; } @@ -885,6 +882,9 @@ button:active, flex-direction: column; gap: var(--gap); } + .urgent-notice { + width: 100%; + } } @media screen and (max-width: 949px) { #picker-holder::-webkit-scrollbar { diff --git a/src/front/cobalt.js b/src/front/cobalt.js index f801a704..ce71b4e4 100644 --- a/src/front/cobalt.js +++ b/src/front/cobalt.js @@ -1,7 +1,7 @@ const ua = navigator.userAgent.toLowerCase(); const isIOS = ua.match("iphone os"); const isMobile = ua.match("android") || ua.match("iphone os"); -const version = 26; +const version = 30; const regex = new RegExp(/https:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/); const notification = `
`; @@ -448,6 +448,7 @@ window.onload = () => { changeDownloadButton(0, '>>'); eid("cobalt-main-box").style.visibility = 'visible'; eid("footer").style.visibility = 'visible'; + if (eid("urgent-notice")) eid("urgent-notice").style.visibility = 'visible'; eid("url-input-area").value = ""; notificationCheck(); loadCelebrationsEmoji(); diff --git a/src/front/updateBanners/catswitchboxes.webp b/src/front/updateBanners/catswitchboxes.webp new file mode 100644 index 0000000000000000000000000000000000000000..d4ae2bc366238c383cace1c86331752a4b4db1c8 GIT binary patch literal 2943494 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­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 z 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