From 6f5e4a00588aefdda7a5a1cfe70935870e7e234a Mon Sep 17 00:00:00 2001 From: Bennett Date: Tue, 22 Sep 2020 20:56:48 +0200 Subject: Unpack recipes and update recipes icons (#292) Co-authored-by: Amine Mouafik --- recipes/whatsapp/webview.js | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 recipes/whatsapp/webview.js (limited to 'recipes/whatsapp/webview.js') diff --git a/recipes/whatsapp/webview.js b/recipes/whatsapp/webview.js new file mode 100644 index 0000000..263c543 --- /dev/null +++ b/recipes/whatsapp/webview.js @@ -0,0 +1,51 @@ +"use strict"; + +const { + remote +} = require('electron'); + +const path = require('path'); + +const webContents = remote.getCurrentWebContents(); +const { + session +} = webContents; +window.addEventListener('beforeunload', async () => { + try { + session.flushStorageData(); + session.clearStorageData({ + storages: ['appcache', 'serviceworkers', 'cachestorage', 'websql', 'indexdb'] + }); + const registrations = await window.navigator.serviceWorker.getRegistrations(); + registrations.forEach(r => { + r.unregister(); + console.log('ServiceWorker unregistered'); + }); + } catch (err) { + console.err(err); + } +}); + +module.exports = Franz => { + const getMessages = function getMessages() { + const elements = document.querySelectorAll("[class=_31gEB]"); + var count = 0; + var indirectCount = 0; + + for (var i = 0; i < elements.length; i += 1) { + var countValue = parseInt(elements[i].textContent || '0', 10); + + if (elements[i].parentNode.previousElementSibling === null || elements[i].parentNode.previousElementSibling.querySelectorAll("[data-icon=muted]").length === 0) { + count += countValue; + } + else { + indirectCount += countValue; + } + } + + Franz.setBadge(count, indirectCount); + }; + + Franz.injectCSS(path.join(__dirname, 'service.css')); + Franz.loop(getMessages); +}; -- cgit v1.2.3-70-g09d2