From 40c192c65045200ff813680d7ff4133eebd56052 Mon Sep 17 00:00:00 2001 From: Feiko Joosten Date: Tue, 21 Apr 2020 20:09:20 +0200 Subject: Adds support for indirect messages in Discord (#122) - Adds support for indirect messages - Fixes an issue where notifications are no longer detected Known issues: - Doesn't properly work when hovering over a guild. - Doesn't properly keep muted guilds, while its opened in mind. --- uncompressed/discord/webview.js | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'uncompressed/discord/webview.js') diff --git a/uncompressed/discord/webview.js b/uncompressed/discord/webview.js index 2a204dc..bcc8904 100644 --- a/uncompressed/discord/webview.js +++ b/uncompressed/discord/webview.js @@ -11,23 +11,23 @@ module.exports = Franz => { ]; const getMessages = function getMessages() { - // Get direct messages - let direct = 0; - - document.querySelectorAll('[class^="numberBadge-2s8kKX"]').forEach((directElement) => { - direct = direct + parseInt(directElement.innerHTML); - }); - - // Get indirect messages - let indirect = 0; - - document.querySelectorAll('link[rel="icon"]').forEach((linkElement) => { - if(iconValues.indexOf(linkElement.getAttribute('href')) !== -1) { - indirect = 1; - } - }); - - // Set badge + const direct = document.querySelector('[class*="guilds-"]').querySelectorAll('[class^="numberBadge-"]').length; + + var indirect = 0; + var guilds = document.querySelector("[data-ref-id=guildsnav]"); + if(guilds != null) { + var channelPills = [].slice.call(guilds.querySelectorAll("[class*=item-2hkk8m]")); + indirect += channelPills.filter(y => y.clientHeight == 8).length; + + var activeWindow = channelPills.find(y => y.clientHeight == 40); + if(activeWindow != null) { + var unreadChannels = document.querySelector("[class*=modeUnread]"); + + if(unreadChannels != null) + indirect++; + } + } + Franz.setBadge(direct, indirect); }; -- cgit v1.2.3-70-g09d2