Skip to content

GuZhengSVT/GuZhengSVT-planet

 
 

Repository files navigation

xdu-planet

一个简单的RSS博客聚合站

使用Golang+Vue3+ElementPlus构建,借助GitHub Action实现自动更新Feed数据并生成页面,最终页面构建于html分支下,并由GitHub Pages呈现。

Build

Linux

按照下面的脚本,先构建前端,再构建后端。最终的产物就是xdu-planet

运行之前先安装nodejs, npm, pnpm, golang>=1.19并配置好网络环境/镜像源。

git clone https://github.com/xdlinux/planet.git && cd planet
(cd frontend && pnpm i && pnpm run build)
go mod tidy && go build

Windows

首先安装golangpnpm。前者下个安装包就行,后者需要先安装npm,随后:

npm install -g pnpm

然后开始构建:

cd frontend
pnpm install
pnpm run build
cd ..
go build

最终得到xdu-planet.exe

API 文档

  • GET /api/v1/feed 获取所有文章
  • GET /api/v1/comment/:article_id 获取某篇文章的评论
  • GET /api/v1/comment/reply_to/:comment_id 获取某个评论的回复
  • POST /api/v1/comment/:article_id 发表评论
    • content 评论内容
    • user_id 用户ID
    • reply_to 回复的评论ID(可选,仅当回复评论时传值)
  • DELETE /api/v1/comment/:comment_id 举报评论
    • 举报后,评论自动转为audit状态,管理员可在后台审核
  • GET /api/v1/admin/comment/:filter 获取评论列表
    • filter 可选,可选值为okblockdeleteaudit,分别表示已通过、已屏蔽、已删除、待审核
  • POST /api/v1/admin/comment/audit/:comment_id 审核评论
    • status 审核状态,可选值为okblock,分别表示通过、屏蔽

用法

初次运行会产生一个空的配置文件config.yml,需要手动填写。配置文件格式如下:

version: 1
feeds:
  - "https://xeonds.github.io/atom"

然后直接运行xdu-planet即可。打开浏览器访问http://localhost:8192即可看到聚合站。

进程会每隔15分钟更新一次Feed源,更新后的数据会存储在db/目录下。

License

MIT License

Releases

No releases published

Packages

No packages published

Languages

  • Go 41.5%
  • Vue 38.7%
  • TypeScript 13.2%
  • Shell 4.7%
  • HTML 1.2%
  • Makefile 0.6%
  • CSS 0.1%