Added Greasemonkey script for Google+
This commit is contained in:
parent
a9cbc11984
commit
7e7a6eb86a
1 changed files with 72 additions and 0 deletions
72
googleplus-notification.user.js
Normal file
72
googleplus-notification.user.js
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
// ==UserScript==
|
||||||
|
// @name Google+ desktop notification
|
||||||
|
// @namespace https://www.schtobia.de/
|
||||||
|
// @version 0.1.0
|
||||||
|
// @description Google+ desktop notification (based on HTML5)
|
||||||
|
// @include http*://plus.google.com/*
|
||||||
|
// @include http*://encrypted.google.com/*
|
||||||
|
// @include http*://google.com/*
|
||||||
|
// @grant GM_getValue
|
||||||
|
// @run-at document-end
|
||||||
|
// @downloadURL https://github.com/schtobia/greasemonkey/raw/master/googleplus-notification.user.js
|
||||||
|
// @updateURL https://github.com/schtobia/greasemonkey/raw/master/googleplus-notification.user.js
|
||||||
|
// ==/UserScript==
|
||||||
|
//
|
||||||
|
|
||||||
|
var Notification = window.Notification || window.mozNotification || window.webkitNotification;
|
||||||
|
|
||||||
|
var notificationsElement = document.getElementsByClassName("gb_Fa")[0];
|
||||||
|
var newNotifications = 0;
|
||||||
|
|
||||||
|
var lastNotifications = 0;
|
||||||
|
var notificationInstance = null;
|
||||||
|
|
||||||
|
var timeout = GM_getValue("timeout", 10000);
|
||||||
|
|
||||||
|
var intervalID = null;
|
||||||
|
|
||||||
|
notify = function()
|
||||||
|
{
|
||||||
|
newNotifications = notificationsElement.innerHTML;
|
||||||
|
|
||||||
|
if (newNotifications > lastNotifications )
|
||||||
|
{
|
||||||
|
var msg = (newNotifications - lastNotifications) + " new Notification(s)";
|
||||||
|
|
||||||
|
console.log(GM_info.script.name + ": Trying to set notification...", msg);
|
||||||
|
|
||||||
|
notificationInstance = new Notification("Google+ (" + newNotifications + ')',
|
||||||
|
{
|
||||||
|
"dir" : "auto",
|
||||||
|
"body" : msg,
|
||||||
|
"icon" : "https://ssl.gstatic.com/s2/oz/images/faviconr3.ico"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
lastNotifications = newNotifications;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
registerNotification = function()
|
||||||
|
{
|
||||||
|
Notification.requestPermission(function(grantedPermission){
|
||||||
|
if (grantedPermission === "granted")
|
||||||
|
{
|
||||||
|
console.log(GM_info.script.name + ": permission granted");
|
||||||
|
intervalID = setInterval(notify, timeout);
|
||||||
|
console.log(GM_info.script.name + ": intervalID: " + intervalID);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
console.log(GM_info.script.name + ": permission NOT granted");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Normal flow of operations below! */
|
||||||
|
if (!Notification)
|
||||||
|
{
|
||||||
|
alert("Notifications are not supported for this browser version yet.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
registerNotification();
|
Loading…
Reference in a new issue