UNPKG

rsshub

Version:
118 lines (116 loc) 3.23 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"; //#region lib/routes/leetcode/dailyquestion-en.ts init_esm_shims(); const host = "https://leetcode.com"; const route = { path: "/dailyquestion/en", radar: [{ source: ["leetcode.com/"] }], name: "Unknown", maintainers: [], handler, url: "leetcode.com/" }; async function handler() { const question = { date: "", link: "", titleSlug: "", content: "", frontedId: "", difficulty: "", tags: "" }; const url = host + "/graphql"; const dailyQuestionPayload = { query: `query questionOfToday { activeDailyCodingChallengeQuestion { date link question { frontendQuestionId: questionFrontendId titleSlug } } } `, variables: {} }; const data = (await got_default({ method: "post", url, headers: { "content-type": "application/json" }, body: JSON.stringify(dailyQuestionPayload) })).data.data.activeDailyCodingChallengeQuestion; question.date = data.date; question.link = host + data.link; question.titleSlug = data.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.content; 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: art(path.join(__dirname, "templates/question-description-1f696f3d.art"), { question }), link: question.link }; return { title: "LeetCode Daily Question", link: "https://leetcode.com", description: "Leetcode Daily Question", item: [{ title: rssData.title, description: rssData.description + question.content, link: rssData.link }] }; } //#endregion export { route };