// ==UserScript==
// @name Zeit Newsticker Autoupdate
// @namespace http://tampermonkey.net/
// @version 1.1b
// @match http://www.zeit.de/news/index*
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_log
// @description Dieses Skript ist zum filtrieren und hervorheben von Schlagzeilen vom Zeit.de Newsticker (zeit.de/news/index)
// ==/UserScript==
(function() {
'use strict';
var filter = GM_getValue('zeit_filter', [
"Sport",
"sport",
"Biathlon",
"hockey",
"ball",
"Ski",
"athletik",
"Film",
"Rodeln",
"Golf",
"Freizeit",
"Tennis",
"Champions League"
]);
var highlight = GM_getValue('zeit_highlight', [
'International',
'Konflikte',
'Regierung',
'Ukraine',
'ukraine',
'UNO',
'Verfassung',
'USA',
'Russland',
'Frankreich',
'Finanzen',
'Europa',
'Großbritanien',
'Börsen',
'Milit#r',
]);
window.document.styleSheets[0].addRule('textarea::-webkit-scrollbar', 'display:none;', 0 ); //scrollbar wegmachen
var articles = document.querySelectorAll('article');
var kicker='';
var intervall = 10; //minuten
var zeile='';
var header = document.querySelector('.centerpage-header');
var title = document.querySelector('.centerpage-header__title');
var textarea = document.createElement('textarea');
textarea.style.display = 'none';
textarea.style.backgroundColor = '#d4d4d4';
textarea.style.top = '110px';
textarea.style.height = '70%';
textarea.style.width = '33%';
textarea.style.outline = 'none';
textarea.style.resize = 'none';
textarea.style.position = 'absolute';
textarea.style.opacity = '0';
textarea.style.border = 'none';
textarea.style.transition = 'opacity .5s ease';
textarea.setAttribute('spellcheck','false');
var filter_text = textarea.cloneNode();
var highlight_text = textarea.cloneNode();
filter_text.value = filter.join('\n');
filter_text.style.left = '15%';
highlight_text.style.backgroundColor = 'rgb(255, 255, 198)';
highlight_text.value = highlight.join('\n');
highlight_text.style.right = '15%';
var show_textareas = function(){
filter_text.style.display = 'inline-block',
highlight_text.style.display = 'inline-block';
setTimeout( function(){
filter_text.style.opacity = '1';
highlight_text.style.opacity = '1';
}, 600 );
};
var hide_textareas = function(){
filter_text.style.opacity = '0';
filter_text.style.display = 'none';
highlight_text.style.opacity = '0';
highlight_text.style.display = 'none';
};
filter_text.onchange = function(){
GM_setValue( 'zeit_filter',
filter = filter_text.value.split('\n').filter(v=>v.length).map(v=>v.replace(/\s*$/,'')) );
apply();
};
highlight_text.onchange = function(){
GM_setValue( 'zeit_highlight',
highlight = highlight_text.value.split('\n').filter(v=>v.length).map(v=>v.replace(/\s*$/,'')) );
apply();
};
header.appendChild(filter_text);
header.appendChild(highlight_text);
header.style.height = '132px';
header.style.transition = 'height 0.5s ease';
title.onmouseover = (e)=>header.style.color = 'gray';
title.onmouseleave = (e)=>header.style.color = 'black';
title.innerText = 'Aktuelle Nachrichten ▼';
title.onclick = function(){
if( header.style.height == '500px' )
header.style.height = '132px', title.innerText = 'Aktuelle Nachrichten ▼', hide_textareas();
else
header.style.height = '500px', title.innerText = 'Aktuelle Nachrichten ▲', show_textareas();
};
var apply = function(){
for(var x of articles){ console.log('apply');
x.style.backgroundColor = ''; //reset
x.style.display = ''; //reset
kicker = x.querySelector('.newsteaser__kicker').innerText;
zeile = x.querySelector('.newsteaser__title').innerText;
for(var y of highlight)
if( kicker.includes(y) ){
x.style.backgroundColor = '#ffff8e';
break;
}
for(var y of filter)
if( kicker.includes(y) ){
x.style.display = 'none';
break;
}
}
};
apply();
setTimeout(function(){ location.reload(); },intervall*60*1000);
})();