概述
FriendsRSS 是一款专为 Typecho 博客系统设计的智能友链 RSS/Atom 聚合插件。它能够自动检测、解析和聚合您友链博客的最新文章,通过多种展示方式(短代码、API接口、RSS输出、前台页面)让您的博客成为友圈动态的聚合中心。
插件功能
核心功能
- 友链来源集成:从 Typecho
links
表的指定分类读取友链,自动参与聚合。兼容性增强:当指定分类不存在时,自动获取所有友链,完美兼容只有一种友链的主题博客。排除功能:支持配置排除检测的博客网址,每行一个,支持部分匹配。 - RSS 自动检测:采用"三轮检测"策略(常用路径/feed和/feed/ → HTML 解析 → 其他常见路径),并对检测结果进行 10天缓存(RSS地址相对稳定)。
- 定时检测功能:支持配置定时检测RSS地址间隔(默认240小时/10天),RSS地址缓存时间自动与定时检测间隔保持一致。
- 定时解析功能:支持配置定时解析间隔(默认6小时),提供独立的定时任务脚本,支持命令行和HTTP调用。
- 手动配置 RSS:后台提供"选择友链 + 输入 RSS 地址"的表单,保存到
rss_config.json
作为覆盖与纠偏。 - 短代码功能:在任意文章或页面中使用
rss
短代码来显示友链RSS聚合内容,支持limit
参数控制显示文章数量。 - 多格式支持:兼容 RSS 2.0 / Atom 1.0 / RSS 1.0,解析标题、链接、作者、摘要与发布时间等字段。
- 文章聚合与排序:为每个博客限制抓取数量,并按发布时间 倒序 排列,支持聚合总数上限。
- 缓存与并发保护:聚合结果持久化缓存,内置 锁文件 防止并发重复任务;可读取已有缓存以快速展示。
- 日志记录:记录检测、解析与网络状态,便于排查异常与性能问题。
输出功能
- RSS订阅地址:
/action/friends-rss?do=rss
- 生成标准RSS 2.0格式的聚合订阅源 - API接口地址:
/action/friends-rss?do=page
- 返回JSON格式的聚合文章数据 - 前台展示页面:
/action/friends-rss?do=pageview
- 美观的前台展示页面,支持响应式设计
示例图片查看
管理界面
- 统计卡片:显示友链数量、文章数量、最后更新时间、已配置RSS数量等统计信息
操作卡片:
- 定时检测RSS地址:显示当前检测间隔和下次执行时间,提供"立即执行"按钮
- 定时解析RSS内容:显示当前解析间隔和下次执行时间,提供"立即执行"按钮
- 添加RSS地址:手动配置友链RSS地址的表单界面
- 访问地址区块:显示所有可用的访问地址和友链分类信息
- 友链与文章列表:显示友链列表和最新聚合文章,支持RSS配置状态标识
- 日志显示区域:实时显示操作日志,支持自动滚动到最新内容
短代码功能
- 基本用法:在任意文章或页面中使用
rss
短代码来显示友链RSS聚合内容 - 参数支持:支持
limit
参数控制显示文章数量 - 块状设计:使用简洁美观的块状设计,包含博客信息、文章标题、摘要等
- 响应式布局:自动适配移动端设备,优化显示效果
网络与兼容性优化
- 请求优化:优先使用 cURL,请求超时与重定向受控
- 内容清理:自动清理与修复常见 XML/文本问题、摘要长度截断
- 错误处理:完善的异常处理和日志记录机制
- 并发保护:使用锁文件防止重复任务执行
- 缓存策略:智能缓存管理,支持缓存统计和清理
定时任务功能
- 独立脚本:提供
cron.php
独立定时任务脚本 - HTTP调用:支持通过HTTP请求触发定时任务
- 状态管理:记录定时任务执行状态和下次执行时间
- 安全验证:支持密钥验证防止未授权访问
Ajax功能
- 实时检测:支持SSE(Server-Sent Events)实时显示RSS检测进度
- 批量操作:支持批量检测RSS地址和清除缓存
- 进度反馈:实时显示操作进度和结果
- 错误处理:完善的错误处理和用户反馈机制
安装与配置
- 将插件文件夹上传到
usr/plugins/
目录。 - 在 Typecho 后台启用插件
FriendsRSS
。 - 在插件设置页配置友链来源、每个博客抓取文章数、聚合总数上限与缓存时间等参数。
- 网盘地址:此处内容需要评论回复后(审核通过)方可阅读。
配置参数说明
友链分类:指定需要聚合的友链分组。兼容性说明:
- Handsome主题:填写"ten"获取全站链接,填写"one"获取内页链接,填写"good"获取推荐链接
- 其他主题:通常留空即可,插件会自动获取所有友链
- 当指定分类不存在时,插件会自动获取所有友链,确保兼容性
排除检测的博客网址:每行一个网址,支持部分匹配。例如:
- example.com - 排除所有包含example.com的友链
- https://blog.example.com - 排除特定博客
- 留空表示不排除任何友链
- 每个博客文章数:每个博客抓取与展示的文章数量限制。
- 最大文章数:聚合后的文章总数上限。
- 定时解析间隔:定时解析友链RSS的间隔时间(小时),默认6小时,设置为0表示禁用。文章缓存时间会自动与定时解析间隔保持一致。
- 定时检测间隔:定时检测友链RSS地址的间隔时间(小时),默认240小时(10天),设置为0表示禁用。RSS地址缓存时间会自动与定时检测间隔保持一致。
- 启用前台展示:是否开放前台聚合页与 RSS 输出。
使用方法
- 检测 RSS:在后台点击"定时检测RSS地址"卡片中的"立即执行"按钮,自动为友链站点识别 RSS/Atom 地址并保存。
- 定时检测:在后台点击"定时检测RSS地址",按配置的间隔时间自动检测友链RSS地址。
- 手动添加:在"添加 RSS 地址"区域选择目标友链并填写正确的订阅地址后保存。
- 聚合文章:点击"定时解析RSS内容",按时间排序聚合最新文章并写入缓存。
访问输出:
- RSS订阅地址:
/action/friends-rss?do=rss
- API接口地址:
/action/friends-rss?do=page
(需在设置中启用) - 前台展示页面:
/action/friends-rss?do=pageview
(需在设置中启用)
- RSS订阅地址:
性能与稳定性
- 超时控制:为单次请求与连接设置合理超时并限制重定向次数。
- 并发保护:使用锁文件/状态标记避免重复聚合任务并减少服务器压力。
- 分轮检测:优先常用路径,其次 HTML 解析,最后其他常见路径以提升成功率与速度。
缓存策略
缓存类型 | 缓存时间 | 说明 |
---|---|---|
RSS地址缓存 | 与定时检测间隔一致 | RSS地址相对稳定,与定时检测间隔同步,减少重复检测 |
文章内容缓存 | 与定时解析间隔一致 | 确保定时解析有意义,避免缓存过期后立即重新解析 |
失败结果缓存 | 1小时 | 避免重复请求失败的RSS源,减少服务器压力 |
定时策略
配置项 | 默认值 | 说明 |
---|---|---|
定时解析间隔 | 6小时 | 定时解析友链RSS的间隔时间,设置为0表示禁用 |
文章缓存时间 | 自动同步 | 与定时解析间隔保持一致,确保定时解析有意义 |
定时检测间隔 | 240小时(10天) | 定时检测友链RSS地址的间隔时间,设置为0表示禁用 |
RSS地址缓存时间 | 自动同步 | 与定时检测间隔保持一致,减少重复检测 |
实际效果 | 缓存过期时重新执行 | 定时任务执行时缓存刚好过期,获取最新内容 |
设计思路:以"逻辑一致性"为核心,确保定时任务与缓存时间同步,提升用户体验和系统效率。
RSS短代码使用
基本用法
在任何文章或页面中使用 rss
短代码来显示友链RSS聚合内容,使用简洁的块状设计:
rss
默认显示10篇最新文章,使用块状设计。
或者
rss limit="5"
只显示5篇最新文章。
显示内容
每个文章块包含:
- 博客信息头部:博客名称、作者信息、发布时间
- 文章标题:可点击跳转到原文
- 文章摘要:自动截取的文章概要(200字符以内)
参数说明
limit
- 类型: 数字
- 默认值: 10
- 说明: 显示文章的数量
注意不要放置多个,会重复显示。
设计特点
块状设计
- 简洁美观:每篇文章独立成块,清晰区分
- 信息完整:包含博客、作者、时间、标题、摘要
- 视觉层次:合理的间距和颜色搭配
- 悬停效果:鼠标悬停时显示阴影效果
响应式设计
- 移动端优化:自动适配小屏幕设备
- 布局调整:移动端下头部信息垂直排列
- 字体缩放:移动端下适当调整字体大小
注意事项
- 缓存机制: 短代码使用缓存机制,文章更新可能有延迟
- 性能考虑: 建议在高流量站点限制显示数量(limit参数)
- 样式兼容: 短代码样式已针对常见主题优化,如有冲突可自定义CSS
- 安全性: 所有外部内容都经过HTML转义处理
错误处理与兼容性
- 超时处理:如果你的友链过多且开启了CDN,可以在CDN中设置超时时间,从默认的30s到60s或者更高。
- 网络异常与 HTTP 错误:会被记录并跳过,继续处理其他源。
- XML 内容清理:在解析前进行清理,尽量兼容 RSS 2.0、Atom 1.0 与 RSS 1.0 常见格式。
- 扩展要求:建议启用 cURL、SimpleXML 等常用扩展并确保插件对缓存目录拥有写入权限。
更新日志
日期 | 版本 | 更新类型 | 变更内容 |
---|---|---|---|
2025/8/25 | v2.1.6 | 定时检测RSS功能 | 新增定时检测RSS功能:支持配置定时检测RSS地址间隔(默认240小时/10天),RSS地址缓存时间自动与定时检测间隔保持一致。 |
2025/8/25 | v2.1.6 | 定时检测界面 | 管理界面优化:新增"定时检测RSS地址"操作卡片,显示当前检测间隔和下次执行时间。 |
2025/8/25 | v2.1.6 | 按钮简化 | 移除重复的"手动检测"按钮,只保留"立即执行"按钮,避免功能重复。 |
2025/8/25 | v2.1.6 | 缓存策略 | 缓存策略优化:RSS地址缓存时间从固定7天改为与定时检测间隔同步,提升系统一致性。 |
2025/8/25 | v2.1.6 | 短代码文档 | 新增RSS短代码使用说明,包含基本用法、参数说明、使用示例和设计特点。 |
2025/8/25 | v2.1.6 | 思路 | 以"逻辑一致性"为核心,确保定时检测与RSS地址缓存同步,提升用户体验和系统效率。 |
2025/8/25 | v2.1.5 | 友链分类兼容 | 友链分类兼容性增强:当指定分类不存在时,自动获取所有友链,完美兼容只有一种友链的主题博客。 |
2025/8/25 | v2.1.5 | 排除功能 | 新增排除功能:支持配置排除检测的博客网址,每行一个,支持部分匹配,提供更灵活的友链管理。 |
2025/8/25 | v2.1.5 | 分类统计界面 | 管理界面优化:新增"可用分类"统计卡片,在访问地址区域显示所有可用的友链分类及当前使用状态。 |
2025/8/25 | v2.1.5 | 配置界面优化 | 配置界面优化:友链分类设置项默认值改为空,添加详细的兼容性说明,帮助用户正确配置不同主题的友链。 |
2025/8/25 | v2.1.5 | 思路 | 以"最大兼容性"为核心,确保插件能在各种Typecho主题环境下正常工作,提升用户体验。 |
2025/8/25 | v2.1.4 | 日志显示修复 | 修复日志显示错误:将"用时20s"等错误显示修正为实际请求用时,使用microtime()精确计算请求耗时。 |
2025/8/25 | v2.1.4 | 日志自动滚动 | 管理界面体验优化:日志显示区域自动滚动到最新内容,无需手动滚动查看最新日志。 |
2025/8/25 | v2.1.4 | 策略文档 | 新增缓存策略和定时解析策略表格说明,更直观地展示系统设计思路。 |
2025/8/25 | v2.1.3 | 缓存策略优化 | 缓存策略优化:RSS地址缓存时间从24小时延长至7天(更符合RSS地址相对稳定的特点),文章内容缓存时间自动与定时解析间隔保持一致,移除独立的缓存时间设置项。 |
2025/8/25 | v2.1.3 | 定时解析功能 | 新增定时解析功能:支持配置定时解析间隔(默认6小时),提供独立的定时任务脚本,支持命令行和HTTP调用。 |
2025/8/25 | v2.1.3 | 配置界面简化 | 简化配置界面:移除"缓存时间"设置项,避免用户困惑,定时解析间隔设置中说明缓存时间会自动同步。 |
2025/8/25 | v2.1.3 | 思路 | 以"逻辑一致性"为核心,确保定时解析与缓存时间同步,提升用户体验和系统效率。 |
2025/8/25 | v2.1.2 | 缓存时间优化 | RSS缓存设置优化:将缓存时间单位从秒改为天,默认值从360000秒(100小时)调整为10天,更符合用户使用习惯。 |
2025/8/25 | v2.1.2 | 移除超时设置 | 移除请求超时设置项:删除未使用的timeout配置项,简化插件设置界面。 |
2025/8/25 | v2.1.2 | 界面名称优化 | 管理界面名称优化:将"检测友链RSS"改为"检测友链RSS地址","定时解析控制"改为"定时解析RSS内容","前台展示页面"改为"前台接口地址","预览页面"改为"前台展示页面"。 |
2025/8/25 | v2.1.2 | 思路 | 以"用户体验优化"为核心,简化配置项,统一命名规范,提升界面友好度。 |
2025/8/25 | v2.1.1 | 预览页面地址 | 新增预览页面地址:在访问地址区域添加 /action/friends-rss?do=pageview 预览链接。 |
2025/8/25 | v2.1.1 | 管理界面优化 | 管理界面优化:将定时解析控制块替换解析RSS功能,移除定时任务设置说明,简化操作流程。 |
2025/8/25 | v2.1.1 | 移除预览页面块 | 移除预览页面块:简化管理界面,减少冗余展示区域。 |
2025/8/25 | v2.1.1 | 错误日志显示 | 新增错误日志显示:在管理页面中显示 error.log 日志内容,便于问题排查。 |
2025/8/25 | v2.1.1 | 思路 | 以"简化操作 + 增强监控"为核心,提升管理效率和问题诊断能力。 |
2025/8/24 | v2.0.4 | UI布局优化 | 后台"添加 RSS 地址"区域 UI 调整:输入框与选择框长度比例优化(输入 65% / 选择 30%),取消选择框固定高度,移动端响应式更佳。 |
2025/8/24 | v2.0.4 | select对齐修复 | 解决 Typecho 默认 select 固定高度 28px 导致与输入框不对齐的问题。 |
2025/8/24 | v2.0.4 | 思路 | 表单布局采用 flex,优先保障主要输入区可用性与可读性,减少视觉噪点。 |
2025/8/24 | v2.0.3 | 管理面板重构 | 管理面板重构:新增统计卡片、操作卡片与访问地址区块;友链与文章列表支持状态徽标,信息呈现更直观。 |
2025/8/24 | v2.0.3 | 最后更新修复 | 修复"最后更新"在无缓存时显示 1970 的问题,改为显示"暂无"。 |
2025/8/24 | v2.0.3 | 思路 | 采用 模块化卡片布局,将"检测/解析/添加"动作解耦,提升可维护性与扩展空间。 |
2025/8/23 | v2.0.2 | 锁文件机制 | 新增聚合任务 锁文件 机制;提供缓存清理与缓存统计;聚合结果持久化读取,页面可直接消费缓存。 |
2025/8/23 | v2.0.2 | 并发解析修复 | 修复并发解析导致缓存文件被覆盖/损坏的偶发问题;修复缓存为空时解析流程可能抛错的情况。 |
2025/8/23 | v2.0.2 | 思路 | 从"实时拉取"转为 缓存优先 的数据策略,后台按需触发解析,降低对外部源的耦合与压力。 |
2025/8/23 | v2.0.1 | 三轮RSS检测 | 引入 三轮 RSS 自动检测;为检测结果设置 24 小时缓存;细化请求超时与重定向限制,并记录响应头。 |
2025/8/23 | v2.0.1 | 链接解析修复 | 修复部分站点 HTML 中相对链接解析错误;修正 Content-Type 判断大小写不一致导致的识别失败。 |
2025/8/23 | v2.0.1 | 思路 | 采用"快速路径优先 → HTML 解析 → 兜底常见路径"的分轮策略,先提升成功率与速度,再做细化校验。 |
2025/8/23 | v2.0.0 | 解析器升级 | 解析器升级:支持 RSS 2.0 / Atom 1.0 / RSS 1.0;清理与截断描述文本;新增 rss_config.json 用于手动配置;按发布时间倒序聚合并限制总量。 |
2025/8/23 | v2.0.0 | XML解析修复 | 修复特殊字符、BOM 与控制字符导致 XML 解析失败的问题;增强 HTML 实体修复。 |
2025/8/23 | v2.0.0 | 思路 | 以"可靠解析"为核心:先清理再解析,最大化容错;将必要的清洗逻辑前置,保证数据质量。 |
2025/8/23 | v1.5.0 | RSS输出功能 | 提供聚合 RSS 输出 与可选 前台展示页面;后台展示最近文章与来源信息。 |
2025/8/23 | v1.5.0 | 时间排序修复 | 修复文章缺失时间时排序不稳定,统一回退到当前时间。 |
2025/8/23 | v1.5.0 | 思路 | 以 /action/friends-rss 为统一入口,降低主题/路由差异带来的接入成本。 |
2025/8/23 | v1.4.0 | 多源聚合功能 | 支持多源聚合与发布时间排序;可配置"每博客文章数"与"聚合总数"。 |
2025/8/23 | v1.4.0 | 内存优化 | 优化大列表处理的内存开销,改为先按需切片再渲染。 |
2025/8/23 | v1.4.0 | 思路 | 将"数量限制"前移到聚合阶段,减少后续处理成本。 |
2025/8/23 | v1.3.0 | 摘要截断功能 | 自动 截断摘要,保证列表简洁可读。 |
2025/8/23 | v1.3.0 | HTML清理修复 | 修复未清理 HTML 标签导致的样式外溢问题。 |
2025/8/23 | v1.3.0 | 思路 | 以摘要优先,保证信息密度与浏览效率。 |
2025/8/23 | v1.2.0 | 手动添加RSS功能 | 后台新增"手动添加 RSS"能力,为自动检测失败站点提供纠偏。 |
2025/8/23 | v1.2.0 | JSON读写修复 | 修复首次保存配置时空文件读取异常,增强 json 读写容错。 |
2025/8/23 | v1.2.0 | 思路 | 自动检测与 人工纠偏 并行,提高覆盖率与准确度。 |
2025/8/23 | v1.1.0 | 性能参数配置 | 增加缓存时间、重定向上限与超时等基础性能参数配置。 |
2025/8/23 | v1.1.0 | 超时设置修复 | 修复部分环境下超时设置不生效的问题。 |
2025/8/23 | v1.1.0 | 思路 | 坚持"可控超时"原则,保证失败快速返回与系统整体可用性。 |
2025/8/23 | v1.0.0 | 初始版本 | 初始版本:多源 RSS/Atom 聚合、后台基础管理与展示。 |
2025/8/23 | v1.0.0 | Bug | 无 |
2025/8/23 | v1.0.0 | 思路 | 提供最小可用集合,优先打通"来源 → 解析 → 聚合 → 展示"的闭环。 |
10 条评论
可以可以,但是使用links表是否有点太绝对了,rss地址探测有支持非伪静态地址嘛?
rss地址探测只支持加了友链的。探测除了最常见的那两个和页面解析,还有这些:

大佬牛皮,先收藏了
嘿嘿
牛啊牛啊,这样子方便不少了
确实,可以试一下
这个不错,之前搞个RSS订阅页面费老鼻子劲了,大佬咋早不发出来,话说这可以自定义订阅源吗还是说只能读取友链页的
可以手动添加,只要符合rss格式就行
牛啊牛,现在很多博客都搞订阅,挺好的,可以第一时间获取好友的最新文章。
紧跟潮流