From 557dfc26b3e446d7a0329565786c8cedfe3d3b55 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Sun, 15 May 2022 02:18:13 -0500 Subject: Fix unread message count for zulip --- recipes/zulip/icon.svg | 2 +- recipes/zulip/package.json | 2 +- recipes/zulip/webview.js | 24 ++++++++++++++++++------ 3 files changed, 20 insertions(+), 8 deletions(-) (limited to 'recipes') diff --git a/recipes/zulip/icon.svg b/recipes/zulip/icon.svg index 9b4d729..51f3692 100644 --- a/recipes/zulip/icon.svg +++ b/recipes/zulip/icon.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/recipes/zulip/package.json b/recipes/zulip/package.json index d32f810..cbe516b 100644 --- a/recipes/zulip/package.json +++ b/recipes/zulip/package.json @@ -1,7 +1,7 @@ { "id": "zulip", "name": "Zulip", - "version": "1.2.0", + "version": "1.2.1", "license": "MIT", "config": { "hasNotificationSound": true, diff --git a/recipes/zulip/webview.js b/recipes/zulip/webview.js index 32cb0aa..1989809 100644 --- a/recipes/zulip/webview.js +++ b/recipes/zulip/webview.js @@ -1,12 +1,24 @@ module.exports = Ferdium => { const getMessages = () => { - const allMessages = Math.round( - document.querySelectorAll( - '#global_filters .top_left_all_messages .count .value', - )[0].textContent, - ); - Ferdium.setBadge(allMessages); + // All unread messages + const unreadAll = getUnreadCount('top_left_all_messages'); + + // Private messages + const unreadPrivate = getUnreadCount('top_left_private_messages'); + + // @ Mentions messages + const unreadMentions = getUnreadCount('top_left_mentions'); + + const directMessages = unreadPrivate + unreadMentions; + const indirectMessages = unreadAll - directMessages; + + Ferdium.setBadge(directMessages, indirectMessages); }; Ferdium.loop(getMessages); + + function getUnreadCount(eltClassName) { + const elt = document.querySelectorAll(`#global_filters .${eltClassName} .unread_count`)[0]; + return elt == null ? 0 : Ferdium.safeParseInt(elt.textContent); + } }; -- cgit v1.2.3-70-g09d2