Added facebook-notification script
This commit is contained in:
parent
931a854635
commit
c1accfebe2
1 changed files with 90 additions and 0 deletions
90
facebook-notification.user.js
Normal file
90
facebook-notification.user.js
Normal file
|
@ -0,0 +1,90 @@
|
|||
// ==UserScript==
|
||||
// @name Facebook desktop notification
|
||||
// @namespace https://www.schtobia.de/
|
||||
// @version 0.0.5
|
||||
// @description Facebook desktop notification (based on HTML5)
|
||||
// @include http*://www.facebook.com/*
|
||||
// @include http*://facebook.com/*
|
||||
// @grant GM_getValue
|
||||
// @run-at document-end
|
||||
// @downloadURL https://github.com/schtobia/greasemonkey/raw/master/facebook-notification.user.js
|
||||
// @updateURL https://github.com/schtobia/greasemonkey/raw/master/facebook-notification.user.js
|
||||
// ==/UserScript==
|
||||
//
|
||||
|
||||
var Notification = window.Notification || window.mozNotification || window.webkitNotification;
|
||||
|
||||
var friendRequestsElement = document.getElementById("requestsCountValue");
|
||||
var messagesElement = document.getElementById("mercurymessagesCountValue");
|
||||
var notificationsElement = document.getElementById("notificationsCountValue");
|
||||
var newFriendRequests = 0;
|
||||
var newMessages = 0;
|
||||
var newNotifications = 0;
|
||||
|
||||
var lastFriendRequests = 0;
|
||||
var lastMessages = 0;
|
||||
var lastNotifications = 0;
|
||||
var notificationInstance = null;
|
||||
|
||||
var timeout = GM_getValue("timeout", 30000);
|
||||
|
||||
notify = function()
|
||||
{
|
||||
newFriendRequests = friendRequestsElement.innerHTML;
|
||||
newMessages = messagesElement.innerHTML;
|
||||
newNotifications = notificationsElement.innerHTML;
|
||||
|
||||
if (newFriendRequests > lastFriendRequests || newMessages > lastMessages || newNotifications > lastNotifications )
|
||||
{
|
||||
var msg= " ";
|
||||
|
||||
if (newFriendRequests > lastFriendRequests)
|
||||
msg=msg+"| "+(newFriendRequests-lastFriendRequests)+" new Friend Request(s) |";
|
||||
|
||||
if (newMessages>lastMessages)
|
||||
msg=msg+"| "+(newMessages-lastMessages)+" new Message(s) |";
|
||||
|
||||
if (newNotifications>lastNotifications)
|
||||
msg=msg+"| "+(newNotifications-lastNotifications)+" new Notification(s) |";
|
||||
|
||||
notificationInstance = new Notification("Facebook (" + newFriendRequests + '|' + newMessages + '|' + newNotifications + ')',
|
||||
{
|
||||
"dir" : "auto",
|
||||
"body" : msg,
|
||||
"icon" : 'https://s-static.ak.facebook.com/rsrc.php/yi/r/q9U99v3_saj.ico',
|
||||
}
|
||||
)
|
||||
|
||||
lastFriendRequests = newFriendRequests;
|
||||
lastMessages = newMessages;
|
||||
lastNotifications = newNotifications;
|
||||
}
|
||||
}
|
||||
|
||||
registerNotification = function()
|
||||
{
|
||||
var registrationSuccessful = false;
|
||||
Notification.requestPermission(function(grantedPermission){
|
||||
if (grantedPermission === "granted")
|
||||
{
|
||||
registrationSuccessful = true;
|
||||
console.log("permission granted");
|
||||
}
|
||||
else
|
||||
{
|
||||
registrationSuccessful = false;
|
||||
console.log("permission NOT granted");
|
||||
}
|
||||
});
|
||||
|
||||
if (registrationSuccessful)
|
||||
setTimeout(notify, timeout);
|
||||
}
|
||||
|
||||
/* 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