rsshub
Version:
Make RSS Great Again!
55 lines (54 loc) • 2.32 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
import { t as timezone } from "./timezone-DE--ze1V.mjs";
//#region lib/routes/maoyan/hot-complete.ts
const route = {
path: "/hotComplete/:orderby?/:ascOrDesc?/:top?",
categories: ["multimedia"],
example: "/maoyan/hotComplete",
parameters: {
orderby: "排序条件,(score: 评分, pubDate: 发布时间)",
ascOrDesc: "正序或倒序 (asc: 正序, desc: 倒序) 默认倒序",
top: "取前多少条,默认取所有"
},
name: "正在热映 - 完整版",
maintainers: ["chenbstack"],
handler
};
async function handler(ctx) {
const { orderby, ascOrDesc, top } = ctx.req.param();
const response = await rofetch("https://m.maoyan.com/ajax/movieOnInfoList");
const movieIds = response.movieIds;
const start = response.movieList.length;
const movieIdsArr = Array.from({ length: Math.ceil((movieIds.length - start) / 10) }, (_, i) => movieIds.slice(start + i * 10, start + (i + 1) * 10));
const dataArrs = await Promise.all(movieIdsArr.map(async (idsTemp) => {
const responseTemp = await rofetch("https://m.maoyan.com/ajax/moreComingList", { query: {
movieIds: idsTemp.toString(),
token: ""
} });
return responseTemp.coming?.length > 0 ? responseTemp.coming : [];
}));
let data = [...response.movieList, ...dataArrs.flat()];
if (orderby) data.sort((a, b) => {
if (orderby === "pubDate") return ascOrDesc === "asc" ? new Date(a.rt).getTime() - new Date(b.rt).getTime() : new Date(b.rt).getTime() - new Date(a.rt).getTime();
return ascOrDesc === "asc" ? a.sc - b.sc : b.sc - a.sc;
});
const topCount = Number(top);
if (topCount > 0 && topCount < data.length) data = data.slice(0, topCount - 1);
return {
title: "猫眼电影 - 正在热映 - 完整版",
link: "https://maoyan.com/films",
description: "猫眼电影 - 正在热映",
item: data.map((item) => {
const rating = item.sc > 0 ? `评分:${item.sc}` : "";
return {
title: `${item.nm} ${rating}`,
description: `<img src="${item.img.replace("w.h", "1000.1000")}"> <br> ${rating} <br> 演员:${item.star} <br> 上映信息:${item.showInfo}`,
link: `https://maoyan.com/films/${item.id}`,
pubDate: timezone(parseDate(item.rt), 8)
};
})
};
}
//#endregion
export { route };