Utilizator:Strainu/trending article.js
Notă: După salvare, trebuie să treceți peste cache-ul browser-ului pentru a vedea modificările.
- Mozilla, Google Chrome, Safari, Konqueror: țineți apăsat Shift în timp ce apăsați butonul Reload (sau apăsați Ctrl-Shift-R).
- Internet Explorer: apăsați Ctrl-F5.
- Opera: apăsați F5.
var yesterday = new Date();
var daysOffset = 1;
//TODO only working in Eastern hemisphere
if (yesterday.getUTCHours() > yesterday.getHours()) {
daysOffset = 2;
}
yesterday.setDate(yesterday.getDate() - daysOffset);
var date = yesterday.getFullYear() + '/' +
('0' + (yesterday.getMonth()+1)).slice(-2) + '/' +
('0' + yesterday.getDate()).slice(-2);
var storageKey = "trendingArticle" + date;
var expiry = 24 * 60 * 60;
displayArticle = function(article) {
if (article !== null) {
var siteNotice = document.getElementById('siteNotice');
var text = '<div style="text-align:center;">Articol foarte vizitat care ar merita editat sau urmărit: <a href="https://ro.wikipedia.org/wiki/' + article + '" title="' + article + '">' + article.replaceAll('_', ' ') + '</a>.</div>';
siteNotice.innerHTML = siteNotice.innerHTML + text;
}
}
chooseArticle = function(data) {
var blacklist = [
'Pagina_principală',
'Main_Page',
'Special:Căutare',
'Special:Search',
'Superbet'
];
if ('blacklist' in window.trendingArticlePrefs) {
blacklist = window.trendingArticlePrefs.blacklist;
}
var targetProject = 'ro.wikipedia';
if ('project' in window.trendingArticlePrefs) {
targetProject = window.trendingArticlePrefs.project;
}
var choice = 'first';
if ('choice' in window.trendingArticlePrefs) {
choice = window.trendingArticlePrefs.choice;
}
var article = null;
for (var article_no in data.items[0].articles) {
var name = data.items[0].articles[article_no].article;
var project = data.items[0].articles[article_no].project;
//alert(name);
if (blacklist.includes(name)) {
//alert(blacklist)
continue;
}
if (project !== targetProject) {
continue;
}
article = name;
if (choice == 'first') {
break;
}
}
return article;
}
pageviewsCallback = function(data) {
article = chooseArticle(data);
displayArticle(article);
mw.storage.setObject( storageKey, data, expiry );
}
var storage = mw.storage.getObject( storageKey );
if (storage === null || storage === false) {
var pageviewsUrl = '//wikimedia.org/api/rest_v1/metrics/pageviews/top-per-country/RO/all-access/' + date;
console.log('Retrieving pageviews from ' + pageviewsUrl);
$.getJSON(pageviewsUrl, pageviewsCallback);
} else {
console.log('Retrieving pageviews from local storage key ' + storageKey);
article = chooseArticle(storage);
displayArticle(article);
}