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.
46 lines (45 loc) • 2.87 kB
JavaScript
const require_utils = require("../../../common/utils.cjs");
//#region src/namespaces/googleplay/parse/utils.ts
const parseImage = (value) => {
if (require_utils.isObject(value) && value["@href"]) return require_utils.trimObject({ href: require_utils.parseString(value["@href"]) });
const text = require_utils.retrieveText(value);
if (text) return require_utils.trimObject({ href: require_utils.parseString(text) });
};
const parseCategory = (value) => {
if (require_utils.isObject(value) && value["@text"]) return require_utils.parseString(value["@text"]);
return require_utils.parseString(require_utils.retrieveText(value));
};
const parseExplicit = (value) => {
const explicit = require_utils.retrieveText(value)?.trim().toLowerCase();
if (explicit === "clean") return explicit;
return require_utils.parseYesNoBoolean(value);
};
const retrieveItem = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
author: require_utils.parseSingularOf(value["googleplay:author"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
description: require_utils.parseSingularOf(value["googleplay:description"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
explicit: require_utils.parseSingularOf(value["googleplay:explicit"], parseExplicit),
block: require_utils.parseSingularOf(value["googleplay:block"], (value) => require_utils.parseYesNoBoolean(require_utils.retrieveText(value))),
image: require_utils.parseSingularOf(value["googleplay:image"], parseImage)
});
};
const retrieveFeed = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
author: require_utils.parseSingularOf(value["googleplay:author"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
description: require_utils.parseSingularOf(value["googleplay:description"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
explicit: require_utils.parseSingularOf(value["googleplay:explicit"], parseExplicit),
block: require_utils.parseSingularOf(value["googleplay:block"], (value) => require_utils.parseYesNoBoolean(require_utils.retrieveText(value))),
image: require_utils.parseSingularOf(value["googleplay:image"], parseImage),
newFeedUrl: require_utils.parseSingularOf(value["googleplay:new-feed-url"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
email: require_utils.parseSingularOf(value["googleplay:email"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
categories: require_utils.parseArrayOf(value["googleplay:category"], parseCategory)
});
};
//#endregion
exports.parseCategory = parseCategory;
exports.parseExplicit = parseExplicit;
exports.parseImage = parseImage;
exports.retrieveFeed = retrieveFeed;
exports.retrieveItem = retrieveItem;