您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Additional notifications count just for mentions.
当前为
// ==UserScript== // @name Gab.ai Mentions Notifications // @namespace https://www.ekkooff.com/ // @version 1.1 // @description Additional notifications count just for mentions. // @author Kevin Roberts (@echo) // @match https://gab.ai/* // @grant none // ==/UserScript== (function() { 'use strict'; var init = function () { if(!window.hasOwnProperty('$')||!window.hasOwnProperty('Pusher')) { setTimeout(init,500); return; } var mentions = $('<span id="notificationmentions" style="background:#55aa22;left:120px;" class="hidden">0</span>'); var reset = function() { mentions.text('0'); mentions.addClass('hidden'); }; var oldXHR = window.XMLHttpRequest; function newXHR() { var realXHR = new oldXHR(); realXHR.addEventListener("readystatechange", function() { if(realXHR.readyState==4 && realXHR.status==200){ if(realXHR.responseURL.startsWith('https://gab.ai/api/notifications')) { reset(); } } }, false); return realXHR; } window.XMLHttpRequest = newXHR; var timeout; var times = 0; var bind = function() { if(Pusher.instances[0]===undefined) { times++; if(times <= 3) { timeout = setTimeout(bind, 500); } else { console.log('Could not bind to notifications, giving up.'); } } Pusher.instances[0].bind_all(function(eventName,data) { console.log(data.message); if(data.message && data.message.endsWith("mentioned you in a post.")) { if($('#notificationmentions').length===0) { $('.notification-count').append(mentions); } var count = parseInt(mentions.text()); count++; mentions.text(count); mentions.removeClass('hidden'); } }); }; timeout = setTimeout(bind, 500); }; window.addEventListener('load',init,false); })();