mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2026-01-31 23:01:01 +03:00
getLockCategoresByHash
This commit is contained in:
@@ -34,6 +34,7 @@ import { addUnlistedVideo } from './routes/addUnlistedVideo';
|
||||
import {postPurgeAllSegments} from './routes/postPurgeAllSegments';
|
||||
import {getUserID} from './routes/getUserID';
|
||||
import {getLockCategories} from './routes/getLockCategories';
|
||||
import {getLockCategoriesByHash} from './routes/getLockCategoriesByHash';
|
||||
import ExpressPromiseRouter from 'express-promise-router';
|
||||
|
||||
export function createServer(callback: () => void) {
|
||||
@@ -159,6 +160,9 @@ function setupRoutes(router: Router) {
|
||||
// get lock categores from userID
|
||||
router.get('/api/lockCategories', getLockCategories);
|
||||
|
||||
// get privacy protecting lock categories functions
|
||||
router.get('/api/lockCategories/:prefix', getLockCategoriesByHash);
|
||||
|
||||
if (config.postgres) {
|
||||
router.get('/database', (req, res) => dumpDatabase(req, res, true));
|
||||
router.get('/database.json', (req, res) => dumpDatabase(req, res, false));
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import {db} from '../databases/databases';
|
||||
import {getHash} from '../utils/getHash';
|
||||
import {Logger} from '../utils/logger';
|
||||
import {Request, Response} from 'express';
|
||||
import { Category, CategoryActionType, DBSegment, HashedIP, IPAddress, OverlappingSegmentGroup, Segment, SegmentCache, SegmentUUID, Service, VideoData, VideoID, VideoIDHash, Visibility, VotableObject } from "../types/segments.model";
|
||||
import { Category, VideoID } from "../types/segments.model";
|
||||
import { UserID } from '../types/user.model';
|
||||
|
||||
export async function getLockCategories(req: Request, res: Response) {
|
||||
|
||||
27
src/routes/getLockCategoriesByHash.ts
Normal file
27
src/routes/getLockCategoriesByHash.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import {db} from '../databases/databases';
|
||||
import {Logger} from '../utils/logger';
|
||||
import {Request, Response} from 'express';
|
||||
import {hashPrefixTester} from '../utils/hashPrefixTester';
|
||||
import { Category, VideoID, VideoIDHash } from "../types/segments.model";
|
||||
import { UserID } from '../types/user.model';
|
||||
|
||||
export async function getLockCategoriesByHash(req: Request, res: Response): Promise<Response> {
|
||||
let hashPrefix = req.params.prefix as VideoIDHash;
|
||||
if (!hashPrefixTester(req.params.prefix)) {
|
||||
return res.status(400).send("Hash prefix does not match format requirements."); // Exit early on faulty prefix
|
||||
}
|
||||
hashPrefix = hashPrefix.toLowerCase() as VideoIDHash;
|
||||
|
||||
try {
|
||||
// Get existing lock categories markers
|
||||
let lockCategoryList = await db.prepare('all', 'SELECT * from "lockCategories" where "hashedVideoID" LIKE ? ORDER BY videoID', [hashPrefix + '%']) as {videoID: VideoID, userID: UserID,category: Category}[]
|
||||
if (lockCategoryList.length === 0 || !lockCategoryList[0]) {
|
||||
return res.sendStatus(404);
|
||||
} else {
|
||||
return res.send(lockCategoryList)
|
||||
}
|
||||
} catch (err) {
|
||||
Logger.error(err);
|
||||
return res.sendStatus(500);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user