Участник:T kns/cleandosmot.js
Материал из Lurkmore
Перейти к навигацииПерейти к поиску
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
//<pre>
/*
*
*
*
* ( )
* ( ) (
* ) _ )
* ( \_
* _(_\ \)
* (____\___))
*
*
*
*/
addOnloadHook(function() {
if(!window.showmessage) {window.showmessage = alert;}
var tok ='';
function undosmot(revid, currevnum) {
var delay = setTimeout(function() {
clearTimeout(delay);
$.ajax({
url: '/api.php',
data: {
format: 'json',
action: 'review',
revid: revid,
token: tok,
comment: 'Автоматическая очистка выверенной статьи от старых досмотренных версий',
'unapprove': 1
},
dataType: 'json',
type: 'POST'
}).success(function(d){
var str = 'Ошибка //'+revid;
if(d.review && d.review.result && d.review.result == 'Success') {
str = 'С версии <a href="https://lurkmore.to/index.php?diff='+revid+'">'+revid+'</a> снят досмот //'+currevnum;
}
showmessage(str);
});
}, (currevnum*400));
}
function getflagged(ok) {
if(ok === false) {showmessage('xyu');return;}
var data = {
format: 'json',
action: 'query',
prop: 'revisions',
rvprop: 'ids|flagged',
rvlimit: 500,
titles: wgPageName
}
if(!isNaN(parseInt(ok,10))) {
console.log('rvstartid: '+ok);
data.rvstartid = ok;
}
$.ajax({
url: '/api.php',
data: data,
dataType: 'json',
type: 'POST'
}).success(function(d){
if(d.query && d.query.pages) {
for(var i in d.query.pages) {
if(d.query.pages[i].revisions) {
var revs = d.query.pages[i].revisions, revslength = revs.length, k = 0;
for(var j=0; j < revslength; j++) {
if(revs[j].flagged && revs[j].flagged.tags.accuracy === 1) {
k++;
undosmot(revs[j].revid, k);
}
}
if(k > 0) {
showmessage('Всего досмотов: '+k);
} else {
showmessage('Досмотов нет');
}
}
}
}
if(d['query-continue'] && d['query-continue'].revisions) {
console.log('query-continue: '+d['query-continue'].revisions.rvstartid);
getflagged(d['query-continue'].revisions.rvstartid);
} else {
console.log('no query-continue');
}
});
}
function gettok(cback) {
$.ajax({
url: '/api.php',
data: {
format: 'json',
action: 'query',
prop: 'info',
intoken: 'edit',
titles: wgPageName
},
dataType: 'json',
type: 'POST'
}).success(function(d){
if(d.query && d.query.pages) {
for(var i in d.query.pages) {
if(d.query.pages[i].edittoken) {
tok = d.query.pages[i].edittoken;
cback();
return;
}
break;
}
}
cback(false);
}).error(function(d) {
console.log(d);
});
}
if(wgAction=="history" && window.wgStableRevisionId) {
if(wgStableRevisionId != wgCurRevisionId) {
showmessage('Последняя версия страницы не является стабильной. ОСТАНОВ');
return;
}
var cleandosmot = $('<li><a href="#">Почистить досмоты</a></li>').on('click', function(e) {
e.preventDefault();
if(confirm('Почистить досмоты?')) {
gettok(getflagged);
}
}).appendTo('#p-tb .pBody ul');;
}
});
//</pre>