From 05ea90405baf5d13ba9a60e84e30dda86b2e4152 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 21 Mar 2026 20:21:43 +0000 Subject: [PATCH] globe for status --- src/providers/mod.rs | 14 ++++++++++++++ src/status.rs | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/providers/mod.rs b/src/providers/mod.rs index b36e7a8..3594616 100644 --- a/src/providers/mod.rs +++ b/src/providers/mod.rs @@ -410,6 +410,13 @@ fn channel_group_title(group_id: &str) -> &'static str { } } +fn channel_group_system_image(group_id: &str) -> Option<&'static str> { + match group_id { + "jav" | "chinese" => Some("globe"), + _ => None, + } +} + fn channel_group_order(group_id: &str) -> usize { match group_id { "meta-search" => 0, @@ -483,6 +490,7 @@ pub fn build_channel_groups(channels: &[ChannelView]) -> Vec { groups.push(ChannelGroup { id: group_id.clone(), title: channel_group_title(&group_id).to_string(), + systemImage: channel_group_system_image(&group_id).map(str::to_string), channelIds: channel_ids, }); } @@ -675,5 +683,11 @@ mod tests { .expect("meta group present"); assert_eq!(meta_group["channelIds"], serde_json::json!(["all"])); assert!(meta_group.get("channels").is_none()); + + let chinese_group = groups + .iter() + .find(|group| group["id"] == "chinese") + .expect("chinese group present"); + assert_eq!(chinese_group["systemImage"], "globe"); } } diff --git a/src/status.rs b/src/status.rs index c90821e..a7d0abc 100644 --- a/src/status.rs +++ b/src/status.rs @@ -26,6 +26,8 @@ pub struct Channel { pub struct ChannelGroup { pub id: String, pub title: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub systemImage: Option, pub channelIds: Vec, }