UNPKG

rsshub

Version:
114 lines (112 loc) β€’ 3.05 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import "./helpers-Bo4JQYdN.mjs"; import { t as got_default } from "./got-CO-ndVl2.mjs"; import { t as renderQuestionDescription } from "./question-description-Dt0mujqM.mjs"; //#region lib/routes/leetcode/dailyquestion-cn.ts const host = "https://leetcode.cn"; const route = { path: "/dailyquestion/cn", radar: [{ source: ["leetcode.cn/"] }], name: "Unknown", maintainers: [], handler, url: "leetcode.cn/" }; async function handler() { const question = { date: "", link: "", titleSlug: "", content: "", frontedId: "", difficulty: "", tags: "" }; const url = host + "/graphql"; const dailyQuestionPayload = { query: `query questionOfToday { todayRecord { date question { frontendQuestionId: questionFrontendId titleSlug } } } `, variables: {} }; const data = (await got_default({ method: "post", url, headers: { "content-type": "application/json" }, body: JSON.stringify(dailyQuestionPayload) })).data.data.todayRecord[0]; question.date = data.date; question.titleSlug = data.question.titleSlug; question.link = host + "/problems/" + question.titleSlug; const detailsPayload = { operationName: "questionData", query: `query questionData($titleSlug: String!) { question(titleSlug: $titleSlug) { questionId questionFrontendId title titleSlug content translatedTitle translatedContent difficulty topicTags { name slug translatedName __typename } __typename } }`, variables: { titleSlug: question.titleSlug } }; const detailsResponse = await got_default({ method: "post", url, headers: { "content-type": "application/json" }, body: JSON.stringify(detailsPayload) }); const emoji = { Medium: "🟑", Easy: "🟒", Hard: "πŸ”΄" }; const details = detailsResponse.data.data.question; question.content = details.translatedContent; question.frontedId = details.questionFrontendId; question.difficulty = emoji[details.difficulty]; let topicTags = details.topicTags; topicTags = topicTags.map((item) => { let slug = "#" + item.slug; slug = slug.replaceAll("-", "_"); return slug; }); question.tags = topicTags.join(" "); const rssData = { title: question.frontedId + "." + question.titleSlug, description: renderQuestionDescription({ question }), link: question.link }; return { title: "LeetCode 每ζ—₯δΈ€ι’˜", link: "https://leetcode.cn", description: "Leetcode 每ζ—₯δΈ€ι’˜", item: [{ title: rssData.title, description: rssData.description + question.content, link: rssData.link }] }; } //#endregion export { route };