AI prompts
base on 🔥 今日热榜 API,一个聚合热门数据的 API 接口,支持 RSS 模式 及 Vercel 部署 | 前端页面:https://github.com/imsyy/DailyHot <div align="center">
<img alt="logo" height="120" src="./public/favicon.png" width="120"/>
<h2>今日热榜</h2>
<p>一个聚合热门数据的 API 接口</p>
<br />
<img src="https://img.shields.io/github/last-commit/imsyy/DailyHotApi" alt="last commit"/>
<img src="https://img.shields.io/github/languages/code-size/imsyy/DailyHotApi" alt="code size"/>
<img src="https://img.shields.io/docker/image-size/imsyy/dailyhot-api" alt="docker-image-size"/>
<img src="https://github.com/imsyy/DailyHotApi/actions/workflows/docker.yml/badge.svg" alt="Publish Docker image"/>
<img src="https://github.com/imsyy/DailyHotApi/actions/workflows/npm.yml/badge.svg" alt="Publish npm package"/>
</div>
## 🚩 特性
- 极快响应,便于开发
- 支持 RSS 模式和 JSON 模式
- 支持多种部署方式
- 简明的路由目录,便于新增
## 👀 示例
> 这里是使用该 API 的示例站点
> 示例站点可能由于访问量或者长久未维护而访问异常
> 若您也使用了本 API 搭建了网站,欢迎提交您的站点链接
- [今日热榜 - https://hot.imsyy.top/](https://hot.imsyy.top/)
## 📊 接口总览
<details>
<summary>查看全部接口</summary>
> 示例站点运行于海外服务器,部分国内站点可能存在访问异常,请以实际情况为准
| **站点** | **类别** | **调用名称** | **状态** |
| ---------------- | ------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 哔哩哔哩 | 热门榜 | bilibili |  |
| AcFun | 排行榜 | acfun |  |
| 微博 | 热搜榜 | weibo |  |
| 知乎 | 热榜 | zhihu |  |
| 知乎日报 | 推荐榜 | zhihu-daily |  |
| 百度 | 热搜榜 | baidu |  |
| 抖音 | 热点榜 | douyin |  |
| 快手 | 热点榜 | kuaishou |  |
| 豆瓣电影 | 新片榜 | douban-movie |  |
| 豆瓣讨论小组 | 讨论精选 | douban-group |  |
| 百度贴吧 | 热议榜 | tieba |  |
| 少数派 | 热榜 | sspai |  |
| IT之家 | 热榜 | ithome |  |
| IT之家「喜加一」 | 最新动态 | ithome-xijiayi |  |
| 简书 | 热门推荐 | jianshu |  |
| 果壳 | 热门文章 | guokr |  |
| 澎湃新闻 | 热榜 | thepaper |  |
| 今日头条 | 热榜 | toutiao |  |
| 36 氪 | 热榜 | 36kr |  |
| 51CTO | 推荐榜 | 51cto |  |
| CSDN | 排行榜 | csdn |  |
| NodeSeek | 最新动态 | nodeseek |  |
| 稀土掘金 | 热榜 | juejin |  |
| 腾讯新闻 | 热点榜 | qq-news |  |
| 新浪网 | 热榜 | sina |  |
| 新浪新闻 | 热点榜 | sina-news |  |
| 网易新闻 | 热点榜 | netease-news |  |
| 吾爱破解 | 榜单 | 52pojie |  |
| 全球主机交流 | 榜单 | hostloc |  |
| 虎嗅 | 24小时 | huxiu |  |
| 酷安 | 热榜 | coolapk |  |
| 虎扑 | 步行街热帖 | hupu |  |
| 爱范儿 | 快讯 | ifanr |  |
| 英雄联盟 | 更新公告 | lol |  |
| 米游社 | 最新消息 | miyoushe |  |
| 原神 | 最新消息 | genshin |  |
| 崩坏3 | 最新动态 | honkai |  |
| 崩坏:星穹铁道 | 最新动态 | starrail |  |
| 微信读书 | 飙升榜 | weread |  |
| NGA | 热帖 | ngabbs |  |
| V2EX | 主题榜 | v2ex |  |
| HelloGitHub | Trending | hellogithub |  |
| 中央气象台 | 全国气象预警 | weatheralarm |  |
| 中国地震台 | 地震速报 | earthquake |  |
| 历史上的今天 | 月-日 | history |  |
</details>
## ⚙️ 使用
本项目支持 `Node.js` 调用,可在安装完成后调用 `serveHotApi` 来开启服务器
> 该方式无法使用部分需要 Puppeteer 环境的接口
```bash
pnpm add dailyhot-api
```
```js
import serveHotApi from "dailyhot-api";
/**
* 启动服务器
* @param {Number} [port] - 端口号
* @returns {Promise<void>}
*/
serveHotApi(3000);
```
## ⚙️ 部署
具体使用说明可参考 [我的博客](https://blog.imsyy.top/posts/2024/0408),下方仅讲解基础操作:
### Docker 部署
> 安装及配置 Docker 将不在此处说明,请自行解决
#### 本地构建
```bash
# 构建
docker build -t dailyhot-api .
# 运行
docker run --restart always -p 6688:6688 -d dailyhot-api
# 或使用 Docker Compose
docker-compose up -d
```
#### 在线部署
```bash
# 拉取
docker pull imsyy/dailyhot-api:latest
# 运行
docker run --restart always -p 6688:6688 -d imsyy/dailyhot-api:latest
```
### 手动部署
最直接的方式,您可以按照以下步骤将 `DailyHotApi` 部署在您的电脑、服务器或者其他任何地方
#### 安装
```bash
git clone https://github.com/imsyy/DailyHotApi.git
cd DailyHotApi
```
然后再执行安装依赖
```bash
npm install
```
复制 `/.env.example` 文件并重命名为 `/.env` 并修改配置
#### 开发
```bash
npm run dev
```
成功启动后程序会在控制台输出可访问的地址
#### 编译运行
```bash
npm run build
npm run start
```
### pm2 部署
```bash
npm i pm2 -g
sh ./deploy.sh
```
成功启动后程序会在控制台输出可访问的地址
### Vercel 部署
本项目支持通过 `Vercel` 进行一键部署,点击下方按钮或前往 [项目仓库](https://github.com/imsyy/DailyHotApi-Vercel) 进行手动部署
[](https://vercel.com/new/imsyys-projects/clone?repository-url=https%3A%2F%2Fgithub.com%2Fimsyy%2FDailyHotApi-Vercel)
### Railway 部署
本项目支持使用 [Railway](https://railway.app/) 一键部署,请先将本项目 fork 到您的仓库中,即可使用一键部署。
### Zeabur 部署
本项目支持使用 [Zeabur](https://zeabur.com/) 一键部署,请先将本项目 fork 到您的仓库中,即可使用一键部署。
## ⚠️ 须知
- 本项目为了避免频繁请求官方数据,默认对数据做了缓存处理,默认为 `60` 分钟,如需更改,请自行修改配置
- 本项目部分接口使用了 **页面爬虫**,若违反对应页面的相关规则,请 **及时通知我去除该接口**
## 📢 免责声明
- 本项目提供的 `API` 仅供开发者进行技术研究和开发测试使用。使用该 `API` 获取的信息仅供参考,不代表本项目对信息的准确性、可靠性、合法性、完整性作出任何承诺或保证。本项目不对任何因使用该 `API` 获取信息而导致的任何直接或间接损失负责。本项目保留随时更改 `API` 接口地址、接口协议、接口参数及其他相关内容的权利。本项目对使用者使用 `API` 的行为不承担任何直接或间接的法律责任
- 本项目并未与相关信息提供方建立任何关联或合作关系,获取的信息均来自公开渠道,如因使用该 `API` 获取信息而产生的任何法律责任,由使用者自行承担
- 本项目对使用 `API` 获取的信息进行了最大限度的筛选和整理,但不保证信息的准确性和完整性。使用 `API` 获取信息时,请务必自行核实信息的真实性和可靠性,谨慎处理相关事项
- 本项目保留对 `API` 的随时更改、停用、限制使用等措施的权利。任何因使用本 `API` 产生的损失,本项目不负担任何赔偿和责任
## 😘 鸣谢
特此感谢为本项目提供支持与灵感的项目
- [RSSHub](https://github.com/DIYgod/RSSHub)
## ⭐ Star History
[](https://star-history.com/#imsyy/DailyHotApi&Date)
", Assign "at most 3 tags" to the expected json: {"id":"9651","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"