NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Respawn Notif // @namespace http://www.jeuxvideo.com/ // @version 2 // @description Get notification in-live from JVC // @author Craftbukkit // @match http://www.jeuxvideo.com/* // @match https://www.jeuxvideo.com/* // @require https://code.jquery.com/jquery-1.11.3.min.js // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function() { 'use strict'; var hashJVC; var iAmTheMaster = false; var idMaster = Math.random(); var alreadySeen = new Array(); var parseNotification = function(data) { var leData = data.html.split('//').join(); if(leData.length >= 10) { var nbLength = leData.split('<a href="').length; for(var i = 1; i < nbLength; i++) { var urlData = leData.split('<a href="')[i].split('"')[0].split(",").join(""); var idNotif = leData.split('data-id="')[i].split('"')[0]; var titreData = leData.split('modal-notif-item-label">')[i].split('</a>')[0].split('<!--').join("").split('-->').join('').split('Forums - ').join('').trim(); if(alreadySeen[urlData] != true) { alreadySeen[urlData] = true; if(urlData.indexOf("messages") != "-1") { var authorMP = leData.split('data-id="')[i].split('modal-notif-author">')[1].split('<')[0].trim(); var notif = new Notification("MP de "+authorMP, {body:titreData,icon:'http://megaicons.net/static/img/icons_sizes/8/178/512/buzz-message-outline-icon.png'}); urlData = "www.jeuxvideo.com/"+urlData; urlData = urlData.split("&").join("&"); } else { var notif = new Notification("TOPIC | "+titreData, {body:'Nouveau(x) message(s)',icon:'http://www.jeuxvideo.com/img/forums/topic-dossier1.png'}); } notif.hashJVC = hashJVC; notif.idNotif = idNotif; notif.urlData = urlData; notif.onclick = function(){$.get("http://www.jeuxvideo.com/abonnements/ajax/set_notification_lu.php?ajax_hash="+this.hashJVC+"&id_notification="+this.idNotif,function(data){});window.open("http://"+this.urlData);}; } } } }; (function checkIfMaster(){ var date = new Date(); var timestamp = date.getTime(); if(GM_getValue("master") == undefined) { GM_setValue("master", idMaster); GM_setValue("mastertime", timestamp); iAmTheMaster = true; } else if(GM_getValue("master") == idMaster) { iAmTheMaster = true; GM_setValue("mastertime", timestamp); } else { if(Math.floor((timestamp-GM_getValue("mastertime"))/1000) >= 7) { iAmTheMaster = true; GM_setValue("master", idMaster); GM_setValue("mastertime", timestamp); } else { iAmTheMaster = false; } } setTimeout(checkIfMaster, 5000); })(); // Cimer Mozilla pour la doc sur les notif (function askPourLaNotif() { if (Notification.permission !== 'denied') { Notification.requestPermission(function (permission) { if(!('permission' in Notification)) { Notification.permission = permission; } }); } })(); (function getHash() { hashJVC = document.body.dataset.aboSession; })(); (function checkIfNotif() { if(hashJVC != undefined && iAmTheMaster) { $.get("http://www.jeuxvideo.com/abonnements/ajax/list_notification_header.php?ajax_hash="+hashJVC, function(data){ parseNotification(data); }); } setTimeout(checkIfNotif, 5000); })(); })();