mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-11 14:07:09 +03:00
Add feature flag endpoint
This commit is contained in:
@@ -55,6 +55,7 @@ import { cacheMiddlware } from "./middleware/etag";
|
|||||||
import { hostHeader } from "./middleware/hostHeader";
|
import { hostHeader } from "./middleware/hostHeader";
|
||||||
import { getBrandingStats } from "./routes/getBrandingStats";
|
import { getBrandingStats } from "./routes/getBrandingStats";
|
||||||
import { getTopBrandingUsers } from "./routes/getTopBrandingUsers";
|
import { getTopBrandingUsers } from "./routes/getTopBrandingUsers";
|
||||||
|
import { getFeatureFlag } from "./routes/getFeatureFlag";
|
||||||
|
|
||||||
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).
|
||||||
@@ -210,6 +211,8 @@ function setupRoutes(router: Router) {
|
|||||||
|
|
||||||
router.post("/api/feature", addFeature);
|
router.post("/api/feature", addFeature);
|
||||||
|
|
||||||
|
router.get("/api/featureFlag/:name", getFeatureFlag);
|
||||||
|
|
||||||
router.get("/api/generateToken/:type", generateTokenRequest);
|
router.get("/api/generateToken/:type", generateTokenRequest);
|
||||||
router.get("/api/verifyToken", verifyTokenRequest);
|
router.get("/api/verifyToken", verifyTokenRequest);
|
||||||
|
|
||||||
|
|||||||
@@ -186,7 +186,8 @@ addDefaults(config, {
|
|||||||
productPermalinks: ["sponsorblock"]
|
productPermalinks: ["sponsorblock"]
|
||||||
},
|
},
|
||||||
tokenSeed: "",
|
tokenSeed: "",
|
||||||
minUserIDLength: 30
|
minUserIDLength: 30,
|
||||||
|
deArrowPaywall: false
|
||||||
});
|
});
|
||||||
loadFromEnv(config);
|
loadFromEnv(config);
|
||||||
migrate(config);
|
migrate(config);
|
||||||
|
|||||||
13
src/routes/getFeatureFlag.ts
Normal file
13
src/routes/getFeatureFlag.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { config } from "../config";
|
||||||
|
import { Request, Response } from "express";
|
||||||
|
|
||||||
|
export function getFeatureFlag(req: Request, res: Response): Response {
|
||||||
|
const { params: { name } } = req;
|
||||||
|
|
||||||
|
switch (name) {
|
||||||
|
case "deArrowPaywall":
|
||||||
|
return res.status(200).json({
|
||||||
|
enabled: config.deArrowPaywall,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -98,7 +98,8 @@ export interface SBSConfig {
|
|||||||
productPermalinks: string[],
|
productPermalinks: string[],
|
||||||
},
|
},
|
||||||
tokenSeed: string,
|
tokenSeed: string,
|
||||||
minUserIDLength: number
|
minUserIDLength: number,
|
||||||
|
deArrowPaywall: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface WebhookConfig {
|
export interface WebhookConfig {
|
||||||
|
|||||||
Reference in New Issue
Block a user