From d07d6c414ca14ca1129749e12ac81bfc12708ffe Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Fri, 23 Jan 2026 23:50:51 +0100 Subject: [PATCH] feat(cyberfeed): Add Star Wars crawl timeline and fix array handling - Add Star Wars opening crawl style timeline with: - Starfield background with twinkling stars - "A long time ago in a network far, far away...." intro - CYBERFEED logo zoom animation - 3D perspective text crawl (rotateX transform) - Yellow text (#ffd700) with cyan accents (#0ff) - Auto-refresh every 3 minutes - Controls: PAUSE, RESET, HOME, REFRESH - Fix LuCI API array handling in getFeeds/getItems: - RPC `expect` declarations auto-extract nested properties - Response IS the array, not res.feeds/res.items - Add Array.isArray check to handle both cases Co-Authored-By: Claude Opus 4.5 --- .../luci-static/resources/cyberfeed/api.js | 6 +- .../files/usr/bin/cyberfeed | 526 +++++++++++++----- 2 files changed, 396 insertions(+), 136 deletions(-) diff --git a/package/secubox/luci-app-cyberfeed/htdocs/luci-static/resources/cyberfeed/api.js b/package/secubox/luci-app-cyberfeed/htdocs/luci-static/resources/cyberfeed/api.js index 1062724..ed92dcb 100644 --- a/package/secubox/luci-app-cyberfeed/htdocs/luci-static/resources/cyberfeed/api.js +++ b/package/secubox/luci-app-cyberfeed/htdocs/luci-static/resources/cyberfeed/api.js @@ -84,13 +84,15 @@ return baseclass.extend({ getFeeds: function() { return callGetFeeds().then(function(res) { - return res.feeds || []; + // RPC expect already extracts feeds array, res IS the array + return Array.isArray(res) ? res : (res.feeds || []); }); }, getItems: function() { return callGetItems().then(function(res) { - return res.items || []; + // RPC expect already extracts items array, res IS the array + return Array.isArray(res) ? res : (res.items || []); }); }, diff --git a/package/secubox/secubox-app-cyberfeed/files/usr/bin/cyberfeed b/package/secubox/secubox-app-cyberfeed/files/usr/bin/cyberfeed index e11a2f5..a6ffc5d 100644 --- a/package/secubox/secubox-app-cyberfeed/files/usr/bin/cyberfeed +++ b/package/secubox/secubox-app-cyberfeed/files/usr/bin/cyberfeed @@ -231,11 +231,10 @@ parse_rss() { ' } -# === TIMELINE HTML GENERATOR === +# === TIMELINE HTML GENERATOR (Star Wars Crawl Style) === generate_timeline() { local json_file="$1" local output_file="${OUTPUT_DIR}/timeline.html" - local timestamp=$(date '+%Y-%m-%d %H:%M:%S') cat > "$output_file" << 'TIMELINEHTML' @@ -243,185 +242,444 @@ generate_timeline() { -⚡ CYBERFEED TIMELINE ⚡ +⭐ CYBERFEED STAR CRAWL ⭐ -
-

⚡ TIMELINE ⚡

-

Chronological Feed History

-
- -
-

Loading timeline...

+ + +
+
+
+
+ + +
+
+ A long time ago in a network far, far away.... +
+
+ + +
+ +
NEURAL RSS MATRIX
+
+ + +
+
+
EPISODE MMXXVI
+
THE FEED
AWAKENS
+
+

+ Initializing neural feed matrix... +

+
+
+
+ + +
+ + + + +
+ + +
+ -- ENTRIES + SYNCING... +
+