feat: 新增 极客公园

This commit is contained in:
imsyy
2024-12-09 18:25:20 +08:00
parent bd507f9938
commit c9ee406372
2 changed files with 56 additions and 0 deletions

14
src/router.types.d.ts vendored
View File

@@ -363,4 +363,18 @@ export type RouterType = {
created_at: number; created_at: number;
type: number; type: number;
}; };
geekpark: {
post: {
id: number;
nickname: string;
title: string;
abstract: string;
cover_url: string;
views: number;
published_timestamp: number;
authors: {
nickname: string;
}[];
};
};
}; };

42
src/routes/geekpark.ts Normal file
View File

@@ -0,0 +1,42 @@
import type { RouterData } from "../types.js";
import type { RouterType } from "../router.types.js";
import { get } from "../utils/getData.js";
import { getTime } from "../utils/getTime.js";
export const handleRoute = async (_: undefined, noCache: boolean) => {
const listData = await getList(noCache);
const routeData: RouterData = {
name: "geekpark",
title: "极客公园",
type: "热门文章",
description: "极客公园聚焦互联网领域,跟踪新鲜的科技新闻动态,关注极具创新精神的科技产品。",
link: "https://www.geekpark.net/",
total: listData.data?.length || 0,
...listData,
};
return routeData;
};
const getList = async (noCache: boolean) => {
const url = `https://mainssl.geekpark.net/api/v2`;
const result = await get({ url, noCache });
const list = result.data?.homepage_posts;
return {
...result,
data: list.map((v: RouterType["geekpark"]) => {
const post = v.post;
return {
id: post.id,
title: post.title,
desc: post.abstract,
cover: post.cover_url,
author: post?.authors?.[0]?.nickname,
hot: post.views,
timestamp: getTime(post.published_timestamp),
url: `https://www.geekpark.net/news/${post.id}`,
mobileUrl: `https://www.geekpark.net/news/${post.id}`,
};
}),
};
};