mirror of
https://github.com/knightcrawler-stremio/knightcrawler.git
synced 2024-12-20 03:29:51 +00:00
adds addon module
This commit is contained in:
55
addon/addon.js
Normal file
55
addon/addon.js
Normal file
@@ -0,0 +1,55 @@
|
||||
const { addonBuilder } = require('stremio-addon-sdk');
|
||||
const { cacheWrapStream } = require('./lib/cache');
|
||||
|
||||
const CACHE_MAX_AGE = process.env.CACHE_MAX_AGE || 24 * 60; // 24 hours in seconds
|
||||
const CACHE_MAX_AGE_EMPTY = 4 * 60; // 4 hours in seconds
|
||||
const STALE_REVALIDATE_AGE = 4 * 60; // 4 hours
|
||||
const STALE_ERROR_AGE = 7 * 24 * 60; // 7 days
|
||||
const EMPTY_OBJECT = {};
|
||||
|
||||
const builder = new addonBuilder({
|
||||
id: 'com.stremio.torrentio.addon',
|
||||
version: '1.0.0',
|
||||
name: 'Torrentio',
|
||||
description: 'Provides torrent stream from scraped torrent providers. Currently support ThePirateBay, 1337x, RARBG, KickassTorrents, HorribleSubs.',
|
||||
catalogs: [],
|
||||
resources: ['stream'],
|
||||
types: ['movie', 'series'],
|
||||
idPrefixes: ['tt'],
|
||||
background: `https://i.imgur.com/t8wVwcg.jpg`,
|
||||
logo: `https://i.imgur.com/dPa2clS.png`,
|
||||
});
|
||||
|
||||
builder.defineStreamHandler((args) => {
|
||||
if (!args.id.match(/tt\d+/i)) {
|
||||
return Promise.resolve({ streams: [] });
|
||||
}
|
||||
|
||||
const handlers = {
|
||||
series: () => seriesStreamHandler(args),
|
||||
movie: () => movieStreamHandler(args),
|
||||
fallback: () => Promise.reject('not supported type')
|
||||
};
|
||||
|
||||
return cacheWrapStream(args.id, handlers[args.type] || handlers.fallback)
|
||||
.then((streams) => ({
|
||||
streams: streams,
|
||||
cacheMaxAge: streams.length ? CACHE_MAX_AGE : CACHE_MAX_AGE_EMPTY,
|
||||
staleRevalidate: STALE_REVALIDATE_AGE,
|
||||
staleError: STALE_ERROR_AGE
|
||||
}))
|
||||
.catch((error) => {
|
||||
console.log(`Failed request ${args.id}: ${error}`);
|
||||
throw error;
|
||||
});
|
||||
});
|
||||
|
||||
async function seriesStreamHandler(args) {
|
||||
|
||||
}
|
||||
|
||||
async function movieStreamHandler(args) {
|
||||
|
||||
}
|
||||
|
||||
module.exports = builder.getInterface();
|
||||
Reference in New Issue
Block a user