משתמש:Yonidebest/monobook.js/externalWL.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
// adds link in tool box which loads external user's watchlist and displays it in local user's watchlist.
// user account's token and external user account's token must be identical.
// tested in ie8, ff3, chrome
// written by [[user:yonidebest]]
var externalusernameWL = "בובתקש";
function initExternalWL()
{
var a = sajax_init_object();
a.open('GET', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + encodeURIComponent("מיוחד:העדפות") + '&action=render', true);
a.onreadystatechange = function()
{
if (a.readyState != 4) return;
var rx = new RegExp('name="wpwatchlisttoken" size="45" value="([^"]*)"');
var m = rx.exec(a.responseText);
if (m)
pharseExternalWL(m[1]);
};
a.send(null);
}
// from w3schools.com
function loadXMLString(txt)
{
if (window.DOMParser)
{
parser = new DOMParser();
xmlDoc = parser.parseFromString(txt,"text/xml");
}
else // IE
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(txt);
}
return xmlDoc;
}
function pharseExternalWL(token)
{
var a = sajax_init_object();
a.open('GET', "http://he.wikipedia.org/w/api.php?action=feedwatchlist" +
"&wlowner=" + encodeURIComponent(externalusernameWL) + "&wltoken=" + token, true);
a.onreadystatechange = function()
{
if (a.readyState != 4) return;
var response = loadXMLString(a.responseText);
var text = "";
var items = response.getElementsByTagName("item");
for (var i = 0; i < items.length; i++)
{
var title = items[i].childNodes[0].nodeTypedValue; //ie
if (!title) title = items[i].childNodes[1].textContent; //chrome/ff
var link = items[i].childNodes[1].nodeTypedValue;
if (!link) link = items[i].childNodes[3].textContent;
var description = items[i].childNodes[3].nodeTypedValue;
if (!description) description = items[i].childNodes[7].textContent;
var pubDate = items[i].childNodes[4].nodeTypedValue;
if (!pubDate) pubDate = items[i].childNodes[9].textContent;
var creator = items[i].childNodes[5].nodeTypedValue;
if (!creator) creator = items[i].childNodes[11].textContent;
text += '<li><a href="' + link + '" title="' + title + '">' + title + '</a>‏ . . ' +
'<a href="/wiki/משתמש:' + encodeURIComponent(creator) + '" title="משתמש:' +
encodeURIComponent(creator) + '">' + creator + '</a>‏ (<span style="color: chocolate">' +
description + '</span>)‏ ' + pubDate + '</li>';
}
var ul = getElementsByClassName(document.getElementById("bodyContent"), "ul", "special");
if (!ul || !ul[0]) return;
ul[0].innerHTML = text + ul[0].innerHTML;
};
a.send(null);
}
addOnloadHook(
function()
{
if (wgPageName != "מיוחד:רשימת_המעקב") return;
mw.util.addPortletLink("p-tb", "javascript:initExternalWL();", "הצג רשימת מעקב חיצונית", "pt-js-wl", "הצג רשימת מעקב חיצונית", "", "");
}
);