From a89636c8465431debd4dd0ec6933293b0aca4a18 Mon Sep 17 00:00:00 2001 From: yukirij Date: Sat, 28 Sep 2024 20:35:49 -0700 Subject: [PATCH] Add favicon notification. --- server/src/main.rs | 2 + www/asset/favicon_notify.png | Bin 0 -> 4173 bytes www/asset/favicon_notify.svg | 86 +++++++++++++++++++++++++++++++++++ www/js/badge.js | 15 +++--- www/js/system.js | 2 + 5 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 www/asset/favicon_notify.png create mode 100644 www/asset/favicon_notify.svg diff --git a/server/src/main.rs b/server/src/main.rs index b4357d5..642feae 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -174,6 +174,7 @@ async fn main() "www/js/const.js", "www/js/language.js", "www/js/util.js", + "www/js/badge.js", "www/js/game_asset.js", "www/js/game.js", "www/js/interface.js", @@ -183,6 +184,7 @@ async fn main() "www/js/main.js", ]).ok(); cache.cache_file("image/png", "/favicon.png", "www/asset/favicon.png").ok(); + cache.cache_file("image/png", "/favicon_notify.png", "www/asset/favicon_notify.png").ok(); let asset_path = std::path::Path::new("www/asset"); for asset in [ diff --git a/www/asset/favicon_notify.png b/www/asset/favicon_notify.png new file mode 100644 index 0000000000000000000000000000000000000000..ff4e1baf6c58b64838e5ef6c5e13bef8557ddf84 GIT binary patch literal 4173 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 XxI%5ye_?kY00000NkvXXu0mjf + + + + + + + + + + + + + + diff --git a/www/js/badge.js b/www/js/badge.js index c2435cb..28be812 100644 --- a/www/js/badge.js +++ b/www/js/badge.js @@ -1,8 +1,11 @@ -class Badge { - -} - -function BADGE_UPDATE() +function BADGE_UPDATE(notify) { - + let link = document.querySelector("link[rel~='icon']"); + if(link) { + if(notify) { + link.href = "/favicon_notify.png"; + } else { + link.href = "/favicon.png"; + } + } } diff --git a/www/js/system.js b/www/js/system.js index 18cf4bc..3f7cbc3 100644 --- a/www/js/system.js +++ b/www/js/system.js @@ -132,6 +132,8 @@ function MESSAGE(event) { index = result.index; STATUS.resume = result.data; + BADGE_UPDATE(STATUS.challenge > 0 || STATUS.resume > 0); + UI.update_status(); } } break;