rsshub
Version:
Make RSS Great Again!
90 lines (88 loc) • 2.62 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs";
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
//#region lib/routes/galxe/index.ts
const route = {
path: "/quest/:alias",
name: "Quest",
url: "app.galxe.com",
maintainers: ["cxheng315"],
example: "/galxe/quest/MissionWeb3",
categories: ["other"],
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{
source: ["app.galxe.com/quest/:alias"],
target: "/quest/:alias"
}],
handler
};
async function handler(ctx) {
const url = "https://graphigo.prd.galaxy.eco/query";
const alias = ctx.req.param("alias");
const space = (await ofetch_default(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: {
variables: {
alias,
campaignInput: {
first: ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit")) : 50,
excludeChildren: true,
listType: "Newest"
}
},
query: `
query BrowseSpaceCampaigns($id: Int, $alias: String, $campaignInput: ListCampaignInput!) {
space(id: $id, alias: $alias) {
id
name
alias
info
campaigns(input: $campaignInput) {
list {
startTime
endTime
id
name
description
__typename
}
pageInfo {
endCursor
hasNextPage
__typename
}
__typename
}
__typename
}
}
`
}
})).data.space;
const items = space.campaigns.list.map((campaign) => ({
title: campaign.name,
link: `https://app.galxe.com/quest/${alias}/${campaign.id}`,
description: campaign.description,
pubDate: campaign.startTime ? parseDate(campaign.startTime * 1e3) : null
}));
return {
title: space.name,
description: space.info,
link: `https://app.galxe.com/quest/${alias}`,
item: items,
author: space.alias
};
}
//#endregion
export { route };