User:逆襲的天邪鬼/AutoUndo.js: Difference between revisions

via Wikiplus
m (via Wikiplus)
(via Wikiplus)
 
(3 intermediate revisions by the same user not shown)
Line 1:
$(function () {
var DELAY = 510;
var SUMMARY = '自動回退[[Special:Contributions/$1|$1]]的所有編輯';
 
var uid = null;
 
var summary;
var now = null;
var timerId = null;
Line 10 ⟶ 11:
 
var print = function (html) {
$('#content').append($('<p>').html(texthtml));
};
 
Line 31 ⟶ 32:
 
var pageLink = function (page, title) {
return '<a target="_blank" href="' + wgScript + '?title=' + page + '">' + (title || page) + '</a>';
};
 
var undo = function (edits) {
var callback = function (edit) {
return function } else(data) {
if (data.edit && data.edit.result === 'Success') {
print('<span style="color:green">' + '已撤銷頁面 ' + pageLink(edits[i]edit.title) + ' 的修訂版本 ' + pageLink('Special:Diff/' + edits[i]edit.revid, edits[i]edit.revid) + '</span>');
} else {
print('<span style="color:red">' + '無法撤銷頁面 ' + pageLink(edits[i]edit.title) + ' 的修訂版本 ' + pageLink('Special:Diff/' + edits[i]edit.revid, edits[i]edit.revid) + '</span>');
});
};
};
 
for (var i=0; i<edits.length; i++) {
var cb = callback(edits[i]);
$.ajax({
url: mw.util.wikiScript('api'),
Line 43 ⟶ 55:
title: edits[i].title,
undo: edits[i].revid, // 換成 undoafter 更狠
minor: true,
bot: true,
summary: summary,
token: mw.user.tokens.get('editToken')
},
dataType: 'json',
type: 'POST',
}).then(function (datacb) {;
if (data.edit && data.edit.result === 'Success') {
print('<span style="color:green">' + '已撤銷頁面 ' + pageLink(edits[i].title) + ' 的修訂版本 ' + pageLink('Special:Diff/' + edits[i].revid, edits[i].revid) + '</span>');
} else {
print('<span style="color:red">' + '無法撤銷頁面 ' + pageLink(edits[i].title) + ' 的修訂版本 ' + pageLink('Special:Diff/' + edits[i].revid, edits[i].revid) + '</span>');
}
});
}
};
 
var monitor = function () {
getNewEdits(uid, now).then(function (data) {
now = new Date().getTime();
 
var edits = [];
if (data.query && data.query.usercontribs) {
Line 77 ⟶ 88:
var start = function () {
$('#content').html('正在監視 ' + uid + ' 的編輯……時間間隔 ' + DELAY + ' 秒。');
 
summary = SUMMARY.replace(/\$1/g, uid);
 
timerId = setInterval(monitor, DELAY * 1000);