浏览代码

fix: replace remaining .filter() calls with for loops in RSS Reader

QuickJS doesn't reliably support Array.prototype.filter(). Replace all
remaining .filter() calls in filterByKeyword() and filterByDate() with
manual for loops for full QuickJS compatibility.
fszontagh 6 月之前
父节点
当前提交
7d4e75c99b
共有 1 个文件被更改,包括 17 次插入7 次删除
  1. 17 7
      nodes/rss/rss-reader.js

+ 17 - 7
nodes/rss/rss-reader.js

@@ -2,7 +2,7 @@
  * @node rss-reader
  * @name RSS Reader
  * @category data
- * @version 1.1.5
+ * @version 1.1.6
  * @description Read and parse RSS/Atom feeds with optional filtering by keyword, date, or count. Supports stateful new item detection.
  * @icon rss
  */
@@ -506,11 +506,16 @@ function filterByKeyword(items, keyword) {
     if (!keyword) return items;
 
     var lowerKeyword = keyword.toLowerCase();
-    return items.filter(function(item) {
+    var result = [];
+    for (var i = 0; i < items.length; i++) {
+        var item = items[i];
         var title = (item.title || '').toLowerCase();
         var description = (item.description || '').toLowerCase();
-        return title.indexOf(lowerKeyword) !== -1 || description.indexOf(lowerKeyword) !== -1;
-    });
+        if (title.indexOf(lowerKeyword) !== -1 || description.indexOf(lowerKeyword) !== -1) {
+            result.push(item);
+        }
+    }
+    return result;
 }
 
 /**
@@ -525,10 +530,15 @@ function filterByDate(items, newerThanStr) {
         return items;
     }
 
-    return items.filter(function(item) {
+    var result = [];
+    for (var i = 0; i < items.length; i++) {
+        var item = items[i];
         var itemDate = parseDate(item.pubDate);
-        return itemDate > threshold;
-    });
+        if (itemDate > threshold) {
+            result.push(item);
+        }
+    }
+    return result;
 }
 
 /**