@xaoxuu 友链仓库的部分拓展版,部分改动如下:
- 友链数据
data.json与友链文章posts.json分开存放(无法使用stellar新版友链UI) - 增加邮件订阅功能
- 邮件推送本站点更新文章至订阅邮箱
Fork我的仓库后,你只需要配置 .github/workflows/ 下的几个工作流即可。
数据迁移工作流,若你想从之前的友链仓库升级为此版本,只需要运行一次即可
抓取每个 issue 中第一个 json 数据块,合并为一个 data.json 文件。主要配置项如下
# 检查完毕后重新生成一下JSON
- name: Generate data.json
uses: xaoxuu/issues2json@main
with:
data_version: 'v2'
data_path: '/v2/data.json'
sort: 'created-desc' # 'created-desc'/'created-asc'/'updated-desc'/'updated-asc'
exclude_issue_with_labels: '审核中, 无法访问, 缺少互动, 缺少文章, 风险网站' # 具有哪些标签的issue不生成到JSON中
hide_labels: 'subscribe' # 这些标签不显示在前端页面data_version为生成数据中 version 字段的内容,保持默认即可。data_path为生成的 json 数据存放路径。sort为 json 数据的排序方式。exclude_issue_with_labels为排除的 label,带有这些 label 的 issue 不会添加到最终 json 文件中。hide_labels为前端移除标签,带有这些 label 的 issue 会添加到最终的 json,但是不会带有 label 数据。
json 数据格式如下
{
"version": "v2",
"content": [
{
"title": "",
"url": "",
"description": "",
"icon": "",
"snapshot": "",
"feed": "",
"issue_number": ,
"labels": []
}
]
}检查 issue 中是否包含邮箱信息,如果包含,则为该 issue 打上 subscribe 标签,并输出总订阅邮箱 subscribe.json
- uses: weekdaycare/Issue-email-checker@main
with:
issue_state: open # closed
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}issue_state默认检测状态为open的 issue。
json 数据格式如下
{
"emails": [
"xiabee@duck.com"
]
}定时抓取本站的 rss 数据,存放于 last_articles.json 中。当存在新文章时,将发邮件告知 subscribe.json 中的邮箱。
- name: Send Blog Update Email
uses: weekdaycare/email-pusher@main
with:
rss_url: "https://weekdaycare.cn/atom.xml"
smtp_server: "smtp.feishu.cn"
smtp_port: 587
sender_email: "comment@weekdaycare.cn"
smtp_use_tls: "true"
# email_template_url: ""
subscribe_json_url: "https://raw.githubusercontent.com/weekdaycare/Friends-issue/output/v2/subscribe.json"
website_title: "星日语"
website_icon: "https://weekdaycare.cn/asset/avatar.svg"
smtp_password: ${{ secrets.SMTP_PASSWORD }}rss_url本站 rss 链接smtp_serversmtp 服务器地址smtp_portsmtp 端口sender_emailsmtp 账号smtp_passwordsmtp 密码,请在 secrets 中新建SMTP_PASSWORD并填入密码。smtp_use_tlssmtp 是否使用 tlsemail_template_url邮件模板链接subscribe_json_urlsubscribe 链接website_title站点名称website_icon站点图标
json 数据格式
{
"articles": [
{
"title": "",
"link": "",
"published": "",
"summary": ""
},
],
"fail_count": 0
}fail_count 为防错机制,避免偶然导致的空数据覆盖。
抓取友链 rss 链接并解析文章生成 posts.json 数据。
- name: Run Feed Post Parser
uses: weekdaycare/feed-posts-parser@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
data_path: '/v2/posts.json'
posts_count: 3
date_format: 'YYYY-MM-DD HH:mm'data_path文件路径posts_count每个 rss 链接抓取文章数量date_format生成数据中的日期格式
生成数据格式与 hexo-circle-of-friends 数据格式一致。
基于github issue托管的友链管理工具。本项目已重构
本项目引用其他项目如下:
- xaoxuu/issues2json
- xaoxuu/links-checker
- weekdaycare/feed-posts-parser
- weekdaycare/Issue-email-checker
- weekdaycare/email-pusher
- 抓取友链文章并降序输出为
json文件 - 对订阅邮箱进行文章更新推送
- 友链文章更新日/周/月报