mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-08 20:47:02 +03:00
Add youtube api cache
This commit is contained in:
@@ -39,6 +39,7 @@ import {endpoint as getSearchSegments } from "./routes/getSearchSegments";
|
|||||||
import {getStatus } from "./routes/getStatus";
|
import {getStatus } from "./routes/getStatus";
|
||||||
import ExpressPromiseRouter from "express-promise-router";
|
import ExpressPromiseRouter from "express-promise-router";
|
||||||
import { Server } from "http";
|
import { Server } from "http";
|
||||||
|
import { youtubeApiProxy } from "./routes/youtubeApiProxy";
|
||||||
|
|
||||||
export function createServer(callback: () => void): Server {
|
export function createServer(callback: () => void): Server {
|
||||||
// Create a service (the app object is just a callback).
|
// Create a service (the app object is just a callback).
|
||||||
@@ -173,6 +174,8 @@ function setupRoutes(router: Router) {
|
|||||||
router.get("/api/status/:value", getStatus);
|
router.get("/api/status/:value", getStatus);
|
||||||
router.get("/api/status", getStatus);
|
router.get("/api/status", getStatus);
|
||||||
|
|
||||||
|
router.get("/api/youtubeApiProxy", youtubeApiProxy);
|
||||||
|
|
||||||
if (config.postgres) {
|
if (config.postgres) {
|
||||||
router.get("/database", (req, res) => dumpDatabase(req, res, true));
|
router.get("/database", (req, res) => dumpDatabase(req, res, true));
|
||||||
router.get("/database.json", (req, res) => dumpDatabase(req, res, false));
|
router.get("/database.json", (req, res) => dumpDatabase(req, res, false));
|
||||||
|
|||||||
21
src/routes/youtubeApiProxy.ts
Normal file
21
src/routes/youtubeApiProxy.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { Request, Response } from "express";
|
||||||
|
import { YouTubeAPI } from "../utils/youtubeApi";
|
||||||
|
|
||||||
|
|
||||||
|
export async function youtubeApiProxy(req: Request, res: Response): Promise<Response> {
|
||||||
|
if (req.query.key !== "8NpFUCMr2Gq4cy4UrUJPBfGBbRQudhJ8zzex8Gq44RYDywLt3UtbbfDap3KPDbcS") {
|
||||||
|
return res.send("Invalid key").status(403);
|
||||||
|
}
|
||||||
|
|
||||||
|
const videoID = req.query.videoID;
|
||||||
|
if (videoID === undefined || typeof(videoID) !== "string" || videoID.length !== 11) {
|
||||||
|
return res.status(400).send("Invalid parameters");
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = await YouTubeAPI.listVideos(videoID);
|
||||||
|
if (result.err) {
|
||||||
|
return res.send("API failure").status(500);
|
||||||
|
} else {
|
||||||
|
return res.send(result.data).status(200);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user