朋友圈
在@obaby的博客,还有@Sagrre的博客看到了,他们做的朋友圈,开始以为是什么插件或者开发的功能,后来发现是把rss订阅集成到博客的一个页面,这个页面通过定时器刷新,然后就能看到博友们的文章。
我之前在别的博友的博客见过,但是一直没搞懂,也不知道这个东西的原来,首先是看到女王大人obaby,自己魔改了一个别的代码,集成到了自己博客,我羡慕了两天,发现这个玩意我搞不了,我不会写代码。
然后在Sagrre大哥的博客看到了这篇文章,FreshRss自建Rss零基础食用指南(入门版) 顺着文章的教程,尝试了一下,然后发现这个版本非常简单了,对于我这种不会代码的人有操作的可能。
我分享下整个创建过程,详细版本的大家可以看Sagrre的内容,文章非常考究,每个细节每张图都给贴出来,闭着眼睛抄就完了。我列一下下我的创建过程,算是拾人牙慧的简化版。
创建网站
我是宝塔的面板,大家的只要是linux,操作起来应该大同小异。首先在宝塔面部创建新的网站,给网站绑定一个主博客的二级域名,同时在网站的ssl处,申请免费是https,然后强制使用https。
上传网站源码,我使用的PHP版本,还有docker版本的,我对于docker相对陌生,所以这里就只使用PHP版本的源码。源码下载地址:https://freshrss.org/。上传后解压文件到根目录。
填写网站信息
这一步我进来后,程序检测我缺少一个PHP扩展,我复制这个扩展到宝塔的软件商店下载,提示有这个东西,然后直接安装即可,整个PHP环境正常后,开始创建网站。
选择语言,简体中文。选择数据库,这里有个问题,我使用mysql一直创建失败,然后直接用sqlite了,创建成功。接着创建基本的账户信息,账户和密码。
设置网站
我们这里就基本得到了一个网站啦,大家可以根据喜好选择主题,设置这个界面。我开始进行最重要的一步,就是添加订阅RSS源头,直接输入网址,系统会自己检测。我大约添加了三十多个博友,有四五个无法添加,可能是关闭RSS,我一一去邮件和评论问了一下。
自此我们在这个网站的订阅就完成了,打开刷新一下,主页汇聚了我们日常互动的这些博友,平时我经常忘记回访,也不知道哪些博友更新,有了这个东西,上班闲余就打开列表,然后开始拜读众位博友的文章,到评论区互动了。
博客引用
这个环节最麻烦,因为我不会写代码,然后怎么引用到博客我愣是没搞懂,就到Sagrre那里求助,他给了我另一外博友的地址,就是这个,https://www.rz.sb/archives/228/ 这位微博把调用的代码和部署调用需要创建的东西都写好了,我只需要复制代码,更改一下就ok了。
整体流程是,写一个页面调用页面的文件,然后设置rss的API,调用api给的数据,输入到output.json里面,然后在宝塔创建定时器,通过定时器访问这个文件,定期引用api到output.json。具体环节我就不写了,上面两位博主的文章就非常详细,直接复制代码按照流程走就行。
前端页面
整个环节中我遇到的最大困难就是,若志奕鑫博友的主题调用代码,我贴在我的页面里面不生效,我的方法是直接创建新页面,然后在文章的html添加。结果就是啥也没有,哈哈哈,好像不行。
这个东西困惑了我三天,然后我想到了chatgpt,我和他说我要在页面添加一段代码,如何才能和我的主题不冲突,然后又展示这段代码,chatgpt直接给了我一个插件名字,叫做Code Snippets ,通过这个插件就可以创建代码片段。
我使用这个玩意,然后直接添加了,rz兄弟的原始代码,结果网站挂了,很尬这里,然后我又跑到数据库,搜索Snippets删除了我添加的数据,网站恢复了。
看来是不能直接贴代码,然后我和chatgpt说,给我优化一下这段代码,然后将代码以html的形式输出,chatgpt给我创建了一段新的代码,我贴完,果然生效了。
但是这个界面非常丑,像极了我做后端同事,直接给我做的前端页面,我说你仿照推特的页面给我重新输出,结果新代码又宕机,我又跑数据库删除添加的代码。
我让他仿照微博的界面给我输出一段,然后他给我输出了一段新的代码,就是现在我使用的这个界面。我把站点标题改成了作者,这类的调用名称改了一下,然后把超链接的位置调整了一下。
比较遗憾的是这个图标调用一直失败,我看图标输出的段落是/f.php?1483e59d这样的,但是我的网站实际输出的是多了一个目录P的,这样的p/f.php?1483e59d,这个我没搞懂,有懂的博友可以给帮忙解决一下,J君在线乞讨方法。
ChatGPT给的代码如下,大家可以直接拿去使用;
<?php
// 获取JSON数据
$jsonData = file_get_contents(‘./output.json’);
// 将JSON数据解析为PHP数组
$articles = json_decode($jsonData, true);
// 对文章按时间排序(最新的排在前面)
usort($articles, function ($a, $b) {
return strtotime($b[‘time’]) – strtotime($a[‘time’]);
});
// 设置每页显示的文章数量
$itemsPerPage = 30;
?><style>
.article {
border: 1px solid #ddd;
border-radius: 8px;
margin: 15px;
padding: 15px;
background-color: #fff;
}.article h2 {
color: #1da1f2;
margin-bottom: 5px;
}.article p {
margin: 0;
color: #333;
}.article time {
color: #999;
font-size: 0.8em;
}.icon {
width: 20px;
height: 20px;
margin-right: 5px;
}
</style><body>
<?php
// 生成文章列表
foreach (array_slice($articles, 0, $itemsPerPage) as $article) {
?>
<div class=”article”>
<h3>
<a href=”<?php echo htmlspecialchars($article[‘link’]); ?>” target=”_blank”><?php echo htmlspecialchars($article[‘title’]); ?></a>
</h3>
<p>作者:<?php echo htmlspecialchars($article[‘site_name’]); ?></p>
<p><?php echo htmlspecialchars($article[‘description’]); ?></p>
<time><?php echo htmlspecialchars($article[‘time’]); ?></time>
</div>
<?php
}
?></body>
</html>
手工操作
我的整个朋友圈创建,全程没有搓代码的环节,因为我本身也不会,主打的就是一个复制粘贴,插件和GPT给我打下手,最后成功创建了朋友圈。感谢在整个环节中贡献的各位博友,然后感谢ChatGPT,让我实现了代码项目部署上线。
发表回复