Skip to content

Commit 884e8f2

Browse files
committed
支持关键字
1 parent 9bae866 commit 884e8f2

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

src/script.ts

+31-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ import {script} from '@digshare/script';
22
import RSSParser from 'rss-parser';
33

44
// 配置目标 RSS 地址。
5-
const RSS_URL = 'https://vane.life/rss/';
5+
const RSS_URL = 'https://sspai.com/feed';
6+
7+
const KEYWORDS_SPACE_SEPARATED = '关键字 用空格 隔开 比如 app 软件';
8+
9+
const KEYWORDS = KEYWORDS_SPACE_SEPARATED
10+
? KEYWORDS_SPACE_SEPARATED.toLowerCase().split(' ')
11+
: undefined;
612

713
const rssParser = new RSSParser();
814

@@ -21,7 +27,7 @@ export default script<void, Storage>(async (_payload, {storage}) => {
2127
const unseenItems = feed.items.filter(
2228
item =>
2329
// seenSet 中如果有 item.guid,就说明之前看到过。
24-
!seenSet.has(item.guid!),
30+
!!item.link && !seenSet.has(item.guid ?? item.link),
2531
);
2632

2733
if (unseenItems.length === 0) {
@@ -36,24 +42,42 @@ export default script<void, Storage>(async (_payload, {storage}) => {
3642
// 之前看到过的:
3743
...seenSet,
3844
// 新内容的:
39-
...unseenItems.map(item => item.guid!),
45+
...unseenItems.map(item => item.guid ?? item.link!),
4046
// 只保留最近 10000 条记录:
4147
].slice(-10000),
4248
);
4349

50+
// 根据关键词筛选内容
51+
const filteredUnseenItems = KEYWORDS
52+
? unseenItems.filter(item =>
53+
KEYWORDS.some(
54+
keyword =>
55+
(item.title?.toLowerCase().includes(keyword) ?? false) ||
56+
(item.content?.toLowerCase().includes(keyword) ??
57+
item.contentSnippet?.toLowerCase().includes(keyword) ??
58+
false),
59+
),
60+
)
61+
: unseenItems;
62+
63+
if (filteredUnseenItems.length === 0) {
64+
// 如果关键词筛选后没有新内容,中断脚本。
65+
return;
66+
}
67+
4468
// 从新内容中取出前 3 条(主要怕一次性新内容太多,比如脚本第一次执行)。
45-
const mostRecentUnseenItems = unseenItems.slice(0, 3);
69+
const mostRecentUnseenItems = filteredUnseenItems.slice(0, 3);
4670

4771
return {
48-
content: `${feed.title} 发布了 ${unseenItems.length} 篇新内容。`,
72+
content: `发现了 ${filteredUnseenItems.length} 篇新内容。`,
4973
links: [
5074
// 提供链接:
5175
...mostRecentUnseenItems.map(item => {
5276
return {
5377
// 链接标题使用订阅内容标题
54-
title: item.title!,
78+
title: item.title,
5579
// 链接描述使用订阅内容片段
56-
description: item.contentSnippet!,
80+
description: item.contentSnippet,
5781
// 链接地址
5882
url: item.link!,
5983
};

0 commit comments

Comments
 (0)