User:Thingg/monobook.js
From Wikipedia, the free encyclopedia
If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
// SCRIPT: Twinkle importScript('User:AzaToth/twinkle.js'); TwinkleConfig = { revertMaxRevisions : 50, userTalkPageMode : 'tab', showSharedIPNotice : false, openTalkPage : [ 'agf', 'norm', 'vand' ], openTalkPageOnAutoRevert : false, summaryAd : " ([[WP:TWINKLE|TW]])", deletionSummaryAd : " ([[WP:TWINKLE|TW]])", protectionSummaryAd : " ([[WP:TWINKLE|TW]])", watchSpeedyPages : [], watchProdPages : false, openUserTalkPageOnSpeedyDelete : [ 'g1', 'g2', 'g10', 'g11', 'g12', 'a1', 'a7', 'i3', 'i4', 'i5', 'i6', 'i7', 'u3', 't1' ], markRevertedPagesAsMinor : [ 'agf', 'norm', 'vand', 'torev' ], deleteTalkPageOnDelete : false, watchWarnings : false, watchRevertedPages : [], markAIVReportAsMinor : true, markSpeedyPagesAsMinor : true, offerReasonOnNormalRevert : true, orphanBacklinksOnSpeedyDelete : {orphan:true, exclude:['g6']} }; // SCRIPT: Quick preview importScript('User:CBM/quickpreview.js') // SCRIPT: Admin highlighter importScript('User:Ais523/adminrights.js'); // SCRIPT: Diff since my last edit importScript('Wikipedia:WikiProject User scripts/Scripts/Changes since I last edited'); // SCRIPT: Logs link // from Wikipedia:WikiProject User scripts/Scripts/Logs link addOnloadHook(function () { if ( wgCanonicalNamespace == "Special" ) return; // don't display link for special pages url = wgServer + "/w/index.php?title=Special:Log&page=" + encodeURIComponent(wgPageName); addPortletLink("p-tb", url, "Page logs", "pt-logs"); }); // SCRIPT: NewPagePatrol // copied from User:TheJosh/Scripts/NewPagePatrol.js and tweaked by User:Thingg var npp_http; var npp_enabled; var npp_num_pages; var npp_refresh; var npp_num_idle_req; var npp_curr_idle_req; npp_enabled = false; npp_num_pages = 50; npp_refresh = 5; npp_num_idle_req = 60; var npp_str_no_ajax = "There seems to be a problem using the NewPagePatrol script. Your browser is not supported. God Bless!"; var npp_str_box_title = "New pages"; var npp_str_box_title_updating = "New pages (updating)"; var npp_str_box_title_failed = "New pages (update failed)"; var npp_str_enable = "enable this box"; var npp_str_disable = "disable this box"; addOnloadHook( npp_init ); /* initalise */ function npp_init() { // allow user settings through if (npp_enabled == null) { npp_enabled = false; } if (npp_num_pages == null) { npp_num_pages = 10; } if (npp_refresh == null) { npp_refresh = 5; } if (npp_num_idle_req == null) { npp_num_idle_req = 60; } // A few limits to be nice to the servers if (npp_num_pages > 50) { npp_num_pages = 50; } if (npp_num_pages < 1) { npp_num_pages = 1; } if (npp_refresh < 2) { npp_refresh = 2; } if (npp_num_idle_req > 1000) { npp_num_idle_req = 1000; } if (npp_num_idle_req < 5) { npp_num_idle_req = 5; } // get our cookie if (document.cookie.length > 0) { var c_start = document.cookie.indexOf("npp_show_box="); if (c_start != -1) { c_start = c_start + 13; var c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) { c_end = document.cookie.length; } if (document.cookie.substring(c_start, c_end) == "yes") { npp_enabled = true; } else { npp_enabled = false; } } } // Either make a request or show nothing npp_curr_idle_req = 0; if (npp_enabled == true) { npp_ajax_request(); } else { npp_draw_disabled_box(); } } /* init ajax */ function npp_create_request() { try { npp_http = new XMLHttpRequest(); } catch (e) { try { npp_http = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { npp_http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { return false; } } } npp_http.onreadystatechange = function() { if(npp_http.readyState == 4) npp_ajax_response(); } return true; } /* make a request */ function npp_ajax_request() { // if we have done too many requests, disable the box npp_curr_idle_req++; if (npp_curr_idle_req > npp_num_idle_req) { npp_disable_box(); } // check we are enabled if (npp_enabled == false) return; // firstly, inform the user var cur_box = document.getElementById('p-newpages'); if (cur_box != null) { cur_box.firstChild.firstChild.data = npp_str_box_title_updating; } if (npp_create_request () == false) { if (cur_box != null) { cur_box.firstChild.firstChild.data = npp_str_box_title_failed; } else { alert (npp_str_no_ajax); } } // Then make the request npp_http.open("GET", "/w/api.php?action=query&format=xml&list=recentchanges&rcshow=!bot|!redirect&rctype=new&rcnamespace=0&rcprop=title|timestamp|ids|patrolled&rclimit=" + npp_num_pages, true); npp_http.send(null); } /* we have received a response */ function npp_ajax_response() { var items = npp_http.responseXML.getElementsByTagName('rc'); // create the div that holds all the newpage links var link_div = document.createElement('div'); link_div.className = 'pBody'; var list = document.createElement('ul'); link_div.appendChild(list); // populate the list with 10 links. for (var i = 0; i < items.length; i++) { var item_name = items[i].getAttribute('title'); var rcid = items[i].getAttribute('rcid'); var patrolled = items[i].getAttribute('patrolled') != null; item_name = item_name.replace(/&/, "%26"); var item_url = 'http://en.wikipedia.org/w/index.php?title=' + item_name + '&rcid=' + rcid + '&redirect=no'; a = document.createElement('a'); a.setAttribute('href', item_url); a.appendChild(document.createTextNode(item_name)); var li = document.createElement('li'); li.appendChild(a); if (!patrolled) { li.setAttribute('class', 'not-patrolled'); } list.appendChild(li); } // Container div var div = document.createElement('div'); div.setAttribute('id', 'p-newpages'); div.className = 'portlet'; var heading = document.createElement('h5'); heading.appendChild(document.createTextNode(npp_str_box_title)); div.appendChild(heading); div.appendChild(link_div); // disable link var p = document.createElement('p'); p.style.fontSize = 'x-small'; p.style.margin = '0px'; p.style.textAlign = 'right'; a = document.createElement('a'); a.appendChild(document.createTextNode(npp_str_disable)); a.onclick = npp_disable_box; p.appendChild(a); link_div.appendChild(p); // now replace the div var old_div = document.getElementById('p-newpages'); var side_col = document.getElementById('column-one'); if (old_div != null) { side_col.replaceChild(div, old_div); } else { var node = document.getElementById('p-tb'); side_col.insertBefore(div, node); } // and do it again in 5 secs setTimeout("npp_ajax_request()", npp_refresh * 1000); } function npp_disable_box() { npp_enabled = false; npp_draw_disabled_box(); document.cookie = "npp_show_box=no; path=/"; } function npp_enable_box() { npp_enabled = true; npp_curr_idle_req = 0; document.cookie = "npp_show_box=yes; path=/"; npp_ajax_request(); } function npp_draw_disabled_box() { // Container div var link_div = document.createElement('div'); link_div.className = 'pBody'; var div = document.createElement('div'); div.setAttribute('id', 'p-newpages'); div.className = 'portlet'; var heading = document.createElement('h5'); heading.appendChild(document.createTextNode(npp_str_box_title)); div.appendChild(heading); div.appendChild(link_div); // enable link var p = document.createElement('p'); p.style.fontSize = 'x-small'; p.style.margin = '0px'; var a = document.createElement('a'); a.appendChild(document.createTextNode(npp_str_enable)); a.onclick = npp_enable_box; p.appendChild(a); link_div.appendChild(p); // now replace the div var old_div = document.getElementById('p-newpages'); var side_col = document.getElementById('column-one'); if (old_div != null) { side_col.replaceChild(div, old_div); } else { var node = document.getElementById('p-tb'); side_col.insertBefore(div, node); } }