import { Providers, QualityFilter, SizeFilter } from './filter.js'; import { SortOptions } from './sort.js'; import { LanguageOptions } from './languages.js'; import { DebridOptions } from '../moch/options.js'; import { MochOptions } from '../moch/moch.js'; export default function landingTemplate(manifest, config = {}) { const savedProviders = config[Providers.key] || Providers.options.map(p => p.key); const savedSort = config[SortOptions.key] || SortOptions.options.qualitySeeders.key; const savedLanguages = config[LanguageOptions.key] || []; const savedQuality = config[QualityFilter.key] || []; const savedSize = (config[SizeFilter.key] || []).join(','); const savedLimit = config.limit || ''; const savedDebridOpts = config[DebridOptions.key] || []; const savedDebridProvider = Object.keys(MochOptions).find(key => config[key]) || 'none'; const apiKeys = { [MochOptions.realdebrid.key]: config[MochOptions.realdebrid.key] || '', [MochOptions.premiumize.key]: config[MochOptions.premiumize.key] || '', [MochOptions.alldebrid.key]: config[MochOptions.alldebrid.key] || '', [MochOptions.debridlink.key]: config[MochOptions.debridlink.key] || '', [MochOptions.easydebrid.key]: config[MochOptions.easydebrid.key] || '', [MochOptions.offcloud.key]: config[MochOptions.offcloud.key] || '', [MochOptions.torbox.key]: config[MochOptions.torbox.key] || '', [MochOptions.putio.key]: config[MochOptions.putio.key] || '', }; let putioClientId = ''; let putioToken = ''; if(apiKeys[MochOptions.putio.key] && apiKeys[MochOptions.putio.key].includes('@')){ const parts = apiKeys[MochOptions.putio.key].split('@'); putioClientId = parts[0]; putioToken = parts[1]; } const background = manifest.background || 'https://dl.strem.io/addon-background.jpg'; const logo = manifest.logo || 'https://dl.strem.io/addon-logo.png'; const providerList = Providers.options.map(p => ({ label: (p.foreign ? p.foreign + ' ' : '') + p.label, value: p.key })); const sortList = Object.values(SortOptions.options).map(o => ({ label: o.description, value: o.key })); const languageList = LanguageOptions.options.map(o => ({ label: o.label, value: o.key })); const qualityList = Object.values(QualityFilter.options).map(o => ({ label: o.label, value: o.key })); const debridProviderList = Object.values(MochOptions).map(o => ({ label: o.name, value: o.key })); const debridOptList = Object.values(DebridOptions.options).map(o => ({ label: o.description, value: o.key })); return `
${manifest.description || 'Configuration'}
Support Development