Wikipedysta:ChP94/scripts/edithysteria.js
Z Wikipedii
Uwaga: po zapisaniu zmian musisz zaktualizować pamięć podręczną (cache) przeglądarki: Mozilla / Firefox: wciśnij Reload (lub CTRL+R), IE / Opera: CTRL+F5, Safari: CMD+R, Konqueror CTRL+R.
// Original version: // - EditHysteria script by [[:pl:User:ChP94]] // - Released under the [http://www.gnu.org/licenses/gpl.txt GNU Public License (GPL)] // Modified by [[:pl:User:Beau]] var eh_span; function eh_checkUserGroup(name) { if (!wgUserGroups) return false; for (var i = 0; i < wgUserGroups.length; i++) { if (name == wgUserGroups[i]) return true; } return false; } function eh_callAPI(query) { var url = wgServer + wgScriptPath + '/api.php?'; for (var field in query) { var value = query[field]; url += '&' + field + '=' + encodeURIComponent(value); } url += '&format=json'; importScriptURI(url); } function eh_init() { if (wgNamespaceNumber < 0) return; var firstHeading; var headers = document.getElementsByTagName("h1"); for(i=0; i<headers.length; i++) { var header = headers[i]; if(header.className == "firstHeading" || header.id == "firstHeading" || header.className == "pagetitle") { firstHeading = header; break; } } if(!firstHeading) firstHeading = document.getElementById("section-0"); if(!firstHeading) return; eh_span = document.createElement("span"); eh_span.id = 'eh_span'; eh_span.style.fontSize = "8pt"; eh_span.style.marginLeft = "10px"; eh_span.style.lineHeight = "1em"; if (skin != 'modern') eh_span.innerHTML = '<br/>'; firstHeading.appendChild(eh_span); eh_callAPI({ action: 'query', prop: 'revisions', rvprop: 'user|ids', rvlimit: 50, callback: 'eh_callback', titles: wgPageName }); } function wikilink(page) { return wgScript + '?title=' + encodeURIComponent(page); } function userlink(name) { var str = '<a href="' + wikilink('User:' + name) + '">' + name + '</a> ' + '(<a href="' + wikilink('Special:Contributions/' + name) + '">wkład</a>, <a href="' + wikilink('User_talk:' + name) + '">dyskusja</a>'; if ( eh_checkUserGroup("sysop") ) str += ', <a href="' + wikilink('Special:Blockip/' + name) + '">zablokuj</a>'; str += ')'; return str; } function eh_callback(data) { page = data.query.pages[wgArticleId]; if (! page) { eh_span.innerHTML += "Strona nie istnieje"; eh_span.style.color = "red"; return; } var topuser = page.revisions[0].user; var ldiff; var luser; var count = 1; for (var i = 1; i < page.revisions.length; i++) { ldiff = page.revisions[i].revid; luser = page.revisions[i].user; if (luser != topuser) break; count++; } if( ldiff ){ eh_span.innerHTML += 'Ostatnio <a href="'+ wgScript + '?title=' + encodeURIComponent(wgPageName) + '&diff=cur&oldid=' + ldiff + '"/>edytowany</a>' + ' przez ' + userlink(topuser) + ' (' + count + 'x).'; if(luser != "" && luser != topuser) { eh_span.innerHTML += ' Wcześniej edytował ' + userlink(luser) + '.'; } } else if(topuser != "") { eh_span.innerHTML += 'To jest jedyna wersja tego artykułu. ' + 'Jej twórcą jest ' + userlink(topuser) + '.'; } if (skin == 'modern') { var links = eh_span.getElementsByTagName('a'); for (var i = 0; i < links.length; i++) { links[i].style.color = 'white'; links[i].style.textDecoration = 'underline'; } } } addOnloadHook(eh_init);