rsshub
Version:
Make RSS Great Again!
66 lines (64 loc) • 2.19 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import { t as config } from "./config-C37vj7VH.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/follower.ts
const route = {
path: "/user/followers/:user",
categories: ["programming"],
example: "/github/user/followers/HenryQW",
parameters: { user: "GitHub username" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{ source: ["github.com/:user"] }],
name: "User Followers",
maintainers: ["HenryQW"],
handler
};
async function handler(ctx) {
if (!config.github || !config.github.access_token) throw new config_not_found_default("GitHub follower 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 host = `https://github.com/${user}`;
const data = (await got_default({
method: "post",
url: "https://api.github.com/graphql",
headers: { Authorization: `bearer ${config.github.access_token}` },
json: { query: `
{
user(login: "${user}") {
followers(first: 10) {
edges {
node {
login
avatarUrl
}
}
}
}
}
` }
})).data.data.user.followers.edges;
return {
allowEmpty: true,
title: `${user}'s followers`,
link: host,
item: data.map((follower) => ({
title: `${follower.node.login} started following ${user}`,
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 };