Adds unread notifications count in the tab title
当前为
// ==UserScript==
// @name Twitter - adds unread notifications count in the tab title
// @author darkred
// @description Adds unread notifications count in the tab title
// @include https://twitter.com/*
// @version 3
// @grant none
// @require https://greasyfork.org/scripts/21927-arrive-js/code/arrivejs.js?version=139586
// @namespace rikkie
// ==/UserScript==
var counter;
function addCounterInTitle(){
counter = parseInt(document.querySelector('.count-inner').innerHTML);
if (counter > 0 && document.title.indexOf('|') === -1) {
document.title = counter + ' | ' + document.title;
} else if (counter === 0) {
document.title = /[0-9]*\\|(.*)/g.exec(document.title)[1];
}
}
document.arrive('div.js-account-summary:nth-child(1) > div:nth-child(2) > a:nth-child(1) > img:nth-child(1)', function() { // 'the 1st avatar thumbnail in the "Who to follow" panel'
addCounterInTitle();
});
document.arrive('.new-tweets-bar', function(){ // Whenever there are new unread tweets in the timeline
// alert('aLLAKSE');
var target = document.querySelector('.new-tweets-bar');
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) { // Disconnect the observer on the 1st mutation
observer.disconnect();
});
});
addCounterInTitle();
var config = {
attributes: true,
// childList: true,
// characterData: true,
// subtree: true
// attributeOldValue: true,
attributeFilter: ['data-item-count'], // this is required in order to count only mutations of the unread posts number --> document.querySelector('.new-tweets-bar').getAttribute('data-item-count')
};
observer.observe(target, config);
});
document.leave('.new-tweets-bar', function(){
addCounterInTitle();
});
// Reset the counter when viewing Notifications tab
document.arrive('#timeline', function(){
document.querySelector('.count-inner').innerHTML = 0;
document.title = /[0-9]*\\|(.*)/g.exec(document.title)[1];
});
// When there's change in the Notifications counter
// var target2 = document.querySelector('.count-inner');
var target2 = document.querySelector('.count');
var observer2 = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
// alert('egine');
observer2.disconnect();
});
});
addCounterInTitle();
var config2 = {
attributes: true,
// characterData: true,
};
observer2.observe(target2, config2);