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.

42 lines (41 loc) 2.22 kB
import { isObject, parseArrayOf, parseSingularOf, parseString, parseYesNoBoolean, retrieveText, trimObject } from "../../../common/utils.js"; //#region src/namespaces/googleplay/parse/utils.ts const parseImage = (value) => { if (isObject(value) && value["@href"]) return trimObject({ href: parseString(value["@href"]) }); const text = retrieveText(value); if (text) return trimObject({ href: parseString(text) }); }; const parseCategory = (value) => { if (isObject(value) && value["@text"]) return parseString(value["@text"]); return parseString(retrieveText(value)); }; const parseExplicit = (value) => { const explicit = retrieveText(value)?.trim().toLowerCase(); if (explicit === "clean") return explicit; return parseYesNoBoolean(value); }; const retrieveItem = (value) => { if (!isObject(value)) return; return trimObject({ author: parseSingularOf(value["googleplay:author"], (value) => parseString(retrieveText(value))), description: parseSingularOf(value["googleplay:description"], (value) => parseString(retrieveText(value))), explicit: parseSingularOf(value["googleplay:explicit"], parseExplicit), block: parseSingularOf(value["googleplay:block"], (value) => parseYesNoBoolean(retrieveText(value))), image: parseSingularOf(value["googleplay:image"], parseImage) }); }; const retrieveFeed = (value) => { if (!isObject(value)) return; return trimObject({ author: parseSingularOf(value["googleplay:author"], (value) => parseString(retrieveText(value))), description: parseSingularOf(value["googleplay:description"], (value) => parseString(retrieveText(value))), explicit: parseSingularOf(value["googleplay:explicit"], parseExplicit), block: parseSingularOf(value["googleplay:block"], (value) => parseYesNoBoolean(retrieveText(value))), image: parseSingularOf(value["googleplay:image"], parseImage), newFeedUrl: parseSingularOf(value["googleplay:new-feed-url"], (value) => parseString(retrieveText(value))), email: parseSingularOf(value["googleplay:email"], (value) => parseString(retrieveText(value))), categories: parseArrayOf(value["googleplay:category"], parseCategory) }); }; //#endregion export { parseCategory, parseExplicit, parseImage, retrieveFeed, retrieveItem };