本篇是对 2025-10-06 到  2025-10-12 这一周生活部分事件的记录。

快速总结💭

  • 吃了一家云南菜-云海肴,味道还行,不至于到踩雷的地步。最好吃的菜是爆炒赤松榕黑牛肝菌,比较香
  • 开了历史最长的一次组会,大概 6h 吧,感觉什么都没讲,痛苦折磨
  • 这周玩手机时间有点超标了,玩到觉得无聊,备考雅思还没开始
  • 下周会很忙碌,这周过于清闲

资源

  • 《how to make work not suck》有人推荐的初入职场可以看的书
  • Sora,抢到了注册码试了一下,感觉还挺智障的,可以无中生万物

打卡💪

  • 英语话题*3,本来是想打卡七天的口语,中间断了一次,就一直提不起劲,人的惰性啊
  • 骑行等有了码表再记录

本篇是对 2025-09-29 到  2025-10-05 这一周生活部分事件的记录。

快速总结💭

  • 放假前总是难熬的,课很多,时间很漫长。转眼已经第四周了,打算找一些事情来充实一下水课的时间。
  • 放假第一天,在家清理东西,和朋友聊天,约见面时间。
  • 大中午去逛公园,本来以为毫无收获,但是意外发现了一个好地方,有很大一片果树,还有闻起来很香甜的花,在那里坐了会,近距离看小鸟干饭。
  • 和发小天天黏在一起打游戏。我们是难姐难妹,痛苦的时刻一起抱头痛哭,一起想象我们未来的生活,多一个人总会多点希望吧。
  • 在家的精力总是很低,什么事情都没干就感到疲惫… 和我妈最好的相处方式就是保持距离吧。
  • 在小红书记录观鸟和生活碎片。发现还是评论带来的流量高,帖子里评论聊起来浏览量就不会低…

资源

  • soundiiz 用于迁移歌单,从 spotify 赚到了 YouTube
  • 两本鸟类相关的书,封皮都是蓝色的《鸟类的天赋》、《鸟类的行为》

我妈用电饼档烤板栗
962248b63928fd09a909a82d45f81aa1.jpg|320

貌美灰灰,舌头好长
e03678b7a4339f668f8f23c511818f02.jpg|320

超级给面子的白颊,近距离看它们吃果子理毛
833d6b6bd41d0a6b923a9e26819af11d.jpg|320
659d7e3a843cfd437a6804f6ab2f6845.jpg|320

本篇是对 2025-09-22 到  2025-09-28 这一周生活部分事件的记录。

快速总结💭

  • 这周遇到不少在外面饭店抽烟的烟人… 很影响吃饭体验。
  • 周二还是周三做了一个梦,梦到了我奶奶在医院里…
  • 自行车被人移动还总是被动了变速档位,过了几天就开始响,去车行修的时候发现是螺丝松了,好想自己学会修车。目前遇到的都是螺丝的问题,就是不知道怎么调算调好。
  • 宿舍里面潮湿的难受,怎么睡都不舒服,每天醒来都会鼻塞,现在已经确定感冒了。鼻塞好难受…
  • 数模完赛,已满足!
  • 周末两天也好好利用了。去了东湖,还尝试了新鸟点,收获不多(可能是因为去的时间不够早),但运动量拉满。

数模流水账

这次比赛一共五道题,其中 B 题单独一个文件。理论上在拿到题目的解压码时候,第一件要做的事情就是先把所有的题目都过一篇,再从这些题目中挑选一个题目来作为自己的题目。但是我们实际上都没下载 B 题,略过了。A 题好像是计算机方向熟悉一点的,CD 里面有一题是计算机视觉相关,数据是二位图片,E 题的数据最简单,是采样的轴承振动数据。F 题非常开放,背景主要是苏州园林之类的,要求对一些概念(趣味性)建模… 最后我们选了数据看上去最简单的 E。

这次比赛并没有清晰的分工,队友们认为没必要分,然后提出了一个理想的模式:谁有空就谁干活。比如第一个人做问题一,做完把结果给第二问的人,然后去写第一问的论文。但现实是我们前两天完全是各做各的。

第一天我有些思路,上午就把第一题大概做了一下。然后后面队友一开始重新做任务一,下午弄了一个数据丰富的版本。我一直想做后面的问题三,因为认为这个是重点内容,所有一直赶进度,晚上把问题二做了一个版本。队友二晚上也做了第二问,但是基于队友一的数据。为了看到迁移后是什么情况,我当晚开始把第二问的模型用在了第三问,但是效果非常差。

第二天早上队友一开始做可视化,把能跑出来的图都跑了一遍。我和队友二现在还在思考第二问,我这个时候其实有点茫然了,还用不筛选的数据又跑了一下任务二,但似乎和她们得到的数据不太一样。中午的时候我还是感觉不对劲,因为第一问明确说了要对数据筛选,但是队友的数据并没有做这个。下午队友一开始更新数据字段,问题一的数据更新了。我和队友二互通第二问,这次用了筛选的数据,我得到了第二问训练好的模型和训练集数据。晚上我就开始用队友给的几个模型跑了一下第三问,此时只是初步比对了几个模型的结果。

第三天凌晨队友一通宵赶论文进度,并且又对特征进行了筛选,并告诉我应该用筛选后的来做。我醒来跟她反馈我需要第二问训练了的模型的数据才行。队友二说她把保存文件的代码删掉了,于是我只能用未筛选字段的版本来做问题三和四。上午我整合了问题三的代码,跑了一下任务四,得到了一些图表。下午队友一把问题一和一些处理写完,队友二在补问题二。晚上又开始分工,因为还有问题四,队友二接了问题四的论文部分。

第四天上午我在补问题三,大概写到下午才写完这部分。队友二在同步补问题四。晚上我和队友一开始补其它部分,包括参考路线和图表。队友二通宵写问题四并且改了一些格式,并遗留了一些问题,我早上醒来继续改格式,改到十点多,一直到提交。实际上我根本没有脑子通读全文了。队长挺狠的,熬了大通宵,我早上六点醒还看到她还在,于是就对接上了。

很混乱的赛况,但队友都挺靠谱,终于结束了。

资源

  • 经济指标网站 会实时更新很多指标。

  • 鸟类迁徙相关网站 感觉更适合在国外的鸟友,下面是网站的简介。
    鸟类迁徙探险家通过一系列采用最新、最佳的迁徙和保护科学构建的交互式地图捕捉鸟类的乐趣和迁徙的奇妙。

    通过这个独特的数字平台,鸟类迁徙探索器的参观者可以了解 458 种候鸟的全年周期,这些候鸟定期在美国和加拿大繁殖,并在一年中的其他时间迁徙到拉丁美洲和加勒比地区。

    您可以使用物种迁徙地图仔细观察您最喜欢的鸟类完成其年度迁徙的过程,在位置地图上发现哪些候鸟使用给定的位置以及它们如何将其与西半球的其他地方连接起来,并使用保护挑战地图了解候鸟在一年中面临的许多挑战。

    候鸟每年以令人惊叹的迁徙之旅,激励并吸引着西半球无数的人们。通过了解更多关于候鸟的信息,我们可以更好地保护它们以及它们全年所需的栖息地。“鸟类迁徙探索器”将世界上的自然现象之一,直接呈现在您的屏幕上,供数百种候鸟观赏。

  • 之前一直在用观鸟记录中心的小程序,今天搜了一下 PC 端。体验了一下查看或者修改自己的数据挺卡的,不如小程序。

打卡💪

骑行 11.3k, 集中在周末两天里面,出去玩还是很有运动量的。

本篇是对 2025-09-15 到  2025-09-21 这一周生活部分事件的记录。

快速总结💭

  • 雅思能看 6.5 的话学校报销,心动了,打算到时候和室友一起考
  • 一夜之间降温十多度,原来已经到秋天了
  • 每周开会必拖拉,加上我偶尔工作上头不去吃饭,想要买一些能垫肚子的零食
  • 真的没想到打个疫苗这么费劲,拖拖拉拉到现在也没弄,不知道哪里有相同厂家的疫苗,等下周忙完再说吧
  • 学校的体检竟然给我身高测出来 169,哈哈哈哈
  • 数模赛前抱佛脚中

资源

打卡💪

  • 骑行 25.5km
  • 已然忘记英语打卡

本篇是对 2025-09-08 到  2025-09-14 这一周生活部分事件的记录。

快速总结💭

  • 终于在 zotero 试用了坚果云的同步,嗯,免费的很香
  • 保持上四休三的工作效率,在周四前在组里干活,看了这篇文章受启发,于是重构了我的代码结构,用上了工具
  • 探索了游泳馆,水挺好玩的
  • 骑车被学校的门禁暗算,夹的我痛了一天

关于游泳一事

也是一时兴起,先是买好装备,问了学校报班的价格,然后在 xhs 上捞到一个搭子,是一个话很密(褒义)的广西人。说到这里,之前挺喜欢一个广西 up, 视频内容基本上是讲述生活里面的事情与自己的思考,但是她的表达就很流畅,让我听得很开心,现在对广西人的影响就是:很会讲故事,很会吃!

转回正题。我基本上没怎么接触水,小时候在泳池玩过,家里人想让我爸教我游,但什么也没学,反而提前感受到溺水的滋味… 后来我就再也没接触过水,可以说这是我很多年后第一次去泳池。说不担心的是不可能,在等装备到的间隙,我偶尔会刷 xhs 帖子看看有哪些需要注意的。这次去我带了不少东西,包括:泳衣、泳帽、泳镜、速干毛巾、拖鞋、吹风机、水杯、校园卡。但就我个人而言:水杯完全不需要带,拖鞋也有点麻烦,最好能直接穿一双游泳用的,这样出水换的时候更方便。

刚进去有点不知所措,除了不熟悉场地之外,还对自己先要做什么很懵。我们买了单次的游泳卡,管理员会发一个密封的小牌子,除了可以进出门禁外,还有一个对应的柜子存放东西。我们放了东西,然后先去上了厕所,接着就换衣服。这里搭子很尴尬,因为大家会在放东西的地方直接换,她似乎很害羞。换好衣服我们安装教程去淋浴间把皮肤打湿,简单的热身(基本没做)后就前往了泳池。

掀开帘子我们才发现似乎不需要去淋浴间打湿,进场前有一个水帘子。泳池的水看起来挺干净,靠着泳镜模糊的视野,我们找到了浅水区,脱掉鞋,顺着梯子一步步进去水中。每一步往下,水对我的托举就更强几分。

第一次下水也没学什么动作,参考教程练习了呼吸和找漂浮的感觉,目前会用嘴吸气鼻子吐气,持续十几秒,但是不太会闭气(进水攻击)。我的练习还挺顺利,不知道是不是因为我用脸盆试过一次,发现这样确实不会吸水就放心大胆的练了。至于漂浮,我能双脚离地,但是不知道要如何头朝下,当耳朵没入水中的时候,我第一次用耳朵直接听到水里的白噪声(而不是耳机),在水中似乎能和外面的世界隔开。

当然,这次体验也有不好的地方,除了带的东西过多,在水里泡久以后皮肤会因为吸水起褶皱,再加上水里消毒成分含量高,还有点刺痛感。另外,我也不习惯戴泳镜,时间久了感觉被吸得难受,于是时不时想松一下,结果进水了…

但总的来说,这次游泳体验还是很满意的。不知道下次去是什么时候,希望能在读研期至少学会蛙泳!

资源

打卡💪

  • 爬楼
  • 骑行 14.27km 换了 strava,但码表没买到
  • 英语打卡:更新了纸笔听写(是的本人终于有纸了)

本篇是对 2025-09-01 到  2025-09-07 这一周生活部分事件的记录。

快速总结💭

  • 本周有了新的实时碎碎念的平台,潜意识它玩的很开心,疯狂发散。
  • 领了一张旅游年卡(大学新生限定)。打算用于观鸟!
  • 和临时室友吃了散伙饭,搬了宿舍,从二楼到六楼,实现了海拔的飞升… (新宿舍宿管是男的…一股霉味, 且有坏门,发出钻墙声音的热水管)
  • 和高中同学聊天,她目前大三找工作焦虑得睡不着觉,每天只睡几小时。感慨狗屎教育 xt
  • 在读《想象的共同体》,对一些专业名词不熟悉,有很多看不太懂的地方,另外这翻译也太烂了吧。
  • 一个女性社群计划国庆出去团建,可惜有点远坐飞机又有点贵了,在犹豫中。
  • 准备参加今年的数模,在 xhs 捞到了队友,另外想学游泳也找到了搭子(但是在纠结要不要 1v1)
  • 探索了学校的图书馆:像个迷宫差点走不出去。借书还不知道怎么借(忘记带校园卡),另外工作人员一问三不知…

资源

打卡💪

  • 骑行 20.63km,这周没怎么骑车,似乎没有刚拿到车的第一周那种每天骑 10km 轻轻松松 的激情了
  • 英语口语 *6,休息了一天

本篇是对 2025-08-25 到  2025-08-31 这一周生活部分事件的记录。

碎碎念💭

  • 突然发现一张sim卡识别不到,搜 xhs擦了两下重装好了, 不知道是因为松了还是灰导致的。
  • 更新了n8n,最近一些ai产品都给我发更新邮件。DeepSeek API 升级DeepSeek-V3.1。OpenRouter 现在也可以用GPT-5 了,还没去试试。
  • 又想读很多书,如《想象的共同体》、《躁动的无意识》、《舆论》,有时间去图书馆借一本晚上助眠。
  • 今天吃到了很好吃的牛肉拌面,甚至吃出了花椒油的香味。

mcp 的意外用法?

合并分区没有把 python 删干净导致它后面出了问题,我先是按 Gemini 给的方案用微软出的一个小工具也没删干净。最后用 cline 让它帮我把 python 删干净,确实做的不错,最后重下也恢复了。还有因为删除问题导致右键菜单失效,试着让 mcp 给我修复,最后也弄好了。

全程就是输入我的需求,然后等 ai 自己运行,偶尔需要授权,cline 最多好像可以自动通过 10 次。

不知道开学后会有什么变化

现在的状态是我理想的上班状态,每天自由上下班,忙完工作的事情就可以做自己的事情,有很多可支配的时间… 或许是因为这是提前进组?组里的状态还是很佛系,希望能继续保持!开心啊哈哈

资源

obsidian-pandoc
可以将 md 文档导出为各种格式的文档,为了导出 word 格式的文档折腾了一下,最后的效果差强人意,勉强能用吧。

Nian 本月记,记录的东西不算多
5223e43488aed48772fa0c2c8ac7137f.jpg|320

38b5c6fe7d022c649578512f37da5e48.jpg|320

打卡💪

  • 骑行 25.5km
    已然忘记曾经觉得每天 10公里很容易
  • 英语口语 x6

本篇是对 2025-08-18 到  2025-08-24 这一周生活部分事件的记录。

碎碎念💭

  • Obsidian 更新了 base,这个功能我一般也用不到。试用了一下把原来的读书卡片转成了 base,只需要鼠标设置几下(前提是你的书籍元数据都在库里面)
  • 躺床上胡思乱想,越想越兴奋,现在想来不会是因为晚饭后口渴喝的绿茶的锅吧。对提神物质过于敏感。
  • 学校附近竟然没有靠谱的水果店。之前买过一次感觉不错,第二次买三个橙子只有一个还行,其它有苦味。黄桃倒是能吃。
  • 《缺氧》被高压制氧模块坑惨了,不知道是因为什么原因崩掉。猜测它的大致原理:确定电解器制氧气体输出的范围,然后把氧气和氢气留出一格中间相连的部分用液体和砖隔开(气体和液体在缺氧都是不溶的),于是氧气在上氢气在下。
    20250805202145_1.jpg|520

纯记账的第三年

用了快四年的钱迹,手动记账已经成为本能。最近开了会员,目前自动记账功能在测试中。这个自动记账就是付完款会自动弹窗,填好信息,有些场景还不能识别。

另外有个 idea,自己总结一下这些年的数据,然后再让 ai 给我分析分析, 但没想好怎么实现。我的分析很简略,仅仅是以年为单位看看消费前几,再考虑要不要控制。21-23 衣服消费稳居前 2,但在 23 年我认识到极简的概念并开始实践以后,开始逐年下降。不过这部分钱也没剩下来,用来吃和投入爱好了。

打算认真了解一下理财方面的东西。

资源

打卡💪

  • 骑行 2h7min
  • 英语口语 * 6

本篇是对 2025-08-11 到  2025-08-17 这一周生活部分事件的记录。

碎碎念💭

  • 终于在缺氧飞火箭了,最后起飞出了一些问题,谁能想到没选任务的报错是缺少支架呢…
  • 有时候感觉和 ai 对话就是在教 ai 如何思考,被一个问题卡住了很久,直到我问为什只在这个模块出错它才意识到一个最开始就有的问题。gpt5 确实聪明了一些。
  • 帮领的斗鱼死到了(心碎),果然我不适合养鱼吧,每条经过我手的都死的很早。
  • 维护了一下长草两米高的博客,换了主题。

尝试自动化信息聚合

参考使用自动化工作流聚合信息摄入和输出写了笔记,但只有 RSS 源能正常推送,也就是一些独立博客和豆瓣的更新。

在了解的基础上,在私有频道聚合了我喜欢的博客,中间出了很多问题(因为语法语法,也不了解 n8n),最后还算能用(存在频繁访问的问题)。

准备尝试新爱好?但有点忙不过来

8.16 订阅了 Pixel Art TutorialsPixel Art 101

先试试 Aseprite 免费版。fork 这个仓库 后,可以直接在 action 编译,也可以先在 action 修改 build_and_release.yaml 文件 55 行的 os ,只保留自己的操作系统。编译后可以在 release 得到可执行文件,下载后将发布的版本删除。

然后是汉化和主题(来源)。这个视频里不能直接打开编译后的文件,现在似乎已经可以直接打开了。

找到 Edit-Preferences-Extensions,然后 add Extension。在下载文件中优先加载拼音为主题的扩展,加载后可以到 Theme,可以点击 select 预览(有一个非像素版的主题,字体会清晰很多,但是选项有点问题)。最后加载汉化,在 General 修改语言即可。

资源

锻炼卡💪

  • 力量训练 1h18min
  • 走路 50min

参考

本文在 简单工作流的搭建 搭建了最简单的工作流(存在缺陷)。如果想要动手尝试,先到快速启动 下载必要引擎,然后可以直接跳到 使用已有的工作流

n8n 版本: 1.106.3

快速启动

下载 Docker Desktop

测试模式,不要关闭终端

docker run -it --rm --name n8n -p 5678:5678 -e "HTTP_PROXY=http://127.0.0.1:7890" -e "HTTPS_PROXY=http://127.0.0.1:7890" -v ~/.n8n:/home/node/.n8n n8nio/n8n

稳定版

docker run -d --name n8n -p 5678:5678 -e "HTTP_PROXY=http://127.0.0.1:7890" -e "HTTPS_PROXY=http://127.0.0.1:7890" -v ~/.n8n:/home/node/.n8n -v ~/.n8n_database:/database n8nio/n8n

如果想稳定代理的话应该考虑在本地存储代理信息,这样删容器代理不受影响。

然后初始化 n8n 。访问 http://localhost:5678 进行注册,需要邮箱验证。

简单工作流的搭建

创建 Telegram Bot 并连接到 n8n

这个部分的群组可以不创建,我目前把这个群组作为 log。

创建一个 Telegram Bot

  • 打开 Telegram 客户端,在搜索框里搜索 @BotFather (注意核对官方认证的蓝色√图标),然后点进去开始聊天。
  • 发送 /newbot 给 BotFather。
  • 给机器人起名字以及用户名 (username,后面查找机器人用),这个必须以 bot 结尾。
  • 创建成功后,BotFather 会给你一长串API Token请立即复制并保存好这个 Token

创建一个用于接收信息的频道 (Channel)

  • 在 Telegram 里,创建一个新的频道。给它起个名字。
  • 重要:将频道类型设置为私有
  • 然后把刚刚创建的机器人添加到这个频道作为管理员,设置权限

完成到这里可以跳到 使用已有的工作流

创建并获取群组的 Chat ID(选做)

  • 将你刚刚创建的机器人临时添加到一个普通的群组里,并且打开权限,然后在这个群组里随便发一条消息。
  • 打开浏览器,访问以下网址 :
    https://api.telegram.org/bot{YOUR_BOT_TOKEN}/getUpdates
  • 你会看到一些 JSON 格式的文字。找到 chat 部分,里面有一个 id,它通常是一个以 -100 开头的数字,请复制并保存好它。

在 n8n 中配置 Telegram(选做)

  • 打开 n8n 界面 (http://localhost:5678)。
  • 点击 “Add workflow” 创建一个新工作流。
  • 点击屏幕中央的 + 号,在搜索框里输入 Telegram,然后选择在 action 里面找到 send message
  • 在右侧的配置栏中:
    • Credential for Telegram API: 点击 “Create New”。
      • Credential Name: 随便起个名字。
      • Access Token: 粘贴你从 BotFather 那里得到的 API Token
      • 点击 “Save”。
    • Chat ID: 粘贴你刚刚获取的以 -100 开头的频道 Chat ID
    • Text: 输入 Hello from n8n!
  • 点击节点下方的 “Execute node” 按钮。

添加第一个信息源 - RSS(选做)

从最简单的 RSS 开始,订阅一个你喜欢的博客。
1. 找到 RSS 链接
2. 在 n8n 中配置 RSS 工作流

  • 点击 + 号,添加一个 Schedule 节点。在弹出的配置中,可以设置每小时 (Every Hour)、每天 (Every Day) 等。
  • 点击 Schedule 节点右侧的 + 号上,在弹出的搜索框里输入 RSS,选择 RSS Read 节点,配置 URL 即可。

note

这里可能会遇到网站有安全设置,可以试试这个 RSS 转换,登录之后把博客主页地址输入,生成 RSS

  • RSS Read 连接到我们之前创建的 Telegram 节点。
  • 然后需要修改 Telegram 节点的 Text 内容,让它发送 RSS 的标题和链接。
    • Text 输入框右边,点击 “Add Expression”
    • 在表达式输入框里输入:
标题:{{ $json.title }}

链接:{{ $json.link }}
  • 返回主界面点击右下角的 “Execute workflow” 按钮来测试整个流程。运行成功你会在 telegram 群聊看到推送的 10 条新消息(默认情况)。

这个基础简单的工作流如下图。功能是每 5 分钟自动检查指定网站是否有新文章发布,并将所有新文章的标题和链接,逐条发送到指定 Telegram 频道。如果重复执行会发现每次都会发送 10 条信息,如果在推送前进行比对可以在 RSS 后加一个 function 模块。
image.png|520

可以重复这个流程来订阅其它 RSS ,但不要忘记以上步骤是在一个测试群聊里进行的,如果想要把信息送到频道,需要把上面配置的 Chat ID 修改为频道 id,这里使用一个简单的方法获得 id:

  • 在 Telegram 里,搜索并关注一个叫做 @userinfobot 的机器人,或点击链接
  • 进入接收消息的那个频道,并转发任意一条消息,发送给刚刚那个 @userinfobot
  • @userinfobot 会立刻回复你一条信息,找到 Id 后面跟着的那个以 -100 开头的数字,即你频道的唯一 ID

note

有好奇心的朋友可能会用这个机器人来试一试之前那个群聊的 id,你会发现这个得到的 id 并不是-100 开头的那个 id 了。

这是因为 Telegram 建群时默认的类型是普通群组(功能有限),而-100 开头的是拥有更强大的功能的超级群组。为了让 n8n 就能稳定地发送消息, Chat ID 需要用 -100 开头的。私人频道可以满足个人信息聚合的要求。如果想把信息发到一个群里和朋友分享,可以自行搜索手动将那个群升级。

使用已有的工作流

当然,如果也可以直接使用别人的成果-- reorx的工作流合集,博主有简单说明逻辑。

以 RSS 的工作流为例,先进入仓库,复制 json 文件。回到 n8n 后台新建工作流,直接粘贴。然后修改 RSS 的链接,以及 telegram 的 chatid 。最后点击执行工作流测试一下是否连通。如果没问题的话,会在频道收到一条最新的推文。

chatid 的获取

  • 在 Telegram 里,搜索并关注一个叫做 @userinfobot 的机器人,或点击链接
  • 进入接收消息的那个频道,并转发任意一条消息,发送给刚刚那个 @userinfobot
  • @userinfobot 会立刻回复你一条信息,找到 Id 后面跟着的那个以 -100 开头的数字,即你频道的唯一 ID

进阶玩法-订阅多个 RSS

从头搭建一个工作流来处理多个 RSS 源。

Code 节点(订阅管理)

const myRssFeeds = [
{ name: "douchi", url: "https://rss.app/feeds/hZVUbnIx3yBAbKMU.xml" },
{ name: "yukieyun", url: "https://yukieyun.net/index.xml" },
{ name: "thirdshire", url: "https://thirdshire.com/index.xml" },
{ name: "yitaoli", url: "https://yitaoli2023.github.io/yitaoli/index.xml" },
{ name: "bamboobone9", url: "https://bamboobone9.com/index.xml" },
{ name: "pursuitus", url: "https://blog.pursuitus.com/feed" },
{ name: "wraith615", url: "https://blog.wraith615.xyz/rss.xml" },
{ name: "gigigatgat", url: "https://www.gigigatgat.ca/index.xml" },
{ name: "ignativssss", url: "https://ignativssss.github.io//index.xml" },
{ name: "asyncx", url: "https://blog.asyncx.top/zh.xml" },
{ name: "birds", url: "https://moresci.sale/@birds.rss" },
{ name: "shyrz", url: "https://shyrz.me/rss/" },
{ name: "douchiBook", url: "https://bamboobone9.com/index.xml" },
{ name: "ruanyifeng", url: "https://feeds.feedburner.com/ruanyifeng" },
{ name: "decohack", url: "https://decohack.com/feed/" }

];

return myRssFeeds.map(feed => ({
json: {
feedName: feed.name,
feedUrl: feed.url
}
}));

RSS Read 节点

Feed URL{{ $json.feedUrl }}

Code 节点(剪切)

只保留最新 3(n) 条,不确定是否能提高效率。

const items = $input.all();

items.sort((a, b) => {
const dateA = new Date(a.json.pubDate || 0).getTime();
const dateB = new Date(b.json.pubDate || 0).getTime();
return dateB - dateA;
});

return items.slice(0, 3);

Edit Fields (Set) 节点

  • 点击 Add Value (添加值)。
  • Name (名称): 输入 feedName
  • Value (值): 输入下面的表达式。
{{ $('list').item.json.feedName }}

并打开最下面的一个开关-- Include Other Input Fields。

RSS Read 抓取完文章后,Set 节点会把 feedName 附加到每一篇文章数据上。

Code 节点(精选最新)

在所有新文章里,每个来源只挑出最新的一篇。

{% raw %}
const items = $input.all();
const latestByFeed = {}; // 用对象保存每个源的最新文章

for (const item of items) {
const feed = item.json.feedName || 'unknown';
const pubDate = item.json.pubDate ? new Date(item.json.pubDate).getTime() : 0;

if (!latestByFeed[feed]) {
latestByFeed[feed] = item;
} else {
const existingDate = latestByFeed[feed].json.pubDate ? new Date(latestByFeed[feed].json.pubDate).getTime() : 0;
if (pubDate > existingDate) {
latestByFeed[feed] = item;
}
}
}

// 把对象里的结果转成数组返回
return Object.values(latestByFeed);
{% endraw %}

Remove Duplicates 节点

防止文章重复。
operationRemove Items Processed in Previous Executions
value{{ $json.guid || $json.link }}

Send a text message(Telegram)

📝{{$json["title"]}} #blog 

{{$json["link"]}}

解析模式为 HTML

工作流问题

第三方服务不能成功

本地代理设置

报错 The service refused the connection - perhaps it is offline

检查容器代理情况

docker inspect n8n | Select-String -Pattern "PROXY"

输出是走代理的,核心问题是 127.0.0.1:7890 在容器里访问不到宿主机代理,最后修改了一下启动命令可以成功。

docker run -d --name n8n -p 5678:5678 -e "HTTP_PROXY=http://host.docker.internal:7890" -e "HTTPS_PROXY=http://host.docker.internal:7890" -v ~/.n8n:/home/node/.n8n -v ~/.n8n_database:/database n8nio/n8n

为了不再出这个问题,删了容器重新在本地直接存下配置,"C:\n8n-data\docker-compose.yml"

version: "3.8" 
services:
n8n:
image: n8nio/n8n
container_name: n8n
ports:
- "5678:5678"
environment:
# 代理配置(写死)
HTTP_PROXY: http://host.docker.internal:7890
HTTPS_PROXY: http://host.docker.internal:7890
NO_PROXY: localhost,127.0.0.1
volumes:
# 数据卷(写死路径,防止丢配置)
- ./n8n_data:/home/node/.n8n
- ./n8n_database:/database
restart: unless-stopped

然后进入文件夹创建数据卷

docker compose up -d
  • 启动
    docker compose up -d
  • 停止
    docker compose down
  • 查看日志
    docker compose logs -f
  • 更新
    docker-compose pull
    docker-compose down
    docker-compose up -d
0%