identify-media
Version:
Analyse file path and content to make search criteria for media APIs
48 lines • 2.07 kB
JavaScript
;
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