惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

Mox的笔记库

2026PPoPP MLIR Tutorial学习 | Mox的笔记库 MacOS配置《明日方舟:终末地》 | Mox的笔记库 2025:向内生长 | Mox的笔记库 由mlir::ExecutionEngine引发的跨系统问题 | Mox的笔记库 WSL2配置Cuda-Tile环境记录(未完待续) | Mox的笔记库 Vibe Coding手搓项目记录 | Mox的笔记库 给Debian上包——以DuckDB为例 | Mox的笔记库 UCPD.sys事件存档 | Mox的笔记库 换新电脑之Mac mini M4从购买到配置 | Mox的笔记库 Mac配置MLX-C开发环境 | Mox的笔记库 RISC-V meets RDBMS——RISC-V架构上可运行数据库一览 | Mox的笔记库 DuckDB Sort实现调查 | Mox的笔记库 修复Redis在树莓派5上无法运行的问题 | Mox的笔记库 如何在MLIR中自定义类型并且输出运行 | Mox的笔记库 网站网络结构变更记录 | Mox的笔记库 EDBT25论文阅读:PhoebeDB——A Disk-Based RDBMS Kernel for High-Performance and Cost-Effective OLTP SIGMOD25论文阅读:BPF-DB:——A Kernel-Embedded Transactional Database Management System For eBPF Applications Apache Arrow Gandiva项目解析 | Mox的笔记库 VLDB24论文阅读:Cloud-Native Database Systems and Unikernels——Reimagining OS Abstractions for Modern Hardware NoisePage源码分析(未完待续) | Mox的笔记库 VLDB20论文阅读:Mainlining Databases——Supporting Fast Transactional Workloads on Universal Columnar Data File Formats VLDB17论文阅读:Relaxed Operator Fusion for In-Memory Databases:Making Compilation, Vectorization, and Prefetching Work Together At Last 论文阅读:How not to structure your database-backed web applications——a study of performance bugs in the wild SIGMOD24阅读:ROME——Robust Query Optimization via Parallel Multi-Plan Execution 文章阅读:First Past the Post-Evaluating Query Optimization in MongoDB SIGMOD文章阅读:Apache Calcite——A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources VLDB23论文阅读:Analyzing the Impact of Cardinality Estimation on Execution Plans in Microsoft SQL Server SIGMOD22论文阅读:Efficient Massively Parallel Join Optimization for Large Queries VLDB论文阅读:Weaving Relations for Cache Performance VLDB22论文阅读:ConnectorX——Accelerating Data Loading From Databases to Dataframes
2024年7月RSSHub开发体验 | Mox的笔记库
MocusEZ · 2024-07-23 · via Mox的笔记库

时隔两年半,再次给RSSHub提PR(上次PR的记录传送门

TonyRL老师PR Merge的很快,代码是下午完成的,PR是晚上合并的😘

feat(route): add route for DuckDB news

代码架构变动

具体看DIYGod本人的博客,这里不过多赘述:一个六岁开源项目的崩溃与新生

我关注的就三个点:语言JS -> TS,框架Koa ->Hono,网络请求还没想好要不要替换Got

但也谈不上有多关注😅,就JS语言的迭代速度而言,怕不是永远都在学习新框架,新语法的路上。框架太多,语法太杂,没必要为了赶时髦,学些老工具就能解决的不错的问题。

但作为开发者而言,我十分乐见本次改动:我只添加了两个文件(命名空间和一个路由),就完成了RSS的输出与文档的生成

文档的例子不错,很容易理解路由编写规则,看一下手册和别人提交的PR,就能自己实现代码。

提交commit的时候,也不再像之前一样,强制ESLint扫描所有文件,这就很舒服(三年前一个commit转了3分钟,让我第一次接触了pre-commit这种东西😂)

代码调试

如果非要吐槽点什么的话,就是RSSHub代码调试不太方便😐

我自己是Jquery语法有点遗忘,就得不断尝试Cheerio抓取,这部分内容就需要自己搭建个运行环境进行测试:

pnpm install cheerio

pnpm install got

参考手册内容(Pure ESM package)开启ESM支持

这里贴一下用于调试测试的代码:

import got from 'got';

import { load } from 'cheerio';

const baseUrl = 'https://duckdb.org/news/';

const response = await got(baseUrl);

const $ = load(response.body);

const list = $('.postpreview')

.toArray()

.map((item) => {

item = $(item);

return {

title: item.find('h3').text().trim(),

link: `https://duckdb.org${item.find('a').eq(2).attr('href')}`,

};

});

{

const response = await got(list[1].link);

const $ = load(response.body);

console.log($('.author').text())

console.log($('.singleentry').html())

}

我对DuckDB信息源做了获取全文操作的操作,结果调试的时候始终不显示全文信息,我以为是缓存的问题,四处翻找文档没找到答案😅而对于RSSHub的缓存,我还没想到没个好的解决方案

后面测试的时候才发现是Body没解析,补了个commit才解决

个人想法

这次PR编写于提交虽然有点小磕绊,但总体而言,相比较于第一次提交PR而言顺利不少

我个人是非常喜欢RSS订阅这种模式的,目前使用FreshRSS的作为主要的阅读器。但我们学校更喜欢第一时间发微信信息与QQ信息😅,RSS订阅的最大作用反倒是让信息归档更加方便些。

最后,RSSHub陪我度过了四年的本科生活,这里衷心祝愿RSSHub项目发展顺利🧐