From 137f56bfd19c3103c58ba9d74e2a45533fe44a84 Mon Sep 17 00:00:00 2001 From: TheBeastLT Date: Wed, 23 Mar 2022 09:41:06 +0100 Subject: [PATCH] rate limit only stream requests --- addon/index.js | 9 +++++++++ addon/serverless.js | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addon/index.js b/addon/index.js index af791a9..fb543e8 100644 --- a/addon/index.js +++ b/addon/index.js @@ -1,10 +1,19 @@ const express = require('express'); +const rateLimit = require("express-rate-limit"); +const requestIp = require("request-ip"); const serverless = require('./serverless'); const { initBestTrackers } = require('./lib/magnetHelper'); const app = express(); +const limiter = rateLimit({ + windowMs: 60 * 60 * 1000, // 1 hours + max: 300, // limit each IP to 300 requests per windowMs + headers: false, + keyGenerator: (req) => requestIp.getClientIp(req) +}); app.use(express.static('static', { maxAge: '1y' })); +app.use(/^\/.*stream\/.+/, limiter); app.use((req, res, next) => serverless(req, res, next)); app.listen(process.env.PORT || 7000, () => { initBestTrackers() diff --git a/addon/serverless.js b/addon/serverless.js index 071f188..ab85e61 100644 --- a/addon/serverless.js +++ b/addon/serverless.js @@ -1,4 +1,3 @@ -const rateLimit = require('express-rate-limit'); const { getRouter } = require('stremio-addon-sdk'); const requestIp = require('request-ip'); const userAgentParser = require('ua-parser-js'); @@ -10,14 +9,6 @@ const landingTemplate = require('./lib/landingTemplate'); const moch = require('./moch/moch'); const router = getRouter({ ...addonInterface, manifest: manifest() }); -const limiter = rateLimit({ - windowMs: 60 * 60 * 1000, // 1 hours - max: 300, // limit each IP to 300 requests per windowMs - headers: false, - keyGenerator: (req) => requestIp.getClientIp(req) -}); - -router.use(limiter); router.get('/', (_, res) => { res.redirect('/configure')