User:SunAfterRain/global.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* eslint-disable new-cap, camelcase, no-jquery/no-global-selector */
/* global load, loadjs */
$( function () {
if ( [ 'zh', 'zh-hant', 'zh-tw', 'zh-hk', 'zh-mo' ].indexOf( mw.config.get( 'wgUserLanguage' ) ) !== -1 ) {
$( '#pt-mycontris a' ).text( '我的貢獻 (' + mw.config.get( 'wgUserEditCount' ) + ')' );
} else if ( [ 'zh-hans', 'zh-cn', 'zh-my', 'zh-sg' ].indexOf( mw.config.get( 'wgUserLanguage' ) ) !== -1 ) {
$( '#pt-mycontris a' ).text( '我的贡献 (' + mw.config.get( 'wgUserEditCount' ) + ')' );
} else if ( mw.config.get( 'wgUserLanguage' ) === 'qqx' ) {
$( '#pt-mycontris a' ).text( '(mycontris)-(wgUserEditCount)' );
} else {
$( '#pt-mycontris a' ).text( $( '#pt-mycontris a' ).text() + '(' + mw.config.get( 'wgUserEditCount' ) + ')' );
}
function implWrapper() {
var args = Array.from( arguments );
if ( typeof mw.loader.impl === 'function' ) {
return mw.loader.impl( function () {
return args;
} );
}
return mw.loader.implement.apply( mw.loader, args );
}
if ( !mw.loader.getState( 'userscript.SunAfterRain.load' ) ) {
implWrapper( 'userscript.SunAfterRain.load@', [
'//meta.wikimedia.org/w/index.php?title=User:SunAfterRain/global.js/load.js&action=raw&ctype=text/javascript'
] );
}
mw.hook( 'userscript.SunAfterRain.load' ).add( function ( Loader ) {
Loader.globalInstance.push( [
[
{
js: [ 'User:SunAfterRain/js/sectionlink.js' ],
css: [ 'User:SunAfterRain/js/sectionlink.css' ]
},
'//meta.wikimedia.org'
],
[ 'User:SunAfterRain/js/Difflink.js', '//meta.wikimedia.org' ],
[ 'User:SunAfterRain/js/download.js', '//zh.wikipedia.org' ],
// [ 'User:SunAfterRain/js/importer.js', '//meta.wikimedia.org' ],
[ 'User:SunAfterRain/js/markrights.js', '//meta.wikimedia.org' ],
[ 'User:SunAfterRain/js/mw-config-global.js', '//meta.wikimedia.org' ],
[ 'User:SunAfterRain/js/special-canonical.js', '//meta.wikimedia.org' ],
[ 'User:SunAfterRain/js/zh-varient.js', 'https://meta.wikimedia.org' ],
[ 'User:SunAfterRain/articleInfo.js', '//zh.wikipedia.org', [], { restrictOnWMFMain: true } ],
[ 'User:Xiplus/TwinkleGlobal.js', '//meta.wikimedia.org', [], { restrictOnWMFWiki: true } ],
[ 'User:WhitePhosphorus/js/AutoUndo.js', 'https://meta.wikimedia.org', [], { restrictOnWMFMain: true } ],
[ 'User:BrandonXLF/ShowTemplates.js', '//en.wikipedia.org' ],
[ 'User:Msz2001/abusefilter-analyzer-primer.js', '//pl.wikipedia.org' ]
] );
if (
window.location.origin.endsWith( '.wikimedia.org' )
|| window.location.origin.endsWith( '.wikimedia.beta.wmflabs.org' )
|| [ 'mediawikiwiki', 'wikidatawiki', 'testwiki', 'test2wiki', 'testwikidatawiki', 'wikifunctionswiki' ].includes( mw.config.get( 'wgDBname' ) )
) {
window.wgUseZhVarientAutoRedirectToVarient = 'zh-tw';
}
} );
if ( mw.loader.getState( 'ext.gadget.HanAssist' ) ) {
mw.loader.register( 'userscript.SunAfterRain.HanAssist', null, [ 'ext.gadget.HanAssist' ] );
mw.loader.register( 'userscript.SunAfterRain.HanAssist.shim', null );
mw.loader.using( [ 'ext.gadget.HanAssist' ] ).then( function () {
implWrapper( 'userscript.SunAfterRain.HanAssist@', {
main: 'index.js',
files: {
'index.js': function ( require, module ) {
module.exports = require( 'ext.gadget.HanAssist' );
}
}
} );
if ( mw.loader.getState( 'userscript.SunAfterRain.HanAssist' ) === 'missing' ) {
mw.loader.state( {
'userscript.SunAfterRain.HanAssist': 'loaded'
} );
}
if ( !( 'wgULS' in window ) ) {
implWrapper(
'userscript.SunAfterRain.HanAssist.shim@',
[ '//meta.wikimedia.org/w/index.php?title=User:SunAfterRain/js/HanAssist.js/shim.js&action=raw&ctype=text/javascript' ]
);
if ( mw.loader.getState( 'userscript.SunAfterRain.HanAssist.shim' ) === 'missing' ) {
mw.loader.state( {
'userscript.SunAfterRain.HanAssist.shim': 'loaded'
} );
}
} else {
mw.loader.state( {
'userscript.SunAfterRain.HanAssist.shim': 'ready'
} );
}
} );
} else {
try {
mw.loader.register( 'userscript.SunAfterRain.HanAssist', null, [] );
implWrapper( 'userscript.SunAfterRain.HanAssist@', [
'//meta.wikimedia.org/w/index.php?title=User:SunAfterRain/js/HanAssist.js&action=raw&ctype=text/javascript'
] );
mw.loader.register(
'userscript.SunAfterRain.HanAssist.shim',
null,
[ 'userscript.SunAfterRain.HanAssist' ],
null,
null,
'mw.libs.HanAssist.isShimmed'
);
implWrapper( 'userscript.SunAfterRain.HanAssist.shim@', {
main: 'index.js',
files: {
'index.js': function ( require, module ) {
require( 'userscript.SunAfterRain.HanAssist' ).shimUXS();
}
}
} );
} catch ( error ) {
}
mw.loader.using( [ 'userscript.SunAfterRain.HanAssist' ] );
}
/*
SpecialInterlanguageLink = {
'lang': {
'm': 'Meta',
'c': 'Commons'
'w:zh': '中文'
},
'namespace': [-1]
};
mw.loader.load('https://zh.wikipedia.org/w/index.php?title=User:Xiplus/js/SpecialInterlanguageLink.js&action=raw&ctype=text/javascript'); */
if ( $( 'nav#p-lang' ).find( 'li' ).length === 0 ) {
$( 'nav#p-lang' ).remove();
}
/**
* warn jQuery deprecate with stack
*/
mw.log.deprecate( jQuery, 'isFunction', function ( obj ) {
return typeof obj === 'function';
}, '', 'jQuery.isFunction' );
mw.log.deprecate( jQuery, 'trim', function ( text ) {
return text == null ? '' : ( text + '' ).trim();
}, '', 'jQuery.trim' );
mw.loader.using( [ 'mediawiki.api', 'mediawiki.ForeignApi' ], function () {
// 阻止發出未登入請求
var OldApi = mw.Api;
mw.Api = function ( options ) {
options = options || {};
options.parameters = options.parameters || {};
options.parameters.assert = 'user';
OldApi.call( this, options );
return this;
};
mw.Api.prototype = OldApi.prototype;
window.api = new mw.Api();
} );
( function () {
// fork from [[zh:Special:Diff/70642469/71502073]]
try {
var ref = new URL( window.document.referrer, window.location.href ),
refWikiHost = ref.host.replace( /\.m\./, '.' ),
loc = new URL( window.location.href ),
locWikiHost = loc.host.replace( /\.m\./, '.' );
if ( loc.searchParams.has( 'mob' ) && loc.searchParams.get( 'mob' ) !== '0' ) {
return;
}
function checkMobDiff() {
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'MobileDiff' ) {
if ( loc.searchParams.has( 'title' ) ) {
var title = loc.searchParams.get( 'title' ).split( '/' );
title[ 0 ] = 'Special:Diff';
loc.searchParams.set( 'title', title.join( '/' ).replace( /^Special:Diff\/(\d+)\.{3}(\d+)$/, 'Special:Diff/$1/$2' ) );
} else {
mw.messages.set( 'wgArticlePath', mw.config.get( 'wgArticlePath' ) );
var path = loc.pathname.replace( mw.msg( 'wgArticlePath', '' ), '' );
if ( path.match( '/' ) ) {
loc.pathname = loc.pathname.replace(
mw.msg( 'wgArticlePath', path.split( '/' ).shift() ),
mw.msg( 'wgArticlePath', 'Special:Diff' )
).replace( /\bSpecial:Diff\/(\d+)\.{3}(\d+)$/, 'Special:Diff/$1/$2' );
} else {
loc.pathname = mw.msg( 'wgArticlePath', 'Special:Diff' );
}
}
}
}
if ( document.referrer.trim() !== '' && refWikiHost !== locWikiHost && window.location.host.match( /\.m\./ ) ) {
loc.host = locWikiHost;
if ( /\.wiki[a-z]+\./.test( ref.host ) ) {
loc.searchParams.set( 'mobileaction', 'toggle_view_desktop' );
}
checkMobDiff();
}
if ( /\.google\./.test( ref.host ) ) {
loc.pathname = loc.pathname.replace( /^\/zh(-[^/]+)?\//, '/wiki/' );
}
if ( mw.config.get( 'skin' ) !== 'minerva' ) {
checkMobDiff();
}
if ( loc.href !== window.location.href ) {
window.location.replace( loc.href );
}
} catch ( e ) {
}
}() );
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Contributions' ) {
$( '.mw-contributions-user-tools > .mw-changeslist-links' )
.append(
$( '<span>' )
.append(
$( '<a>' )
.attr( {
href: mw.util.getUrl( 'Special:Log', {
page: mw.Title.makeTitle( 2, mw.config.get( 'wgRelevantUserName' ) ).toString()
} )
} )
.text( '使用者日誌' )
)
);
}
if ( mw.config.get( 'wgRelevantUserName' ) && !mw.config.get( 'wgPageName' ).match( '/' ) ) {
mw.loader.using( [ 'mediawiki.util' ] ).then( function () {
new mw.Api().loadMessagesIfMissing( [ 'contributions' ] ).then( function () {
mw.util.addPortletLink(
'p-namespaces',
'/wiki/Special:Contributions/' + mw.config.get( 'wgRelevantUserName' ),
mw.msg( 'contributions' ),
'ca-contributions'
);
} );
} );
}
} );