UNPKG

nfo-parser

Version:
45 lines 2.94 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractMediaInfo = exports.parser = void 0; const fs_1 = __importDefault(require("fs")); const xml2js_1 = require("xml2js"); async function parser(filePath) { var _a; const nfoContent = fs_1.default.readFileSync(filePath, "utf8"); const data = await (0, xml2js_1.parseStringPromise)(nfoContent); return (_a = Object.values(data)) === null || _a === void 0 ? void 0 : _a[0]; } exports.parser = parser; async function extractMediaInfo(filePath) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l; try { const parsedData = await parser(filePath); const mediaInfo = { title: (_a = parsedData === null || parsedData === void 0 ? void 0 : parsedData.title) === null || _a === void 0 ? void 0 : _a[0], originaltitle: (_b = parsedData === null || parsedData === void 0 ? void 0 : parsedData.originaltitle) === null || _b === void 0 ? void 0 : _b[0], plot: (_c = parsedData === null || parsedData === void 0 ? void 0 : parsedData.plot) === null || _c === void 0 ? void 0 : _c[0], poster: (_f = (_e = (_d = parsedData === null || parsedData === void 0 ? void 0 : parsedData.art) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.poster) === null || _f === void 0 ? void 0 : _f[0], fanart: (_j = (_h = (_g = parsedData === null || parsedData === void 0 ? void 0 : parsedData.art) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.fanart) === null || _j === void 0 ? void 0 : _j[0], actors: (_k = parsedData === null || parsedData === void 0 ? void 0 : parsedData.actor) === null || _k === void 0 ? void 0 : _k.map((actor) => { var _a, _b, _c, _d; return ({ name: (_a = actor === null || actor === void 0 ? void 0 : actor.name) === null || _a === void 0 ? void 0 : _a[0], role: (_b = actor === null || actor === void 0 ? void 0 : actor.role) === null || _b === void 0 ? void 0 : _b[0], thumb: (_c = actor === null || actor === void 0 ? void 0 : actor.thumb) === null || _c === void 0 ? void 0 : _c[0], type: (_d = actor === null || actor === void 0 ? void 0 : actor.type) === null || _d === void 0 ? void 0 : _d[0], }); }), dateadded: (_l = parsedData === null || parsedData === void 0 ? void 0 : parsedData.dateadded) === null || _l === void 0 ? void 0 : _l[0], }; return mediaInfo; } catch (error) { console.error("Error extracting media info:", error); return null; } } exports.extractMediaInfo = extractMediaInfo; //# sourceMappingURL=parser.js.map