Twitter - adds unread notifications count in the tab title

Adds unread notifications count in the tab title

Fra og med 06.08.2016. Se den nyeste version.

// ==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://greatest.deepsurf.us/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);