aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/campuswire/webview.js
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/campuswire/webview.js')
-rw-r--r--recipes/campuswire/webview.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/recipes/campuswire/webview.js b/recipes/campuswire/webview.js
new file mode 100644
index 0000000..f52fa46
--- /dev/null
+++ b/recipes/campuswire/webview.js
@@ -0,0 +1,34 @@
1"use strict";
2
3module.exports = Franz => {
4 const getMessages = function getMessages() {
5 let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length;
6 const messageRequestsElement = document.querySelector('._5nxf');
7
8 if (messageRequestsElement) {
9 count += parseInt(messageRequestsElement.innerHTML, 10);
10 }
11
12 Franz.setBadge(count);
13 };
14
15 Franz.loop(getMessages);
16 localStorage.setItem('_cs_desktopNotifsEnabled', JSON.stringify({
17 __t: new Date().getTime(),
18 __v: true
19 }));
20
21 if (typeof Franz.onNotify === 'function') {
22 Franz.onNotify(notification => {
23 if (typeof notification.title !== 'string') {
24 notification.title = ((notification.title.props || {}).content || [])[0] || 'Campuswire';
25 }
26
27 if (typeof notification.options.body !== 'string') {
28 notification.options.body = (((notification.options.body || {}).props || {}).content || [])[0] || '';
29 }
30
31 return notification;
32 });
33 }
34};