UNPKG

identify-media

Version:

Analyse file path and content to make search criteria for media APIs

48 lines 2.07 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeMedia = exports.isTVShow = exports.isMovie = void 0; __exportStar(require("./omdb"), exports); __exportStar(require("./opensubtitles"), exports); __exportStar(require("./tmdb"), exports); const isMovie = (possible) => { if (!possible) return false; const assumed = possible; return assumed.type === 'movie' && assumed.title !== undefined && (assumed.tmdbId !== undefined || assumed.imdbId !== undefined); }; exports.isMovie = isMovie; const isTVShow = (possible) => { if (!possible) return false; const assumed = possible; return assumed.type === 'tv' && assumed.name !== undefined && (assumed.tmdbId !== undefined || assumed.imdbId !== undefined); }; exports.isTVShow = isTVShow; //todo merge the sub objects individually const mergeMediaInfo = (a, b) => { return Object.assign(Object.assign(Object.assign({}, a), b), { images: Object.assign(Object.assign({}, a.images), b.images) }); }; const mergeMedia = (a, b) => { if (a.type !== b.type) throw new Error('Unable to merge different media types'); if ((!!a.tmdbId && !!b.tmdbId && a.tmdbId !== b.tmdbId) || (!!a.imdbId && !!b.imdbId && a.imdbId !== b.imdbId)) throw new Error('Trying to merge different media'); return Object.assign(Object.assign(Object.assign({}, a), b), { mediaInfo: mergeMediaInfo(a.mediaInfo, b.mediaInfo) }); }; exports.mergeMedia = mergeMedia; //# sourceMappingURL=index.js.map