Skip to content

Commit

Permalink
feat(hellogithub): hellogithub 添加文章路由 (DIYgod#17779)
Browse files Browse the repository at this point in the history
* feat(hellogithub): hellogithub 添加文章路由

* fix(hellogithub): 修复文章排序链接错误
- 修正文章排序链接中的路径错误,从根路径改为文章路径

* refactor(hellogithub): simplify route path definitions

---------
  • Loading branch information
CaoMeiYouRen authored Dec 3, 2024
1 parent 3e87b79 commit 2ee154c
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 4 deletions.
62 changes: 62 additions & 0 deletions lib/routes/hellogithub/article.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import { Route } from '@/types';

import got from '@/utils/got';
import { parseDate } from '@/utils/parse-date';

const sorts = {
hot: '热门',
last: '最近',
};

export const route: Route = {
path: '/article/:sort?',
categories: ['programming'],
example: '/hellogithub/article',
parameters: { sort: '排序方式,见下表,默认为 `last`,即最近' },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
name: '文章',
maintainers: ['moke8', 'nczitzk', 'CaoMeiYouRen'],
handler,
description: `| 热门 | 最近 |
| ---- | ---- |
| hot | last |`,
};

async function handler(ctx) {
const sort = ctx.req.param('sort') ?? 'last';
const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 20;

const rootUrl = 'https://hellogithub.com';
const apiRootUrl = 'https://api.hellogithub.com/v1/article/';
const currentUrl = `${rootUrl}/article/?sort_by=${sort}`;
const apiUrl = `${apiRootUrl}?sort_by=${sort}&page=1`;

const response = await got({
method: 'get',
url: apiUrl,
});

const items = response.data.data.slice(0, limit).map((item) => ({
title: item.title,
description: `<figure>
<img src="${item.head_image}">
</figure><br>${item.desc}`,
link: `${rootUrl}/article/${item.aid}`,
author: item.author,
guid: item.aid,
pubDate: parseDate(item.publish_at),
}));

return {
title: `HelloGithub - ${sorts[sort]}文章`,
link: currentUrl,
item: items,
};
}
4 changes: 2 additions & 2 deletions lib/routes/hellogithub/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const sorts = {
};

export const route: Route = {
path: ['/home/:sort?/:id?'],
path: '/home/:sort?/:id?',
categories: ['programming'],
example: '/hellogithub/home',
parameters: { sort: '排序方式,见下表,默认为 `featured`,即精选', id: '标签 id,可在对应标签页 URL 中找到,默认为全部标签' },
Expand All @@ -23,7 +23,7 @@ export const route: Route = {
supportScihub: false,
},
name: '开源项目',
maintainers: ['moke8', 'nczitzk'],
maintainers: ['moke8', 'nczitzk', 'CaoMeiYouRen'],
handler,
description: `| 精选 | 全部 |
| ---- | ---- |
Expand Down
2 changes: 1 addition & 1 deletion lib/routes/hellogithub/report.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const types = {
};

export const route: Route = {
path: ['/ranking/:type?', '/report/:type?'],
path: '/ranking/:type?',
example: '/hellogithub/ranking',
name: '榜单报告',
maintainers: ['moke8', 'nczitzk'],
Expand Down
2 changes: 1 addition & 1 deletion lib/routes/hellogithub/volume.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ art.defaults.imports.render = function (string) {
};

export const route: Route = {
path: ['/month', '/volume'],
path: '/volume',
example: '/hellogithub/volume',
name: '月刊',
maintainers: ['moke8', 'nczitzk', 'CaoMeiYouRen'],
Expand Down

0 comments on commit 2ee154c

Please sign in to comment.