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/package.json | 4 ++-- uncompressed/discord/webview.js | 34 +++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) (limited to 'uncompressed') diff --git a/uncompressed/discord/package.json b/uncompressed/discord/package.json index 76b680d..59a14d2 100644 --- a/uncompressed/discord/package.json +++ b/uncompressed/discord/package.json @@ -1,7 +1,7 @@ { "id": "discord", "name": "Discord", - "version": "1.1.1", + "version": "1.1.2", "description": "Discord", "main": "index.js", "author": "Stefan Malzner ", @@ -12,7 +12,7 @@ "popup": [], "hasNotificationSound": true, "hasDirectMessages": true, - "hasIndirectMessages": false, + "hasIndirectMessages": true, "hasTeamID": false, "hasPredefinedUrl": true, "hasCustomUrl": false, 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