部署RSS
如需在盯梢创建rss频道,可利用盯梢脚本编辑器实现。
具体步骤如下:
1.在盯梢创建一个需要部署rss的频道;
2.点击进入盯梢脚本编辑器 script.dingshao.cn ,勾选复选框;
3.在盯梢「探索页」右上角扫码,选择需要部署rss的频道;
4.进入脚本编辑器界面后,切换顶部至「TypeScript」;
5.将当前页面代码全部替换为以下代码;
import RSSParser from 'rss-parser';
// 配置目标 RSS 地址。
const RSS_URLS = ['https://sspai.com/feed'];
// 如果需要多个地址,参考如下配置(地址前后加单引号,中间用逗号隔开):
// const RSS_URLS = ['https://sspai.com/feed', 'https://vane.life/rss/'];
// 配置内容筛选关键字,空格隔开。
const KEYWORDS_SPACE_SEPARATED = '关键字 用空格 隔开 比如 app 软件';
// 如果不需要筛选关键字,则删除引号之间的内容,如下:
// const KEYWORDS_SPACE_SEPARATED = '';
const KEYWORDS = KEYWORDS_SPACE_SEPARATED
? KEYWORDS_SPACE_SEPARATED.toLowerCase().split(' ')
: undefined;
const rssParser = new RSSParser();
interface Storage {
seen: string[];
}
export default script<void, Storage>(async function* (_payload, {storage}) {
// 取出之前就看到过的订阅内容 id,将其转化为 Set 数据结构,便于后续判断。
const seenSet = new Set(storage.getItem('seen'));
// 使用 RSS Parser 加载、解析目标 RSS 列表。
const feeds = await Promise.all(RSS_URLS.map(url => rssParser.parseURL(url)));
const items = feeds
.flatMap(feed => feed.items)
.sort(
(x, y) =>
new Date(y.pubDate ?? 0).getTime() - new Date(x.pubDate ?? 0).getTime(),
);
// 从加载的 RSS 订阅内容中筛选出之前没有看到过的内容。
const unseenItems = items.filter(
item =>
// seenSet 中如果有 item.guid,就说明之前看到过。
!!item.link && !seenSet.has(item.guid ?? item.link),
);
if (unseenItems.length === 0) {
// 如果没有发现新内容,中断脚本。
return;
}
// 把新内容的 id 加入看到过订阅内容 id 列表中。
storage.setItem(
'seen',
[
// 之前看到过的:
...seenSet,
// 新内容的:
...unseenItems.map(item => item.guid ?? item.link!),
// 只保留最近 10000 条记录:
].slice(-10000),
);
// 根据关键词筛选内容
const filteredUnseenItems = KEYWORDS
? unseenItems.filter(item =>
KEYWORDS.some(
keyword =>
(item.title?.toLowerCase().includes(keyword) ?? false) ||
(item.content?.toLowerCase().includes(keyword) ??
item.contentSnippet?.toLowerCase().includes(keyword) ??
false),
),
)
: unseenItems;
if (filteredUnseenItems.length === 0) {
// 如果关键词筛选后没有新内容,中断脚本。
return;
}
for (let item of filteredUnseenItems) {
yield {
content: `\
《${item.title}》
${item.content ?? item.contentSnippet}`,
links: [
{
title: item.title,
url: item.link!,
},
],
};
}
});
6.替换完成后,将第4行代码修改为需要部署的rss源,如需同时部署多个rss源,则在地址前后加单引号,中间用逗号隔开;
7.如需增加关键字/词过滤,在第9行代码处输入相应的关键字/词,多个关键字/词用空格隔开,如不需要过滤,则删除标记处引号中间的内容;
8.代码确认无误后,可在右侧「调试」界面点击右下角进行测试;
9.测试无误后,在上方切换至「部署」界面,并点击右下角先进行部署;
10.选择脚本计划执行时间;
每分钟可多选,例如需要每半小时发布一次,则可同时选中每0分钟和每30分钟(间隔30分钟即可,以此类推),设置完成后点击「应用」
11.最后点击右下角「执行」即可。
复制链接