v50 Steam/Premium information for editors
- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.
User:Emi/newpages.js
Jump to navigation
Jump to search
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files
/* New Page Patroller Script by TheJosh, original can be found at http://en.wikipedia.org/wiki/User:TheJosh/Scripts/NewPagePatrol.js */
var npp_http;
var npp_enabled;
var npp_num_pages;
var npp_refresh;
var npp_num_idle_req;
var npp_curr_idle_req;
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", "/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);
}
function npp_draw_disabled_box() {
if (skin == 'vector') {
npp_draw_disabled_box_vector();
} else {
npp_draw_disabled_box_monobook();
}
}
function npp_ajax_response() {
if (skin == 'vector') {
npp_ajax_response_vector();
} else {
npp_ajax_response_monobook();
}
// 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();
}
/* Draw disabled (monobook) */
function npp_draw_disabled_box_monobook() {
// 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-search');
side_col.insertBefore(div, node);
}
}
/* Draw response (monobook) */
function npp_ajax_response_monobook() {
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://df.magmawiki.com/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-search');
side_col.insertBefore(div, node);
}
}
/* Draw disabled box (vector skin) */
function npp_draw_disabled_box_vector() {
// Container div
var link_div = document.createElement('div');
link_div.className = 'body';
var div = document.createElement('div');
div.setAttribute('id', 'p-newpages');
div.className = 'portal';
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('panel');
if (old_div != null) {
side_col.replaceChild(div, old_div);
} else {
var node = document.getElementById('p-interaction');
side_col.insertBefore(div, node);
}
}
/* Draw response (vector skin) */
function npp_ajax_response_vector() {
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 = 'body';
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://df.magmawiki.com/index.php?title=' + item_name + '&rcid=' + rcid + '&redirect=no';
a = document.createElement('a');
a.setAttribute('href', item_url);
//a.style.fontSize = 'x-small';
a.appendChild(document.createTextNode(item_name));
var li = document.createElement('li');
li.appendChild(a);
if (!patrolled) {
//li.setAttribute('class', 'not-patrolled');
li.setAttribute('style','background-color: #e7e7e7');
//li.style.color = '#555555';
}
list.appendChild(li);
}
// Container div
var div = document.createElement('div');
div.setAttribute('id', 'p-newpages');
div.className = 'portal';
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 = 'left';
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('panel');
if (old_div != null) {
side_col.replaceChild(div, old_div);
} else {
var node = document.getElementById('p-interaction');
side_col.insertBefore(div, node);
}
}