rsshub
Version:
Make RSS Great Again!
79 lines (77 loc) • 2.81 kB
JavaScript
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs";
import { t as md5 } from "./md5-C8GRvctM.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/lfsyd/utils.ts
init_esm_shims();
const rootUrl = "https://www.iyingdi.com";
const infoUrL = "https://api.iyingdi.com/web/post/info";
const ProcessFeed = async (cache, articleList) => {
return await Promise.all(articleList.map((item) => cache.tryGet(item.link, async () => {
const infoForm = {
post_id: item.postId,
timestamp: ""
};
const { body } = await got_default({
method: "post",
url: infoUrL,
headers: {
Host: "api.iyingdi.com",
"Login-Token": "nologin",
Origin: rootUrl,
Platform: "pc",
Referer: `${rootUrl}/`
},
form: ProcessForm(infoForm)
});
item.description = cleanHtml(JSON.parse(body).post.content);
return item;
})));
};
const ProcessForm = (form, type) => {
form.key = type ? "8a11ed3712b699e749185674f1dc20b4" : "b8d5b38577b8bb382b0c783b474b95f9";
form.timestamp = Math.floor(Date.now() / 1e3);
form.sign = md5(new URLSearchParams(form).toString());
delete form.key;
return form;
};
const cleanHtml = (htmlString) => {
const $ = load(htmlString.replace(/(<p>|<div>)(.*?)?<strong>(标准|狂野)日报投稿.*?<\/strong>(.*?)?(<\/p>|<\/div>)(.|\n)*$/, ""));
$(".yingdi-car,.bbspost,.deck-set").each((i, e) => {
const className = $(e).attr("class");
const dataId = $(e).attr("data-id");
const decksUrl = `${rootUrl}/web/tools/hearthstone/decks/setdetail?setid=${dataId}`;
const url = className === "yingdi-card bbspost" ? `${rootUrl}/tz/post/${dataId}` : decksUrl;
const time = $(e).find(".card-status .time").text();
$(e).find(".card-info .title").text((i$1, c) => `${c} ${time}`);
$(e).find(".card-status").remove();
$(e).find(".card-info").wrap(art(path.join(__dirname, "templates/card-038fc8ce.art"), { url }));
});
$(".yingdi-image.gif").each((i, e) => {
const imgsrc = $(e).attr("data-original");
$(e).attr("src", imgsrc);
});
$(".yingdi-audio").each((i, e) => {
$(e).find(".audio-cover").remove();
$(e).find(".audio-area.hidden").attr("class", "audio-area");
});
$(".yingdi-video iframe").each((i, e) => {
const bvid = $(e).attr("src").match(/bvid=(.*?)&/)[1];
if (bvid) {
const url = `https://www.bilibili.com/video/${bvid}`;
$(e).after(art(path.join(__dirname, "templates/video-54339745.art"), { url }));
}
});
$(".yingdi-card.user").each((i, e) => {
$(e).prev("p").remove();
$(e).remove();
});
$(".action-button").remove();
$(".yingdi-ballot").remove();
$("hr").remove();
return $.html();
};
//#endregion
export { ProcessForm as n, ProcessFeed as t };