🤠添加随机文章刷新按钮,完善邮箱模板文字替换部分
This commit is contained in:
		@@ -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
									
								
							
							
						
						
									
										52
									
								
								errors.json
									
									
									
									
									
										Normal 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"
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -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;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								readme.md
									
									
									
									
									
								
							@@ -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地址
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								run.py
									
									
									
									
									
								
							@@ -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,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user