aboutsummaryrefslogtreecommitdiffstats
path: root/uncompressed/hangoutschat/webview.js
diff options
context:
space:
mode:
Diffstat (limited to 'uncompressed/hangoutschat/webview.js')
-rw-r--r--uncompressed/hangoutschat/webview.js24
1 files changed, 15 insertions, 9 deletions
diff --git a/uncompressed/hangoutschat/webview.js b/uncompressed/hangoutschat/webview.js
index 2af9e03..27a2016 100644
--- a/uncompressed/hangoutschat/webview.js
+++ b/uncompressed/hangoutschat/webview.js
@@ -1,13 +1,10 @@
1'use strict'; 1"use strict";
2 2
3module.exports = Franz => { 3module.exports = Franz => {
4 const getMessages = function getMessages() { 4 const getMessages = function getMessages() {
5 const muteSelector = '.DQy0Rb'; 5 const muteSelector = '.DQy0Rb';
6
7 // get unread messages
8 let directCount = 0; 6 let directCount = 0;
9 document.querySelectorAll('.eM5l9e.FVKzAb').forEach(node => { 7 document.querySelectorAll('.eM5l9e.FVKzAb').forEach(node => {
10 // Hangouts Chat overrides the muted indicator when there is a direct mention
11 if (!node.closest('content[role="listitem"]').querySelector(muteSelector)) { 8 if (!node.closest('content[role="listitem"]').querySelector(muteSelector)) {
12 directCount += 1; 9 directCount += 1;
13 } 10 }
@@ -19,12 +16,21 @@ module.exports = Franz => {
19 } 16 }
20 }); 17 });
21 indirectCount -= directCount; 18 indirectCount -= directCount;
22
23 // set Franz badge
24 Franz.setBadge(directCount, indirectCount); 19 Franz.setBadge(directCount, indirectCount);
25 }; 20 };
26 21
27 // check for new messages every second and update Franz badge 22 document.addEventListener('click', e => {
23 const {
24 tagName,
25 target,
26 href
27 } = e.target;
28
29 if (tagName === 'A' && target === '_blank') {
30 e.preventDefault();
31 e.stopImmediatePropagation();
32 window.open(href);
33 }
34 });
28 Franz.loop(getMessages); 35 Franz.loop(getMessages);
29}; 36}; \ No newline at end of file
30//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhhbmdvdXRzY2hhdC93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwibXV0ZVNlbGVjdG9yIiwiZGlyZWN0Q291bnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwibm9kZSIsImNsb3Nlc3QiLCJxdWVyeVNlbGVjdG9yIiwiaW5kaXJlY3RDb3VudCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxlQUFlLFNBQXJCOztBQUVBO0FBQ0EsUUFBSUMsY0FBYyxDQUFsQjtBQUNBQyxhQUFTQyxnQkFBVCxDQUEwQixnQkFBMUIsRUFBNENDLE9BQTVDLENBQXFEQyxJQUFELElBQVU7QUFDNUQ7QUFDQSxVQUFJLENBQUNBLEtBQUtDLE9BQUwsQ0FBYSwwQkFBYixFQUF5Q0MsYUFBekMsQ0FBdURQLFlBQXZELENBQUwsRUFBMkU7QUFDekVDLHVCQUFlLENBQWY7QUFDRDtBQUNGLEtBTEQ7QUFNQSxRQUFJTyxnQkFBZ0IsQ0FBcEI7QUFDQU4sYUFBU0MsZ0JBQVQsQ0FBMEIsdUJBQTFCLEVBQW1EQyxPQUFuRCxDQUE0REMsSUFBRCxJQUFVO0FBQ25FLFVBQUksQ0FBQ0EsS0FBS0MsT0FBTCxDQUFhLDBCQUFiLEVBQXlDQyxhQUF6QyxDQUF1RFAsWUFBdkQsQ0FBTCxFQUEyRTtBQUN6RVEsd0JBQWdCLENBQUMsQ0FBakI7QUFDRDtBQUNGLEtBSkQ7QUFLQUEscUJBQWlCUCxXQUFqQjs7QUFFQTtBQUNBSCxVQUFNVyxRQUFOLENBQWVSLFdBQWYsRUFBNEJPLGFBQTVCO0FBQ0QsR0FyQkQ7O0FBdUJBO0FBQ0FWLFFBQU1ZLElBQU4sQ0FBV1gsV0FBWDtBQUNELENBMUJEIiwiZmlsZSI6ImhhbmdvdXRzY2hhdC93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCBtdXRlU2VsZWN0b3IgPSAnLkRReTBSYic7XG5cbiAgICAvLyBnZXQgdW5yZWFkIG1lc3NhZ2VzXG4gICAgbGV0IGRpcmVjdENvdW50ID0gMDtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZU01bDllLkZWS3pBYicpLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIC8vIEhhbmdvdXRzIENoYXQgb3ZlcnJpZGVzIHRoZSBtdXRlZCBpbmRpY2F0b3Igd2hlbiB0aGVyZSBpcyBhIGRpcmVjdCBtZW50aW9uXG4gICAgICBpZiAoIW5vZGUuY2xvc2VzdCgnY29udGVudFtyb2xlPVwibGlzdGl0ZW1cIl0nKS5xdWVyeVNlbGVjdG9yKG11dGVTZWxlY3RvcikpIHtcbiAgICAgICAgZGlyZWN0Q291bnQgKz0gMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBsZXQgaW5kaXJlY3RDb3VudCA9IDA7XG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLlBMNVd3ZS5IN2R1MiAudDVGNW5mJykuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKCFub2RlLmNsb3Nlc3QoJ2NvbnRlbnRbcm9sZT1cImxpc3RpdGVtXCJdJykucXVlcnlTZWxlY3RvcihtdXRlU2VsZWN0b3IpKSB7XG4gICAgICAgIGluZGlyZWN0Q291bnQgPSArMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpbmRpcmVjdENvdW50IC09IGRpcmVjdENvdW50O1xuXG4gICAgLy8gc2V0IEZyYW56IGJhZGdlXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0Q291bnQsIGluZGlyZWN0Q291bnQpO1xuICB9O1xuXG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file