Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chengzhongxue/plugin-friends
提供对 RSS 链接的订阅功能,支持获取其订阅内容
https://github.com/chengzhongxue/plugin-friends
Last synced: 6 days ago
JSON representation
提供对 RSS 链接的订阅功能,支持获取其订阅内容
- Host: GitHub
- URL: https://github.com/chengzhongxue/plugin-friends
- Owner: chengzhongxue
- License: gpl-3.0
- Created: 2024-01-06T08:22:25.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-08-21T04:51:20.000Z (3 months ago)
- Last Synced: 2024-08-21T05:53:08.476Z (3 months ago)
- Language: Java
- Homepage:
- Size: 459 KB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-halo - plugin-friends - 为 Halo 2.0 提供对 RSS 链接的订阅功能,支持获取其订阅内容。 (Halo 2.0 / 插件)
README
# plugin-friends
* 朋友圈管理插件, 支持在 Console 进行管理以及为主题端提供 `/friends`, `/blogs`, `/blog`, `/blog-requests/add`, `/blog-requests` 页面路由。
* 提供对 RSS 链接的订阅功能,支持获取其订阅内容前台页面移植自[boyouquan](https://github.com/olzhy/boyouquan)
![Snipaste_2024-01-25_17-49-48.png](https://api.minio.yyds.pink/lsky/img/2024/01/65b231e550064.png)
![Snipaste_2024-01-25_17-50-14.png](https://api.minio.yyds.pink/lsky/img/2024/01/65b231e5d1752.png)
![Snipaste_2024-01-25_17-50-33.png](https://api.minio.yyds.pink/lsky/img/2024/01/65b231e7ed5e2.png)
![Snipaste_2024-01-25_17-50-39.png](https://api.minio.yyds.pink/lsky/img/2024/01/65b231e82bf76.png)
![Snipaste_2024-01-25_17-50-47.png](https://api.minio.yyds.pink/lsky/img/2024/01/65b231e7871c7.png)
## 使用方式
* 在应用市场下载并启用。
* 启用插件之后会在 Console 的左侧添加一个`朋友圈`的菜单项,点击即可进入`朋友圈`管理页面。## 特性
* 内置模板,无需主题支持,但也可以通过主题自定义模板。## 📃文档
https://docs.kunkunyu.com/docs/plugin-friends## 主题适配
目前此插件为主题端提供了 `/friends` 路由,模板为 `friends.html`,也提供了 Finder API,可以将瞬间列表渲染到任何地方。## 模板变量
路由信息
* 模板路径:/templates/friends.html
* 访问路径:/friends### 变量
* friends
* statistical### 变量类型
* UrlContextListResult<[FriendPostVo](#FriendPostVo)>
* [StatisticalVo](#StatisticalVo)#### 示例
```bash
```## Finder API
### listAll()
#### 描述
获取全部订阅文章内容。#### 参数
无#### 返回值
List<[FriendPostVo](#FriendPostVo)>#### 示例
```bash
```### list(page, size)
#### 描述
根据分页参数获取订阅文章内容。#### 参数
* page: int - 分页页码,从 1 开始
* size: int - 分页条数#### 返回值
[ListResult](#ListResult)#### 示例
```bash
```
### statistical()
#### 描述
订阅统计#### 参数
无#### 返回值
[StatisticalVo](#StatisticalVo)#### 示例
```bash
```
## 类型定义
### FriendPostVo
```bash
{
"metadata": {
"name": "string", // 唯一标识
"generateName": "string",
"version": 0,
"creationTimestamp": "2024-01-16T16:13:17.925131783Z", // 创建时间
},
"apiVersion": "friend.moony.la/v1alpha1",
"kind": "FriendPost",
"spec": {
"url": "string", // 作者链接
"author": "string", // 作者名称
"logo": "string", // 作者logo
"title": "string", // 标题
"link": "string", // 链接
"description": "string", // 内容
"pubDate": "date", // 同步时间
}
}
```
### StatisticalVo
```bash
{
"friendsNum": "Integer", // 订阅数
"activeNum": "Integer", // 同步订阅成功数
"articleNum": "Integer", // 文章数
}
```
### ListResult
```bash
{
"page": 0, // 当前页码
"size": 0, // 每页条数
"total": 0, // 总条数
"items": "List<#FriendPostVo>", // 订阅文章列表数据
"first": true, // 是否为第一页
"last": true, // 是否为最后一页
"hasNext": true, // 是否有下一页
"hasPrevious": true, // 是否有上一页
"totalPages": 0 // 总页数
}
```
### UrlContextListResult
```bash
{
"page": 0, // 当前页码
"size": 0, // 每页条数
"total": 0, // 总条数
"items": "List<#FriendPostVo>", // 订阅文章列表数据
"first": true, // 是否为第一页
"last": true, // 是否为最后一页
"hasNext": true, // 是否有下一页
"hasPrevious": true, // 是否有上一页
"totalPages": 0, // 总页数
"prevUrl": "string", // 上一页链接
"nextUrl": "string" // 下一页链接
}
```
## 开发环境
```bash
git clone [email protected]:chengzhongxue/plugin-friends.git
# 或者当你 fork 之后
git clone [email protected]:{your_github_id}/plugin-friends.git
```
```bash
cd path/to/plugin-friends
```
```bash
# macOS / Linux
./gradlew pnpmInstall
# Windows
./gradlew.bat pnpmInstall
```
```bash
# macOS / Linux
./gradlew haloServer
# Windows
./gradlew.bat haloServer
```
```bash
# macOS / Linux
./gradlew build
# Windows
./gradlew.bat build
```
修改 Halo 配置文件:
```yaml
halo:
plugin:
runtime-mode: development
classes-directories:
- "build/classes"
- "build/resources"
lib-directories:
- "libs"
fixedPluginPath:
- "/path/to/plugin-friends"
```