aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/android-messages/webview.js
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/android-messages/webview.js')
-rw-r--r--recipes/android-messages/webview.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/recipes/android-messages/webview.js b/recipes/android-messages/webview.js
new file mode 100644
index 0000000..7c8e004
--- /dev/null
+++ b/recipes/android-messages/webview.js
@@ -0,0 +1,47 @@
1"use strict";
2
3const {
4 remote
5} = require('electron');
6
7const webContents = remote.getCurrentWebContents();
8const {
9 session
10} = webContents;
11setTimeout(() => {
12 const elem = document.querySelector('#af-error-container');
13
14 if (elem && elem.innerText.toLowerCase().includes('the requested url was not found on this server')) {
15 window.location.reload();
16 }
17}, 1000);
18window.addEventListener('beforeunload', async () => {
19 try {
20 session.flushStorageData();
21 session.clearStorageData({
22 storages: ['appcache', 'serviceworkers', 'cachestorage', 'websql', 'indexdb']
23 });
24 const registrations = await window.navigator.serviceWorker.getRegistrations();
25 registrations.forEach(r => {
26 r.unregister();
27 console.log('ServiceWorker unregistered');
28 });
29 } catch (err) {
30 console.err(err);
31 }
32});
33
34module.exports = (Franz, settings) => {
35 function getMessages() {
36 const messages = document.querySelectorAll('.text-content.unread').length;
37 Franz.setBadge(messages);
38 }
39
40 if (settings.isDarkModeEnabled) {
41 localStorage.setItem('dark_mode_enabled', 'true');
42 } else {
43 localStorage.setItem('dark_mode_enabled', 'false');
44 }
45
46 Franz.loop(getMessages);
47}; \ No newline at end of file