mirror of
https://github.com/knightcrawler-stremio/knightcrawler.git
synced 2024-12-20 03:29:51 +00:00
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
const { DebridOptions } = require('../moch/options');
|
|
const { QualityFilter, Providers } = require('./filter');
|
|
|
|
const LITE_CONFIG = liteConfig();
|
|
const LITE_CONFIG_VALUE = liteConfigValue();
|
|
|
|
const keysToSplit = [Providers.key, QualityFilter.key, DebridOptions.key];
|
|
|
|
function parseConfiguration(configuration) {
|
|
if (configuration === 'lite') {
|
|
return LITE_CONFIG;
|
|
}
|
|
const configValues = configuration.split('|')
|
|
.reduce((map, next) => {
|
|
const parameterParts = next.split('=');
|
|
if (parameterParts.length === 2) {
|
|
map[parameterParts[0].toLowerCase()] = parameterParts[1];
|
|
}
|
|
return map;
|
|
}, {});
|
|
keysToSplit
|
|
.filter(key => configValues[key])
|
|
.filter(key => configValues[key] = configValues[key].split(',').map(provider => provider.toLowerCase()))
|
|
return configValues;
|
|
}
|
|
|
|
function liteConfig() {
|
|
const config = {};
|
|
config[Providers.key] = Providers.options.filter(provider => !provider.foreign).map(provider => provider.key);
|
|
config[QualityFilter.key] = ['scr', 'cam']
|
|
config['limit'] = 1;
|
|
config['lite'] = true;
|
|
return config;
|
|
}
|
|
|
|
function liteConfigValue() {
|
|
return Object.entries(LITE_CONFIG)
|
|
.filter(([key]) => key !== 'lite')
|
|
.map(([key, value]) => `${key}=${Array.isArray(value) ? value.join(',') : value}`)
|
|
.join('|');
|
|
}
|
|
|
|
module.exports = parseConfiguration;
|
|
module.exports.LiteConfigValue = LITE_CONFIG_VALUE; |