diff options
Diffstat (limited to 'recipes/messenger')
-rw-r--r-- | recipes/messenger/package.json | 2 | ||||
-rw-r--r-- | recipes/messenger/webview.js | 30 |
2 files changed, 28 insertions, 4 deletions
diff --git a/recipes/messenger/package.json b/recipes/messenger/package.json index b26d37d..5d93f07 100644 --- a/recipes/messenger/package.json +++ b/recipes/messenger/package.json | |||
@@ -1,7 +1,7 @@ | |||
1 | { | 1 | { |
2 | "id": "messenger", | 2 | "id": "messenger", |
3 | "name": "Messenger", | 3 | "name": "Messenger", |
4 | "version": "1.1.0", | 4 | "version": "1.1.1", |
5 | "description": "Facebook Messenger", | 5 | "description": "Facebook Messenger", |
6 | "main": "index.js", | 6 | "main": "index.js", |
7 | "author": "Stefan Malzner <stefan@adlk.io>", | 7 | "author": "Stefan Malzner <stefan@adlk.io>", |
diff --git a/recipes/messenger/webview.js b/recipes/messenger/webview.js index ba7ae31..4efdf8c 100644 --- a/recipes/messenger/webview.js +++ b/recipes/messenger/webview.js | |||
@@ -2,9 +2,33 @@ | |||
2 | 2 | ||
3 | module.exports = Franz => { | 3 | module.exports = Franz => { |
4 | const getMessages = function getMessages() { | 4 | const getMessages = function getMessages() { |
5 | let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length; | 5 | let count = 0 |
6 | const messageRequestsElement = document.querySelector('._5nxf'); | 6 | |
7 | let isNotification = /^\((\d+)\)/.test(document.title); | ||
7 | 8 | ||
9 | /* | ||
10 | * Notification case for group chats, workaround by tamas646 | ||
11 | * see https://github.com/getferdi/ferdi/issues/1113#issuecomment-783409154 | ||
12 | */ | ||
13 | if (isNotification) { | ||
14 | count = parseInt(/^\((\d+)\)/.exec(document.title)[1]); | ||
15 | } else { | ||
16 | /* | ||
17 | * Notification case for direct messages, workaround by manavortex | ||
18 | * see https://github.com/getferdi/ferdi/issues/1113#issuecomment-846611765 | ||
19 | */ | ||
20 | count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length; | ||
21 | if (0 === count) { | ||
22 | count = document.querySelectorAll('.pq6dq46d.is6700om.qu0x051f.esr5mh6w.e9989ue4.r7d6kgcz.s45kfl79.emlxlaya.bkmhp75w.spb7xbtv.cyypbtt7.fwizqjfa').length; | ||
23 | } | ||
24 | if (0 === count) { // might be obsolete, not sure - never ran into this case | ||
25 | count = document.querySelectorAll('[aria-label="Mark as read"]').length; | ||
26 | } | ||
27 | } | ||
28 | /* | ||
29 | * add count of message requests on top of notification counter | ||
30 | */ | ||
31 | const messageRequestsElement = document.querySelector('._5nxf'); | ||
8 | if (messageRequestsElement) { | 32 | if (messageRequestsElement) { |
9 | count += parseInt(messageRequestsElement.innerHTML, 10); | 33 | count += parseInt(messageRequestsElement.innerHTML, 10); |
10 | } | 34 | } |
@@ -31,4 +55,4 @@ module.exports = Franz => { | |||
31 | return notification; | 55 | return notification; |
32 | }); | 56 | }); |
33 | } | 57 | } |
34 | }; \ No newline at end of file | 58 | }; |