rsshub
Version:
Make RSS Great Again!
80 lines (78 loc) • 2.59 kB
JavaScript
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 };