[addon] adds custom landing page for addon configuration

This commit is contained in:
TheBeastLT
2020-03-15 20:37:30 +01:00
parent dba04c8a69
commit a1d39af630
7 changed files with 341 additions and 18 deletions

View File

@@ -1,7 +1,9 @@
const rateLimit = require('express-rate-limit');
const { getRouter } = require('stremio-addon-sdk');
const landingTemplate = require('stremio-addon-sdk/src/landingTemplate');
const addonInterface = require('./addon');
const { manifest } = require('./lib/manifest');
const parseConfiguration = require('./lib/configuration');
const landingTemplate = require('./lib/landingTemplate');
const router = getRouter(addonInterface);
const limiter = rateLimit({
@@ -13,11 +15,26 @@ const limiter = rateLimit({
router.use(limiter);
router.get('/', (_, res) => {
const landingHTML = landingTemplate(addonInterface.manifest);
const landingHTML = landingTemplate(manifest());
res.setHeader('content-type', 'text/html');
res.end(landingHTML);
});
router.get('/:configuration', (req, res) => {
const configValues = parseConfiguration(req.params.configuration);
console.log(configValues);
const landingHTML = landingTemplate(manifest(), configValues.providers, configValues.realdebrid);
res.setHeader('content-type', 'text/html');
res.end(landingHTML);
});
router.get('/:configuration/manifest.json', (req, res) => {
const configValues = parseConfiguration(req.params.configuration);
const manifestBuf = JSON.stringify(manifest(configValues.providers, configValues.realdebrid));
res.setHeader('Content-Type', 'application/json; charset=utf-8');
res.end(manifestBuf)
});
module.exports = function (req, res) {
router(req, res, function () {
res.statusCode = 404;