UNPKG

rsshub

Version:
80 lines (78 loc) 2.59 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/magazinelib/latest-magazine.ts init_esm_shims(); const host = "https://magazinelib.com"; const route = { path: "/latest-magazine/:query?", categories: ["reading"], example: "/magazinelib/latest-magazine/new+yorker", parameters: { query: "query, search page querystring" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "Latest Magazine", maintainers: ["EthanWng97"], handler, description: `For instance, when doing search at [https://magazinelib.com](https://magazinelib.com) and you get url \`https://magazinelib.com/?s=new+yorker\`, the query is \`new+yorker\`` }; async function handler(ctx) { const query = ctx.req.param("query"); const response = await got_default({ method: "get", url: `${host}/wp-json/wp/v2/posts/`, searchParams: { search: query, per_page: 30, _embed: 1 } }); let subTitle = query; if (subTitle === void 0) subTitle = ""; else { subTitle = subTitle.replaceAll(/[^\dA-Za-z]+/g, " ").toUpperCase(); subTitle = ` - ${subTitle}`; } const items = response.data.map((obj) => { const data = { date: obj.date_gmt, link: obj.link, featuredMediaLink: obj._links["wp:featuredmedia"][0].href, title: obj.title.rendered }; const content = load(obj.content.rendered)(".vk-att"); content.find("img[src=\"https://magazinelib.com/wp-includes/images/media/default.png\"]").remove(); data.content = content.html(); const imgUrl = obj._embedded["wp:featuredmedia"][0].source_url; data.description = data.content + art(path.join(__dirname, "templates/magazine-description-5b741265.art"), { imgUrl }); data.categories = obj._embedded["wp:term"][0].map((item) => item.name); return data; }); return { title: `MagazineLib - Latest Magazines${subTitle}`, link: `{host}/?s=${query}`, description: `MagazineLib - Latest Magazines${subTitle}`, item: items.map((item) => ({ title: item.title, link: item.link, category: item.categories, pubDate: new Date(item.pubDate).toUTCString(), description: item.description })) }; } //#endregion export { route };