UNPKG

feedsmith

Version:

Fast, all‑in‑one feed parser and generator for RSS, Atom, RDF, and JSON Feed, with support for Podcast, iTunes, Dublin Core, and OPML files.

94 lines (93 loc) 4.61 kB
const require_utils = require("../../../common/utils.cjs"); //#region src/namespaces/rawvoice/parse/utils.ts const parseRating = (value) => { return require_utils.trimObject({ value: require_utils.parseString(require_utils.retrieveText(value)), tv: require_utils.parseString(value?.["@tv"]), movie: require_utils.parseString(value?.["@movie"]) }); }; const parseLiveStream = (value) => { return require_utils.trimObject({ url: require_utils.parseString(require_utils.retrieveText(value)), schedule: require_utils.parseDate(value?.["@schedule"]), duration: require_utils.parseString(value?.["@duration"]), type: require_utils.parseString(value?.["@type"]) }); }; const parsePoster = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ url: require_utils.parseString(value["@url"]) }); }; const parseAlternateEnclosure = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ src: require_utils.parseString(value["@src"]), type: require_utils.parseString(value["@type"]), length: require_utils.parseNumber(value["@length"]) }); }; const parseSubscribe = (value) => { if (!require_utils.isObject(value)) return; const subscribe = {}; for (const key in value) if (key.startsWith("@")) { const attrName = key.slice(1); const attrValue = require_utils.parseString(value[key]); if (attrValue) subscribe[attrName] = attrValue; } return require_utils.trimObject(subscribe); }; const parseMetamark = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ type: require_utils.parseString(value["@type"]), link: require_utils.parseString(value["@link"]), position: require_utils.parseNumber(value["@position"]), duration: require_utils.parseNumber(value["@duration"]), value: require_utils.parseString(require_utils.retrieveText(value)) }); }; const parseDonate = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ href: require_utils.parseString(value["@href"]), value: require_utils.parseString(require_utils.retrieveText(value)) }); }; const retrieveItem = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ poster: require_utils.parseSingularOf(value["rawvoice:poster"], parsePoster), isHd: require_utils.parseSingularOf(value["rawvoice:ishd"], (value) => require_utils.parseYesNoBoolean(require_utils.retrieveText(value))), embed: require_utils.parseSingularOf(value["rawvoice:embed"], (value) => require_utils.parseString(require_utils.retrieveText(value))), webm: require_utils.parseSingularOf(value["rawvoice:webm"], parseAlternateEnclosure), mp4: require_utils.parseSingularOf(value["rawvoice:mp4"], parseAlternateEnclosure), metamarks: require_utils.parseArrayOf(value["rawvoice:metamark"], parseMetamark) }); }; const retrieveFeed = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ rating: require_utils.parseSingularOf(value["rawvoice:rating"], parseRating), liveEmbed: require_utils.parseSingularOf(value["rawvoice:liveembed"], (value) => require_utils.parseString(require_utils.retrieveText(value))), flashLiveStream: require_utils.parseSingularOf(value["rawvoice:flashlivestream"], parseLiveStream), httpLiveStream: require_utils.parseSingularOf(value["rawvoice:httplivestream"], parseLiveStream), shoutcastLiveStream: require_utils.parseSingularOf(value["rawvoice:shoutcastlivestream"], parseLiveStream), liveStream: require_utils.parseSingularOf(value["rawvoice:livestream"], parseLiveStream), location: require_utils.parseSingularOf(value["rawvoice:location"], (value) => require_utils.parseString(require_utils.retrieveText(value))), frequency: require_utils.parseSingularOf(value["rawvoice:frequency"], (value) => require_utils.parseString(require_utils.retrieveText(value))), mycast: require_utils.parseSingularOf(value["rawvoice:mycast"], (value) => require_utils.parseYesNoBoolean(require_utils.retrieveText(value))), subscribe: require_utils.parseSingularOf(value["rawvoice:subscribe"], parseSubscribe), donate: require_utils.parseSingularOf(value["rawvoice:donate"], parseDonate) }); }; //#endregion exports.parseAlternateEnclosure = parseAlternateEnclosure; exports.parseDonate = parseDonate; exports.parseLiveStream = parseLiveStream; exports.parseMetamark = parseMetamark; exports.parsePoster = parsePoster; exports.parseRating = parseRating; exports.parseSubscribe = parseSubscribe; exports.retrieveFeed = retrieveFeed; exports.retrieveItem = retrieveItem;