🤠添加随机文章刷新按钮,完善邮箱模板文字替换部分

This commit is contained in:
柳神 2024-10-07 23:42:28 +08:00
parent d52f9557f5
commit f2fe18f8ae
9 changed files with 2750 additions and 31 deletions

2636
all.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -32,12 +32,16 @@ email_push:
# github_username: GitHub 用户名用于构建issue api地址 # github_username: GitHub 用户名用于构建issue api地址
# github_repo: GitHub 仓库名用于构建issue api地址 # github_repo: GitHub 仓库名用于构建issue api地址
# your_blog_url: 你的博客地址 # your_blog_url: 你的博客地址
# website_info: 你的博客信息
# title: 你的博客标题,如果启用了推送,用于生成邮件主题
rss_subscribe: rss_subscribe:
enable: true enable: true
github_username: willow-god github_username: willow-god
github_repo: Friend-Circle-Lite github_repo: Friend-Circle-Lite
your_blog_url: https://blog.qyliu.top/ your_blog_url: https://blog.liushen.fun/
email_template: "./rss_subscribe/email_template.html" email_template: "./rss_subscribe/email_template.html"
website_info:
title: "清羽飞扬"
# SMTP 配置 # SMTP 配置
# 解释使用其中的相关配置实现上面两种功能若无推送要求可以不配置请将以上两个配置置为false # 解释使用其中的相关配置实现上面两种功能若无推送要求可以不配置请将以上两个配置置为false

52
errors.json Normal file
View File

@ -0,0 +1,52 @@
[
[
"满心记",
"https://blog.lovelu.top/",
"https://cdn.qyliu.top/i/2024/08/04/66af31bec75a0.webp"
],
[
"dreamChaser",
"https://blog.wenjing.xin/",
"https://cdn.qyliu.top/i/2024/03/22/65fc59b439430.png"
],
[
"听风小屋",
"https://blog.ifeng.asia/",
"https://cdn.qyliu.top/i/2024/03/31/6608e2697634c.png"
],
[
"GuKaifeng",
"https://gukaifeng.cn/",
"https://cdn.qyliu.top/i/2024/04/09/6614ef03406cc.png"
],
[
"乙未博客",
"https://www.yvii.cn",
"https://cdn.qyliu.top/i/2024/04/09/6614f05e2f75c.png"
],
[
"理随",
"https://lisui.top/",
"https://cdn.qyliu.top/i/2024/04/07/66123e6aac11c.png"
],
[
"Dreamaker",
"https://dreamakerr.cn/",
"https://cdn.qyliu.top/i/2024/06/05/66604a6f8dba9.webp"
],
[
"SerMs",
"https://blog.serms.top/",
"https://cdn.qyliu.top/i/2024/06/23/6678094c8d38d.webp"
],
[
"LinuxWin",
"https://meoblog.pages.dev/",
"https://cdn.qyliu.top/i/2024/09/18/66eabc22cf9e7.webp"
],
[
"琅環书生",
"https://www.zlog.us.kg/",
"https://cdn.qyliu.top/i/2024/09/12/66e2a0ac35fb5.webp"
]
]

View File

@ -89,10 +89,24 @@
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.random-link-button { .random-button-container {
position: absolute; position: absolute;
bottom: 20px; bottom: 20px;
right: 20px; right: 20px;
border: none;
border-radius: 20px;
cursor: pointer;
font-size: 14px;
transition: background-color 0.3s ease-in-out;
}
#refresh-random-article {
margin-right: 10px;
color: #aaaaaa;
text-decoration: none;
}
.random-link-button {
padding: 10px 20px; padding: 10px 20px;
border: none; border: none;
border-radius: 20px; border-radius: 20px;

View File

@ -65,16 +65,7 @@ function initialize_fc_lite() {
<div>更新时间:${stats.last_updated_time}</div> <div>更新时间:${stats.last_updated_time}</div>
`; `;
// 随机友链卡片 displayRandomArticle(); // 显示随机友链卡片
const randomArticle = allArticles[Math.floor(Math.random() * allArticles.length)];
randomArticleContainer.innerHTML = `
<div class="random-container">
<div class="random-container-title">随机钓鱼</div>
<div class="random-title">${randomArticle.title}</div>
<div class="random-author">作者: ${randomArticle.author}</div>
</div>
<button class="random-link-button" onclick="window.open('${randomArticle.link}', '_blank')">过去转转</button>
`;
const articles = allArticles.slice(start, start + UserConfig.page_turning_number); const articles = allArticles.slice(start, start + UserConfig.page_turning_number);
@ -123,6 +114,29 @@ function initialize_fc_lite() {
} }
} }
// 显示随机文章的逻辑
function displayRandomArticle() {
const randomArticle = allArticles[Math.floor(Math.random() * allArticles.length)];
randomArticleContainer.innerHTML = `
<div class="random-container">
<div class="random-container-title">随机钓鱼</div>
<div class="random-title">${randomArticle.title}</div>
<div class="random-author">作者: ${randomArticle.author}</div>
</div>
<div class="random-button-container">
<a href="#" id="refresh-random-article">刷新</a>
<button class="random-link-button" onclick="window.open('${randomArticle.link}', '_blank')">过去转转</button>
</div>
`;
// 为刷新按钮添加事件监听器
const refreshBtn = document.getElementById('refresh-random-article');
refreshBtn.addEventListener('click', function (event) {
event.preventDefault(); // 阻止默认的跳转行为
displayRandomArticle(); // 调用显示随机文章的逻辑
});
}
function showAuthorArticles(author, avatar, link) { function showAuthorArticles(author, avatar, link) {
// 如果不存在,则创建模态框结构 // 如果不存在,则创建模态框结构
if (!document.getElementById('fclite-modal')) { if (!document.getElementById('fclite-modal')) {
@ -207,19 +221,9 @@ function initialize_fc_lite() {
}; };
}; };
//document.addEventListener("DOMContentLoaded", function() {
// setTimeout(initialize_fc_lite, 0);
//});
//document.addEventListener('pjax:complete', function() {
// setTimeout(initialize_fc_lite, 0);
//});
//setTimeout(initialize_fc_lite, 0);
function whenDOMReady() { function whenDOMReady() {
initialize_fc_lite(); initialize_fc_lite();
} }
whenDOMReady(); whenDOMReady();
document.addEventListener("pjax:complete", whenDOMReady); document.addEventListener("pjax:complete", initialize_fc_lite);

View File

@ -11,6 +11,11 @@
## 开发进度 ## 开发进度
### 2024-10-07
* 添加随机文章刷新按钮
* 完善邮件通知模板自定义程度
### 2024-09-28 ### 2024-09-28
* 更新自部署的api地址统一为all.json提高js兼容性 * 更新自部署的api地址统一为all.json提高js兼容性
@ -21,14 +26,14 @@
* 修复 #18 提出的由于rss倒序导致限制抓取错误的问题改为先全部获取后按照时间排序再选择性获取 * 修复 #18 提出的由于rss倒序导致限制抓取错误的问题改为先全部获取后按照时间排序再选择性获取
### 2024-09-05 <details>
<summary>查看更多</summary>
<h3>2024-09-05</h3>
* 更新部署方式将静态文件放到page分支下主分支不放数据文件 * 更新部署方式将静态文件放到page分支下主分支不放数据文件
* 前后端分离,部署方式不变但更加直观方便 * 前后端分离,部署方式不变但更加直观方便
<details>
<summary>查看更多</summary>
<h3>2024-09-03</h3> <h3>2024-09-03</h3>
* 添加特定RSS选项用于指定部分友链特殊RSS地址 * 添加特定RSS选项用于指定部分友链特殊RSS地址

View File

@ -116,7 +116,7 @@
<body> <body>
<div class="container"> <div class="container">
<div class="header"> <div class="header">
<h1>清羽飞扬の最新文章</h1> <h1>{{ website_title }}の最新文章</h1>
</div> </div>
<div class="content"> <div class="content">
<p><strong>文章标题:</strong> <span class="title">{{ title }}</span></p> <p><strong>文章标题:</strong> <span class="title">{{ title }}</span></p>
@ -128,7 +128,7 @@
<p>感谢您的订阅!</p> <p>感谢您的订阅!</p>
</div> </div>
<div class="unsubscribe"> <div class="unsubscribe">
<p><a href="https://github.com/willow-god/Friend-Circle-Lite/issues">取消订阅</a></p> <p><a href="{{ github_issue_url }}">取消订阅</a></p>
</div> </div>
</div> </div>
</body> </body>

8
run.py
View File

@ -49,6 +49,8 @@ if config["rss_subscribe"]["enable"]:
github_repo = str(config["rss_subscribe"]["github_repo"]).strip() github_repo = str(config["rss_subscribe"]["github_repo"]).strip()
your_blog_url = config["rss_subscribe"]["your_blog_url"] your_blog_url = config["rss_subscribe"]["your_blog_url"]
email_template = config["rss_subscribe"]["email_template"] email_template = config["rss_subscribe"]["email_template"]
# 获取网站信息
website_title = config["rss_subscribe"]["website_info"]["title"]
# 获取最近更新的文章 # 获取最近更新的文章
latest_articles = get_latest_articles_from_link( latest_articles = get_latest_articles_from_link(
url=your_blog_url, url=your_blog_url,
@ -73,7 +75,9 @@ if config["rss_subscribe"]["enable"]:
"title": article["title"], "title": article["title"],
"summary": article["summary"], "summary": article["summary"],
"published": article["published"], "published": article["published"],
"link": article["link"] "link": article["link"],
"website_title": website_title,
"github_issue_url": f"https://github.com/{github_username}/{github_repo}/issues/new",
} }
send_emails( send_emails(
@ -82,7 +86,7 @@ if config["rss_subscribe"]["enable"]:
smtp_server=server, smtp_server=server,
port=port, port=port,
password=password, password=password,
subject="清羽飞扬の最新文章:" + article["title"], subject= website_title + "の最新文章:" + article["title"],
body="文章链接:" + article["link"] + "\n" + "文章内容:" + article["summary"] + "\n" + "发布时间:" + article["published"], body="文章链接:" + article["link"] + "\n" + "文章内容:" + article["summary"] + "\n" + "发布时间:" + article["published"],
template_path=email_template, template_path=email_template,
template_data=template_data, template_data=template_data,