mirror of
https://github.com/imsyy/DailyHotApi.git
synced 2026-01-12 05:04:56 +08:00
🦄 refactor: Refactoring using hono
This commit is contained in:
280
README.md
280
README.md
@@ -4,117 +4,63 @@
|
||||
<p>一个聚合热门数据的 API 接口</p>
|
||||
</div>
|
||||
|
||||
> [!TIP]
|
||||
> ### 目前正基于 `Hono` 和 `typescript` 重构该项目,敬请期待
|
||||
---
|
||||
|
||||
- 极快响应,便于开发
|
||||
- 支持 RSS 模式和 JSON 模式
|
||||
- 支持多种部署方式
|
||||
- 简明的路由目录,便于新增
|
||||
|
||||
## 示例
|
||||
|
||||
> 这里是使用该 API 的示例站点
|
||||
> 这里是使用该 API 的示例站点
|
||||
> 示例站点可能由于访问量或者长久未维护而访问异常
|
||||
> 若您也使用了本 API 搭建了网站,欢迎提交您的站点链接
|
||||
|
||||
- [今日热榜 - https://hot.imsyy.top/](https://hot.imsyy.top/)
|
||||
|
||||
## 总览
|
||||
|
||||
> 🟢 状态正常
|
||||
> 🟠 可能失效
|
||||
> ❌ 无法使用
|
||||
> 🟢 状态正常 / 🟠 可能失效 / ❌ 无法使用
|
||||
|
||||
| **站点** | **类别** | **调用名称** | **状态** |
|
||||
| ------------ | -------- | --------------------- | -------- |
|
||||
| 哔哩哔哩 | 热门榜 | bilibili | 🟢 |
|
||||
| 微博 | 热搜榜 | weibo | 🟢 |
|
||||
| 知乎 | 热榜 | zhihu | 🟢 |
|
||||
| 百度 | 热搜榜 | baidu | 🟢 |
|
||||
| 抖音 | 热点榜 | douyin / douyin_new | 🟢 |
|
||||
| 抖音 | 热歌榜 | douyin_music | 🟢 |
|
||||
| 豆瓣 | 新片榜 | douban_new | 🟢 |
|
||||
| 豆瓣讨论小组 | 讨论精选 | douban_group | 🟢 |
|
||||
| 百度贴吧 | 热议榜 | tieba | 🟢 |
|
||||
| 少数派 | 热榜 | sspai | 🟢 |
|
||||
| IT 之家 | 热榜 | ithome | 🟠 |
|
||||
| 澎湃新闻 | 热榜 | thepaper | 🟢 |
|
||||
| 今日头条 | 热榜 | toutiao | 🟢 |
|
||||
| 36 氪 | 热榜 | 36kr | 🟢 |
|
||||
| 稀土掘金 | 热榜 | juejin | 🟢 |
|
||||
| 腾讯新闻 | 热点榜 | newsqq | 🟢 |
|
||||
| 网易新闻 | 热点榜 | netease | 🟢 |
|
||||
| 英雄联盟 | 更新公告 | lol | 🟢 |
|
||||
| 原神 | 最新消息 | genshin | 🟢 |
|
||||
| 微信读书 | 飙升榜 | weread | 🟢 |
|
||||
| 快手 | 热榜 | kuaishou | 🟢 |
|
||||
| 网易云音乐 | 排行榜 | netease_music_toplist | 🟢 |
|
||||
| QQ音乐 | 排行榜 | qq_music_toplist | 🟢 |
|
||||
| NGA | 热帖 | ngabbs | 🟢 |
|
||||
| Github | Trending | github | 🟢 |
|
||||
| V2EX | 热榜 | v2ex | 🟠 |
|
||||
| 历史上的今天 | 指定日期 | calendar | 🟢 |
|
||||
|
||||
### 特殊接口说明
|
||||
|
||||
#### 网易云音乐
|
||||
|
||||
调用网易云音乐排行榜需要传入指定榜单类别
|
||||
|
||||
| 参数名 | 参数值 | 说明 |
|
||||
| ------ | ------ | ------ |
|
||||
| type | 1 | 飙升榜 |
|
||||
| type | 2 | 新歌榜 |
|
||||
| type | 3 | 原创榜 |
|
||||
| type | 4 | 热歌榜 |
|
||||
|
||||
```http
|
||||
GET https://example.com/netease_music_toplist?type=1
|
||||
```
|
||||
|
||||
#### QQ音乐
|
||||
|
||||
调用QQ音乐排行榜需要传入指定榜单类别
|
||||
|
||||
| 参数名 | 参数值 | 说明 |
|
||||
| ------ | ------ | ---------------- |
|
||||
| type | 1 | 飙升榜 |
|
||||
| type | 2 | 热歌榜 |
|
||||
| type | 3 | 新歌榜 |
|
||||
| type | 4 | 流行指数榜 |
|
||||
| type | 5 | 腾讯音乐人原创榜 |
|
||||
| type | 6 | 听歌识曲榜 |
|
||||
|
||||
```http
|
||||
GET https://example.com/qq_music_toplist?type=1
|
||||
```
|
||||
|
||||
#### 获取全部接口信息
|
||||
|
||||
获取除了下方特殊接口外的全部接口列表
|
||||
|
||||
```http
|
||||
GET https://example.com/all
|
||||
```
|
||||
|
||||
#### 历史上的今天(指定日期)
|
||||
|
||||
将指定的月份和日期传入即可得到当天数据,请注意格式
|
||||
|
||||
```http
|
||||
GET https://example.com/calendar/date?month=06&day=01
|
||||
```
|
||||
| **站点** | **类别** | **调用名称** | **状态** |
|
||||
| -------------- | -------- | ------------ | -------- |
|
||||
| 哔哩哔哩 | 热门榜 | bilibili | 🟢 |
|
||||
| AcFun | 排行榜 | acfun | 🟢 |
|
||||
| 微博 | 热搜榜 | weibo | 🟢 |
|
||||
| 知乎 | 热榜 | zhihu | 🟢 |
|
||||
| 知乎日报 | 推荐榜 | zhihu-daily | 🟢 |
|
||||
| 百度 | 热搜榜 | baidu | 🟢 |
|
||||
| 抖音 | 热点榜 | douyin | 🟢 |
|
||||
| 豆瓣电影 | 新片榜 | douban-movie | 🟢 |
|
||||
| 豆瓣讨论小组 | 讨论精选 | douban-group | 🟢 |
|
||||
| 百度贴吧 | 热议榜 | tieba | 🟢 |
|
||||
| 少数派 | 热榜 | sspai | 🟢 |
|
||||
| IT 之家 | 热榜 | ithome | 🟠 |
|
||||
| 简书 | 热门推荐 | jianshu | 🟠 |
|
||||
| 澎湃新闻 | 热榜 | thepaper | 🟢 |
|
||||
| 今日头条 | 热榜 | toutiao | 🟢 |
|
||||
| 36 氪 | 热榜 | 36kr | 🟢 |
|
||||
| 稀土掘金 | 热榜 | juejin | 🟢 |
|
||||
| 腾讯新闻 | 热点榜 | qq-news | 🟢 |
|
||||
| 网易新闻 | 热点榜 | netease-news | 🟢 |
|
||||
| 英雄联盟 | 更新公告 | lol | 🟢 |
|
||||
| 原神 | 最新消息 | genshin | 🟢 |
|
||||
| 崩坏3 | 最新动态 | honkai | 🟢 |
|
||||
| 崩坏:星穹铁道 | 最新动态 | starrail | 🟢 |
|
||||
| 微信读书 | 飙升榜 | weread | 🟢 |
|
||||
| NGA | 热帖 | ngabbs | 🟢 |
|
||||
| HelloGitHub | Trending | github | 🟢 |
|
||||
|
||||
## 部署
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
pnpm install
|
||||
具体使用说明可参考 [我的博客](https://blog.imsyy.top/posts/2024/0408),下方仅讲解基础操作:
|
||||
|
||||
# 运行
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## Docker 部署
|
||||
### Docker 部署
|
||||
|
||||
> 安装及配置 Docker 将不在此处说明,请自行解决
|
||||
|
||||
### 本地构建
|
||||
#### 本地构建
|
||||
|
||||
```bash
|
||||
# 构建
|
||||
@@ -125,7 +71,7 @@ docker run -p 6688:6688 -d dailyhot-api
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 在线部署
|
||||
#### 在线部署
|
||||
|
||||
```bash
|
||||
# 拉取
|
||||
@@ -134,133 +80,57 @@ docker pull imsyy/dailyhot-api:latest
|
||||
docker run -p 6688:6688 -d imsyy/dailyhot-api:latest
|
||||
```
|
||||
|
||||
## Vercel 部署
|
||||
### 手动部署
|
||||
|
||||
现已支持 Vercel 部署,无需服务器
|
||||
最直接的方式,您可以按照以下步骤将 DailyHotApi 部署在您的电脑、服务器或者其他任何地方
|
||||
|
||||
### 操作方法
|
||||
#### 安装
|
||||
|
||||
1. fork 本项目
|
||||
2. 在 `Vercel` 官网点击 `New Project`
|
||||
3. 点击 `Import Git Repository` 并选择你 fork 的此项目并点击 `import`
|
||||
4. `PROJECT NAME`自己填,`FRAMEWORK PRESET` 选 `Other` 然后直接点 `Deploy` 接着等部署完成即可
|
||||
|
||||
## 调用
|
||||
|
||||
### 获取榜单数据
|
||||
|
||||
> 获取数据只需在域名后面加上上方列表中的调用名称即可
|
||||
|
||||
```http
|
||||
GET https://api-hot.imsyy.top/bilibili/
|
||||
```bash
|
||||
git clone https://github.com/imsyy/DailyHotApi.git
|
||||
cd DailyHotApi
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>调用示例</summary>
|
||||
然后再执行安装依赖
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"title": "哔哩哔哩", // 榜单名称
|
||||
"subtitle": "热门榜", // 榜单类别
|
||||
"from": "server", // 此处返回是最新数据还是缓存
|
||||
"total": 100, // 数据总数
|
||||
"updateTime": "2023-03-14T07:40:51.846Z", // 数据获取时间
|
||||
"data": [
|
||||
{
|
||||
"id": "BV1E84y1A7z2",
|
||||
"title": "假如我的校园是一款RPG游戏!",
|
||||
"desc": "所有取景都是在学校里面拍的,都是真实存在的场景哦!",
|
||||
"pic": "http://i2.hdslb.com/bfs/archive/a24e442d0aae6d488db023c4ddcb450e9f2bf5f3.jpg",
|
||||
"owner": {
|
||||
"mid": 424658638,
|
||||
"name": "四夕小田木_已黑化_",
|
||||
"face": "https://i1.hdslb.com/bfs/face/afd9ba47933edc4842ccbeba2891a25465d1cf77.jpg"
|
||||
},
|
||||
"data": {
|
||||
"aid": 610872610,
|
||||
"view": 4178745,
|
||||
"danmaku": 4229,
|
||||
"reply": 5317,
|
||||
"favorite": 91020,
|
||||
"coin": 133596,
|
||||
"share": 46227,
|
||||
"now_rank": 0,
|
||||
"his_rank": 1,
|
||||
"like": 616519,
|
||||
"dislike": 0,
|
||||
"vt": 0,
|
||||
"vv": 0
|
||||
},
|
||||
"url": "https://b23.tv/BV1E84y1A7z2",
|
||||
"mobileUrl": "https://m.bilibili.com/video/BV1E84y1A7z2"
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
</details>
|
||||
#### 开发
|
||||
|
||||
### 获取榜单最新数据
|
||||
|
||||
> 获取最新数据只需在原链接后面加上 `/new`,这样就会直接从服务端拉取最新数据,不会从本地缓存中读取
|
||||
|
||||
```http
|
||||
GET https://api-hot.imsyy.top/bilibili/new
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>调用示例</summary>
|
||||
成功启动后程序会在控制台输出可访问的地址
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "获取成功",
|
||||
"title": "哔哩哔哩", // 榜单名称
|
||||
"subtitle": "热门榜", // 榜单类别
|
||||
"total": 100, // 数据总数
|
||||
"updateTime": "2023-03-14T07:40:51.846Z", // 数据获取时间
|
||||
"data": [
|
||||
{
|
||||
"id": "BV1E84y1A7z2",
|
||||
"title": "假如我的校园是一款RPG游戏!",
|
||||
"desc": "所有取景都是在学校里面拍的,都是真实存在的场景哦!",
|
||||
"pic": "http://i2.hdslb.com/bfs/archive/a24e442d0aae6d488db023c4ddcb450e9f2bf5f3.jpg",
|
||||
"owner": {
|
||||
"mid": 424658638,
|
||||
"name": "四夕小田木_已黑化_",
|
||||
"face": "https://i1.hdslb.com/bfs/face/afd9ba47933edc4842ccbeba2891a25465d1cf77.jpg"
|
||||
},
|
||||
"data": {
|
||||
"aid": 610872610,
|
||||
"view": 4178745,
|
||||
"danmaku": 4229,
|
||||
"reply": 5317,
|
||||
"favorite": 91020,
|
||||
"coin": 133596,
|
||||
"share": 46227,
|
||||
"now_rank": 0,
|
||||
"his_rank": 1,
|
||||
"like": 616519,
|
||||
"dislike": 0,
|
||||
"vt": 0,
|
||||
"vv": 0
|
||||
},
|
||||
"url": "https://b23.tv/BV1E84y1A7z2",
|
||||
"mobileUrl": "https://m.bilibili.com/video/BV1E84y1A7z2"
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
#### 编译运行
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
npm run start
|
||||
```
|
||||
|
||||
</details>
|
||||
成功启动后程序会在控制台输出可访问的地址
|
||||
|
||||
### Railway 部署
|
||||
|
||||
本项目支持使用 [Railway](https://railway.app/) 一键部署,请先将本项目 fork 到您的仓库中,即可使用一键部署。
|
||||
|
||||
### Zeabur 部署
|
||||
|
||||
本项目支持使用 [Zeabur](https://zeabur.com/) 一键部署,请先将本项目 fork 到您的仓库中,即可使用一键部署。
|
||||
|
||||
### Vercel 部署
|
||||
|
||||
> 🚧 Vercel 部署支持正在修复中
|
||||
|
||||
若您目前仅能通过 `Vercel` 进行部署,那么请暂时不要使用最新版本
|
||||
|
||||
## 其他
|
||||
|
||||
- 本项目为了避免频繁请求官方数据,默认对数据做了缓存处理,默认为 `30` 分钟,如需更改,请自行前往 `utils\cacheData.js` 文件修改
|
||||
- 本项目为了避免频繁请求官方数据,默认对数据做了缓存处理,默认为 `60` 分钟,如需更改,请自行修改配置
|
||||
- 本项目部分接口使用了 **页面爬虫**,若违反对应页面的相关规则,请 **及时通知我去除该接口**
|
||||
|
||||
## 免责声明
|
||||
|
||||
Reference in New Issue
Block a user