مدیاویکی:Common.js/ویژه:انتقال صفحه
/* this is just a quick and dirty script. makes a list of double redir on a move page (on MediaWiki:Movepage-moved messaage)
caveats
- only supports one level of double redirects - triple redirect won't work
- might break if title contains /
- /
//
importScript('MediaWiki:mwapilib.js'); //note: this loads on every page move, even if we don't always need it. causes some overhead - which is bad var CheckForDoubleRedir = {}; CheckForDoubleRedir.do = function(pageName,container) { //var pageName = 'Main Page'; var foo = new Bawolff.mwapi.Request({action:"query", list: "backlinks", blfilterredir: "redirects", blredirect: "true", bllimit: "20", bltitle: pageName}); foo.send(function (doc) { var out =document.createElement('ul'); var pages, li, a; //var pages= doc.getElementsByTagName('redirlinks')[0].getElementsByTagName('bl')[0].getAttribute('title'); var redir = doc.getElementsByTagName('redirlinks'); for (var i=0;i < redir.length;i++) { pages = redir[i].getElementsByTagName('bl'); for (var j=0;j < pages.length; j++) { li = document.createElement('li') a= document.createElement('a'); a.appendChild(document.createTextNode(pages[j].getAttribute('title'))); a.href= mw.config.get('wgScript') + "?redirect=no&action=edit&title=" + encodeURIComponent(pages[j].getAttribute('title')); //FIXME undecode slashes, causes problems li.appendChild(a) out.appendChild(li); } } if (i===0) { li = document.createElement('li') li.appendChild(document.createTextNode('هیچ تغییرمسیر دوتایی شناخته نشد')); out.appendChild(li); } if (doc.getElementsByTagName('query-continue').length !==0) { //>20 double redirects li = document.createElement('li') a= document.createElement('a'); a.appendChild(document.createTextNode('برای بیشتر دانستن [[ویژه:پیوند به این صفحه]] را ببینید.')); a.href= mw.config.get('wgScript') + "?hidelinks=1&hidetrans=1&title=" + encodeURIComponent(pageName); li.appendChild(a) out.appendChild(li); } var header =document.createElement('h2'); header.appendChild(document.createTextNode('لطفاً تغییر مسیرهای دوتایی مقابل را تصحیح کنید')); container.appendChild(header); container.appendChild(out); //jsMsg(container); now it is in body as opposed to sitenotice //doubleRedirInsertPoint }) } CheckForDoubleRedir.load = function() { try { var insert = document.getElementById('doubleRedirInsertPoint'); var page = document.getElementById('destinationPageName').firstChild.firstChild.firstChild.data; if (insert && page && Bawolff && Bawolff.mwapi) { CheckForDoubleRedir.do(page, insert); } else if (insert && page && (!Bawolff && !Bawolff.mwapi)) { window.setTimeout(CheckForDoubleRedir.load, 600) //if the lib hasn't loaded yet } } catch (e) {} //ignore errors. Will get an error on pre-move page } $(CheckForDoubleRedir.load); //
/*
move comment page automatically
Hopefully this will work mostly. Can be disabled by setting
var doNotAutoMoveComments = true;
*/
function moveCommentsPage () {
//now hopefully this can't be abused...
if (window.doNotAutoMoveComments) return;
if (!document.getElementById('move-the-damn-comments-page') || location.search.indexOf('doNotMoveCommentsPage') !== -1) return
var initial = document.getElementById('initialPageName'); //unsafe(?) should be escaped by Bawolff.mwapi
var dest = document.getElementById('destinationPageName'); //unsafe(?)
if (!initial || !dest) return;
initial = initial.getElementsByTagName('a')[0].firstChild.data;
dest = dest.getElementsByTagName('a')[0].firstChild.data;
if (!initial || !dest) return;
initial = 'Comments:' + initial;
dest = 'Comments:' + dest;
if (!confirm('انتقال صفحهٔ نظرها از «' + initial + '» به «' + dest + '» به طور خودکار انجام گیرد؟')) return;
Bawolff.mwapi.getToken(function (t) {
var move = new Bawolff.mwapi.Request({action: 'move', token: t, from: initial, to: dest, reason: 'انتقال خودکار صفحهٔ نظرها به نام جدید، با استفاده از [[:en:user talk:Bawolff|جاوااسکریپت]]'}, 'POST');
move.send(function () {
document.getElementById('move-the-damn-comments-page').innerHTML = '<img height="16" width="16" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Yes_check.svg/16px-Yes_check.svg.png" alt=""/> <b>انجام شد</b> Comments page moved.';
}, function (e) {alert('انتقال صفحهٔ نظرها ناموفق بود : ' + e.message + ' (' + e.name + ')' );});
});
}
$(moveCommentsPage);
/*
- /