User:逆襲的天邪鬼/Twinkle-lzh/twinklefluff.js: Difference between revisions
User:逆襲的天邪鬼/Twinkle-lzh/twinklefluff.js (view source)
Revision as of 18:34, 30 May 2017
, 7 years agono edit summary
mNo edit summary |
mNo edit summary |
||
Line 23:
if( parseInt( Morebits.queryString.get('oldid'), 10) !== mw.config.get('wgCurRevisionId') ) {
// not latest revision
alert("
return;
}
Line 41:
if( mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgCanonicalSpecialPageName') === "Contributions" ) {
//
var logLink = $('#contentSub').find('a[title^="特殊:誌"]').last();
if (logLink.length>0) //#215 -- there is no log link on Special:Contributions with no user
Line 57 ⟶ 54:
var revLink = document.createElement('a');
revLink.appendChild( spanTag( 'Black', '[' ) );
revLink.appendChild( spanTag( 'SteelBlue', '
revLink.appendChild( spanTag( 'Black', ']' ) );
revNode.appendChild(revLink);
Line 64 ⟶ 61:
var revVandLink = document.createElement('a');
revVandLink.appendChild( spanTag( 'Black', '[' ) );
revVandLink.appendChild( spanTag( 'Red', '
revVandLink.appendChild( spanTag( 'Black', ']' ) );
revVandNode.appendChild(revVandLink);
Line 125 ⟶ 122:
});
revertToRevisionLink.appendChild( spanTag( 'Black', '[' ) );
revertToRevisionLink.appendChild( spanTag( 'SaddleBrown', '
revertToRevisionLink.appendChild( spanTag( 'Black', ']' ) );
Line 144 ⟶ 141:
});
revertToRevisionLink.appendChild( spanTag( 'Black', '[' ) );
revertToRevisionLink.appendChild( spanTag( 'SaddleBrown', '
revertToRevisionLink.appendChild( spanTag( 'Black', ']' ) );
ntitle.insertBefore( revertToRevision, ntitle.firstChild );
Line 178 ⟶ 175:
agfLink.appendChild( spanTag( 'Black', '[' ) );
agfLink.appendChild( spanTag( 'DarkOliveGreen', '
agfLink.appendChild( spanTag( 'Black', ']' ) );
vandLink.appendChild( spanTag( 'Black', '[' ) );
vandLink.appendChild( spanTag( 'Red', '
vandLink.appendChild( spanTag( 'Black', ']' ) );
normLink.appendChild( spanTag( 'Black', '[' ) );
normLink.appendChild( spanTag( 'SteelBlue', '
normLink.appendChild( spanTag( 'Black', ']' ) );
Line 231 ⟶ 228:
'intoken': 'edit'
};
var wikipedia_api = new Morebits.wiki.api( '
wikipedia_api.params = params;
wikipedia_api.post();
Line 250 ⟶ 247:
'format': 'xml'
};
var wikipedia_api = new Morebits.wiki.api( '
wikipedia_api.params = { rev: oldrev };
wikipedia_api.post();
Line 272 ⟶ 269:
if (revertToRevID !== self.params.rev) {
self.statitem.error( '抓取到的修
return;
}
var optional_summary = prompt( "
if (optional_summary === null)
{
self.statelem.error( '由用
return;
}
var summary = Twinkle.fluff.formatSummary("回退到由$USER做出的修
var query = {
Line 298 ⟶ 295:
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.notice = "修
var wikipedia_api = new Morebits.wiki.api( '
wikipedia_api.params = self.params;
wikipedia_api.post();
Line 318 ⟶ 315:
if( revs.length < 1 ) {
self.statelem.error( '
return;
}
var top = revs[0];
if( lastrevid < self.params.revid ) {
Morebits.status.error( '
return;
}
var index = 1;
if( self.params.revid !== lastrevid ) {
Morebits.status.warn( '警告', [ '最新修
if( lastuser === self.params.user ) {
switch( self.params.type ) {
case 'vand':
Morebits.status.info( '信息', [ '最新修
break;
case 'agf':
Morebits.status.warn( '警告', [ '最新修
return;
default:
Morebits.status.warn( '提示', [ '最新修
return;
}
Line 345 ⟶ 342:
Twinkle.fluff.whiteList.indexOf( top.getAttribute( 'user' ) ) !== -1 && revs.length > 1 &&
revs[1].getAttribute( 'pageId' ) === self.params.revid) {
Morebits.status.info( '信息', [ '最新修
index = 2;
} else {
Morebits.status.error( '
return;
}
Line 357 ⟶ 354:
switch( self.params.type ) {
case 'vand':
Morebits.status.info( '信息', [ '
index = 2;
self.params.user = revs[1].getAttribute( 'user' );
break;
case 'agf':
Morebits.status.warn( '提示', [ '
return;
case 'norm':
/* falls through */
default:
var cont = confirm( '选择了常
if( cont ) {
Morebits.status.info( '信息', [ '
index = 2;
self.params.user = revs[1].getAttribute( 'user' );
} else {
Morebits.status.warn( '提示', [ '
}
break;
Line 390 ⟶ 387:
if( ! found ) {
self.statelem.error( [ '未找到之前的修
return;
}
if( ! count ) {
Morebits.status.error( '
return;
}
Line 402 ⟶ 399:
var userHasAlreadyConfirmedAction = false;
if (self.params.type !== 'vand' && count > 1) {
if ( !confirm( self.params.user + '
Morebits.status.info( '提示', '用
return;
}
Line 414 ⟶ 411:
self.params.gooduser = good_revision.getAttribute( 'user' );
self.statelem.status( [ Morebits.htmlNode( 'strong', count ), '
var summary, extra_summary;
switch( self.params.type ) {
case 'agf':
extra_summary = prompt( "可选的
if (extra_summary === null)
{
self.statelem.error( '用
return;
}
userHasAlreadyConfirmedAction = true;
summary = Twinkle.fluff.formatSummary("回退$USER做出的出
break;
Line 433 ⟶ 430:
summary = "回退[[Special:Contributions/" +
self.params.user + "|" + self.params.user + "]] ([[User talk:" + self.params.user + "|
"做出的 " + self.params.count + " 次
self.params.gooduser + "做出的前一
break;
Line 442 ⟶ 439:
default:
if( Twinkle.getPref('offerReasonOnNormalRevert') ) {
extra_summary = prompt( "可
if (extra_summary === null)
{
self.statelem.error( '用
return;
}
Line 451 ⟶ 448:
}
summary = Twinkle.fluff.formatSummary("回退$USER做出的" + self.params.count + "次
break;
}
if (Twinkle.getPref('confirmOnFluff') && !userHasAlreadyConfirmedAction && !confirm("回退页面:您
self.statelem.error( '用
return;
}
Line 464 ⟶ 461:
Twinkle.getPref('openTalkPage').indexOf( self.params.type ) !== -1 &&
mw.config.get('wgUserName') !== self.params.user ) {
Morebits.status.info( '信息', [ '打开用
query = {
Line 511 ⟶ 508:
Morebits.wiki.actionCompleted.notice = "回退完成";
var wikipedia_api = new Morebits.wiki.api( '
wikipedia_api.params = self.params;
wikipedia_api.post();
Line 523 ⟶ 520:
code.style.fontFamily = "monospace";
code.appendChild(document.createTextNode(blacklist));
apiobj.statelem.error(['不能回退,因URL', code, '在垃圾黑名
} else if ($edit.attr('nochange') === '') {
apiobj.statelem.warn("要回退到的版本
} else {
apiobj.statelem.info("完成");
Line 555 ⟶ 552:
var contribsLen = unescape(encodeURIComponent(contribsLink)).length;
if (resultLen + contribsLen <= 255) {
var talkLink = " ([[User talk:" + userName + "|
if (resultLen + contribsLen + unescape(encodeURIComponent(talkLink)).length <= 255) {
result = result.replace("$USER", contribsLink + talkLink);
|