rsshub
Version:
Make RSS Great Again!
68 lines (66 loc) • 2.39 kB
JavaScript
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 };