UNPKG

rsshub

Version:
68 lines (66 loc) 2.39 kB
import "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as config_not_found_default } from "./config-not-found-Dyp3RlZZ.mjs"; //#region lib/routes/github/star.ts const route = { path: "/stars/:user/:repo", categories: ["programming"], example: "/github/stars/DIYgod/RSSHub", view: ViewType.Notifications, parameters: { user: "GitHub username", repo: "GitHub repo name" }, features: { requireConfig: [{ name: "GITHUB_ACCESS_TOKEN", description: "GitHub Access Token" }] }, radar: [{ source: ["github.com/:user/:repo/stargazers", "github.com/:user/:repo"] }], name: "Repo Stars", maintainers: ["HenryQW"], handler }; async function handler(ctx) { if (!config.github || !config.github.access_token) throw new config_not_found_default("GitHub star RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>"); const user = ctx.req.param("user"); const repo = ctx.req.param("repo"); const host = `https://github.com/${user}/${repo}/stargazers`; const data = (await got_default({ method: "post", url: "https://api.github.com/graphql", headers: { Authorization: `bearer ${config.github.access_token}` }, json: { query: ` { repository(owner: "${user}", name: "${repo}") { stargazers(last: 10) { edges { node { login avatarUrl } } } } } ` } })).data.data.repository.stargazers.edges.toReversed(); return { allowEmpty: true, title: `${user}/${repo}’s stargazers`, link: host, item: data.map((follower) => ({ title: `${follower.node.login} starred ${user}/${repo}`, author: follower.node.login, description: `<a href="https://github.com/${follower.node.login}">${follower.node.login}</a> <br> <img sytle="width:50px;" src='${follower.node.avatarUrl}'>`, link: `https://github.com/${follower.node.login}` })) }; } //#endregion export { route };