identify-media
Version:
Analyse file path and content to make search criteria for media APIs
41 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const keyMappings = {
hash: 'moviehash-',
size: 'moviebytesize-',
imdbId: 'imdbid-',
query: 'query-',
episode: 'episode-',
season: 'season-',
language: 'sublanguageid-',
tags: 'tags-',
};
const imdbRex = /tt(\d{7,9})/;
const mapKeyValue = (key, value) => {
if (!value)
return undefined;
if (key === 'imdbId') {
const imdbIdReg = imdbRex.exec(value);
if (!imdbIdReg)
return undefined;
return `${keyMappings[key]}${imdbIdReg[1]}`;
}
if (typeof value === 'string') {
return `${keyMappings[key]}${encodeURI(value)}`;
}
return `${keyMappings[key]}${value}`;
};
const mapKeys = (args) => Object.entries(args).map(([key, value]) => mapKeyValue(key, value))
.filter((key) => !!key).sort().join('/').toLocaleLowerCase();
const search = (args, userAgent) => {
return {
baseURL: 'https://rest.opensubtitles.org',
method: 'GET',
headers: {
'X-User-Agent': userAgent,
},
url: `/search/${mapKeys(args)}`,
};
};
exports.default = search;
//# sourceMappingURL=search.js.map