|
|
镜像是我制作的,欢迎关注我B站账号 秦曱凧 (读作 qín yuē zhēng)
后面有新的项目,会在B站先发,欢迎关注。
项目介绍
这是一个个人自用的 API。通过请求不同路径返回不同的信息,包括农历信息,随机一言,随机诗词。
所有请求都是 GET 请求,默认返回 JSON 数据。
这个项目是我用在安卓小部件自定义软件 KWGT 上的。所以所有返回内容的属性名称除了中文之外还有一个拼音缩写的名称。
项目仓库
- GitHub 仓库 https://github.com/Firfr/jin_ri
- Gitee 仓库 https://gitee.com/firfe/jin_ri
这个项目没有提供公共接口(没钱买云服务器),需要自行部署。
欢迎关注我B站账号 秦曱凧 (读作 qín yuē zhēng)
有需要帮忙部署这个项目的朋友,一杯奶茶,即可程远程帮你部署,需要可联系。
微信号 E-0_0-
闲鱼搜索用户 明月人间
或者邮箱 firfe163@163.com
如果这个项目有帮到你。欢迎 start。
目录
使用到的项目
- 农历相关使用的是 Lunisolar
- 专业的 Javascript 农历库
- 官网 https://lunisolar.js.org
- GitHub https://github.com/waterbeside/lunisolar
- 一言句子库来自一言官方
- 官网 https://hitokoto.cn
- GitHub https://github.com/hitokoto-osc/sentences-bundle
- 诗词来源 chinese-poetry/chinese-poetry
- 最全中华古诗词数据库, 唐宋两朝近一万四千古诗人, 接近 5.5 万首唐诗加 26 万宋诗. 两宋时期 1564 位词人,21050 首词。
- 官网 https://github.com/chinese-poetry/chinese-poetry
- GitHub https://awesome-poetry.top
- 诗词只使用了其中的
元曲.json、唐诗三百首.json、宋词三百首.json、曹操.json、水墨唐诗.json、纳兰性德诗集.json、诗经.json并进行了格式化。
使用到的模块
- 服务端 Express
- 跨域相关 cors
- 调试运行 nodemon
- 农历库 Lunisolar 为了减小体积用的是单文件,不是 npm 包。
项目配置
- 端口
- 默认端口:1234,可以通过环境变量
PORT修改。
- 跨域
- 跨域策略,通过环境变量
CORS的值进行设置。默认是 0
- -1 不允许跨域
- 0 仅允许跨域列表中的域名跨域访问
- 1 允许所有网站跨域访问
- 允许跨域访问的域名列表设置
- 如果跨域列表不会配置,直接设置环境变量
CORS=1允许全部跨域访问,或者设置环境变量CORS=-1不允许跨域访问
- 认证
接口说明
所有请求都是 GET 请求,查询字符串token是必须的。
jin_ri
-
请求路径
/jin_ri/?token=令牌
令牌的具体内容就是用户认证文件中的令牌
-
返回示例
{
"公历": {
"年": 2025,
"月": 10,
"日": 21
},
"gl": {
"n": 2025,
"y": 10,
"r": 21
},
"星期": 2,
"星期大写": "二",
"xq": 2,
"xqdx": "二",
"日期": "2025-10-21",
"时间": "15:53:58.823",
"rq": "2025-10-21",
"sj": "15:53:58.823",
"农历": {
"年": "二〇二五年",
"月": "九月(大)",
"日": "初一",
"时": "申時"
},
"nl": {
"n": "二〇二五年",
"y": "九月(大)",
"r": "初一",
"s": "申時"
},
"季节": "秋",
"jj": "秋",
"天干地支": {
"年": "乙巳",
"月": "丙戌",
"日": "癸亥",
"时": "庚申"
},
"tgdz": {
"n": "乙巳",
"y": "丙戌",
"r": "癸亥",
"s": "庚申"
},
"节气": "无",
"jq": "无",
"节气前": {
"节气": "寒露",
"节气日期": "2025-10-8",
"过去天数": 13
},
"jqq": {
"jq": "寒露",
"rq": "2025-10-8",
"ts": 13
},
"节气后": {
"节气": "霜降",
"节气日期": "2025-10-23",
"距离天数": 2
},
"jqh": {
"jq": "霜降",
"rq": "2025-10-23",
"ts": 2
},
"宜5": "整手足甲,整容,剃頭",
"忌5": "修置產室,選將訓兵,嫁娶,安撫邊境,出師",
"宜": "整容,剃頭,整手足甲",
"忌": "安撫邊境,選將訓兵,出師,嫁娶,修置產室",
"y5": "整手足甲,剃頭,整容",
"j5": "修置產室,選將訓兵,安撫邊境,嫁娶,出師",
"y": "整容,剃頭,整手足甲",
"j": "安撫邊境,選將訓兵,出師,嫁娶,修置產室"
}
宜5和忌5是从宜和忌中随机抽取 5 个。
yi_yan
-
请求路径
/yi_yan/?token=令牌
令牌的具体内容就是用户认证文件中的令牌
-
其他查询字符串
- 查询字符串除了
token外,其他参数都是可选的,可以不填。
t 句子类型,默认随机,具体值参考项目 句子类型
n 句子的最小长度,默认 1,句子库中最短句子是 2 字
x 句子的最大长度,默认 30,句子库中最长句子是 130 字
c 返回格式,默认 JSON,1 是纯文本,纯文本只返回句子本身
-
请求示例
- 默认
/yi_yan/?token=令牌
- 指定类型
/yi_yan/?token=令牌&t=c
- 指定最小长度
/yi_yan/?token=令牌&n=5
- 指定最大长度
/yi_yan/?token=令牌&x=5
- 指定返回类型
/yi_yan/?token=令牌&c=1
-
返回示例
- JSON
{
"类型": "其他",
"内容": "握不住的沙,不如扬了它。",
"出处": "其他",
"作者": "未知",
"长度": 12,
"lx": "其他",
"nr": "握不住的沙,不如扬了它。",
"cc": "其他",
"zz": "未知",
"cd": 12
}
- 纯文本
唯有门前镜湖水,春风不改旧时波。
-
关于句子的出处和作者
- 如果句子是某个作品中的虚拟人物,出处是该作品,作者为该作品中的虚拟人物。
句子类型
| 参数 |
说明 |
| a |
动画 |
| b |
漫画 |
| c |
游戏 |
| d |
文学 |
| e |
原创 |
| f |
来自网络 |
| g |
其他 |
| h |
影视 |
| i |
诗词 |
| j |
**云 |
| k |
哲学 |
| l |
抖机灵 |
| 其他 |
随机 |
shi_ci
-
请求路径
/shi_ci/?token=令牌
令牌的具体内容就是用户认证文件中的令牌
-
其他查询字符串
- 查询字符串除了
token外,只有一个t,可以不填。
t 诗词类型,默认随机。
| 参数 |
说明 |
| c |
曹操 |
| n |
纳兰性德诗集 |
| sj |
诗经 |
| sm |
水墨唐诗 |
| sc |
宋词三百首 |
| t |
唐诗三百首 |
| y |
元曲 |
-
返回示例
{
"诗词类型": "唐诗三百首",
"作者": "李商隱",
"朝代": "唐",
"标题": "隋宮",
"内容": [
"紫泉宮殿鎖煙霞,欲取蕪城作帝家。",
"玉璽不緣歸日角,錦帆應是到天涯。",
"于今腐草無螢火,終古垂楊有暮鴉。",
"地下若逢陳後主,豈宜重問後庭花。"
],
"内容文本": "紫泉宮殿鎖煙霞,欲取蕪城作帝家。\n玉璽不緣歸日角,錦帆應是到天涯。\n于今腐草無螢火,終古垂楊有暮鴉。\n地下若逢陳後主,豈宜重問後庭 花。",
"nrwb": "紫泉宮殿鎖煙霞,欲取蕪城作帝家。\n玉璽不緣歸日角,錦帆應是到天涯。\n于今腐草無螢火,終古垂楊有暮鴉。\n地下若逢陳後主,豈宜重問後庭花。 ",
"zz": "李商隱",
"cd": "唐",
"bt": "隋宮",
"nr": [
"紫泉宮殿鎖煙霞,欲取蕪城作帝家。",
"玉璽不緣歸日角,錦帆應是到天涯。",
"于今腐草無螢火,終古垂楊有暮鴉。",
"地下若逢陳後主,豈宜重問後庭花。"
]
}
所有属性中只有诗词类型、标题、bt``内容、nr、内容文本、nrwb是固定有的,其他属性不固定,可能没有。
本地运行
- 本地有 node 环境,node 版本 20 以上
- 下载项目
- 进入项目目录
- 安装依赖
npm i
- 配置用户认证和跨域列表
- 运行
npm run start
Docker 运行
镜像
从阿里云或华为云镜像仓库拉取镜像,注意填写镜像标签,镜像仓库中没有latest标签
容器内部端口1234,可通过设置环境变量PORT的值来指定监听端口。使用环境变量CORS设置跨域策略。
- 国内仓库
- DockerHub 仓库
- AMD64 镜像
firfe/jin_ri:1.0
- ARM64 镜像
firfe/jin_ri:1.0-arm64
docker run 命令部署
docker run -d \
--name jin_ri \
--network bridge \
--restart always \
--log-opt max-size=1m \
--log-opt max-file=1 \
-p 1234:1234 \
-v ./data:/app/代码/配置 \
firfe/jin_ri:1.0
compose 文件部署 👍 推荐
name: jin_ri
services:
jin_ri:
container_name: jin_ri
image: swr.cn-north-4.myhuaweicloud.com/firfe/jin_ri:1.0
network_mode: bridge
restart: always
logging:
options:
max-size: 1m
max-file: "1"
#environment:
# 自定义端口
#PORT: 1234
# 跨域策略
# -1 不允许跨域,0 指定跨域列表,1 允许所有跨域
#CORS: 0
ports:
- 1234:1234
volumes:
- ./data:/app/代码/配置
效果示例
API 接口在安卓手机上使用 KWGT 建立小部件的示例。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|