User:94rain/Twinkle.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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/**
* +-------------------------------------------------------------------------+
* | === 警告 === |
* | 本工具有一些新穎的修改,雖本人會經過測試,但不能保證不會出錯 |
* | 強烈建議在使用後複查編輯,特別是那些新功能 |
* +-------------------------------------------------------------------------+
*/
// 複製並修改自 https://zh.wikipedia.org/w/index.php?oldid=45972864 作者為 User:逆襲的天邪鬼
// 載入自己修改的Twinkle
(function() {
var VERSION = 'ece9855';
var PREFIX = 'User:Xiplus/Twinkle/';
var rebuildcache = true; // localStorage.Twinkle_global_xiplus_version !== VERSION;
var tests = [];
var api;
if (mw.config.get('wgServer') === '//meta.wikimedia.org') {
api = new mw.Api();
} else {
api = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php');
}
var ajax = function(title) {
return api.get({
'action': 'query',
'format': 'json',
'prop': 'revisions',
'titles': title,
'rvprop': 'content'
}).then(function(data) {
for (var key in data.query.pages) { // eslint-disable-line guard-for-in
return data.query.pages[key].revisions[0]['*'];
}
});
};
var load = function(p) {
var done = function(data) {
if (rebuildcache || !localStorage['Twinkle_global_xiplus_' + p.name]) {
localStorage['Twinkle_global_xiplus_' + p.name] = data;
}
};
if (localStorage['Twinkle_global_xiplus_' + p.name] && !rebuildcache) {
return $.Deferred().resolve(localStorage['Twinkle_global_xiplus_' + p.name]);
}
if (p.test) {
return ajax(PREFIX + p.name).done(done);
}
return ajax('MediaWiki:Gadget-' + p.name).done(done);
};
var message = function(text) {
console.log('[Twinkle_global_xiplus]', text);
// $('#simpleSearch input[type="search"]').attr('placeHolder', text);
};
tests.push({ name: 'User:Xiplus/Twinkle/morebits.js', test: true });
tests.push({ name: 'User:94rain/Twinkle/twinkle.js', test: true });
tests.push({name: 'User:Xiplus/Twinkle/modules/twinklearv.js', test: true});
// tests.push({name: 'modules/twinklewarn.js', test: true});
// tests.push({name: 'modules/friendlyshared.js', test: true});
// tests.push({name: 'modules/friendlytag.js', test: true});
tests.push({ name: 'User:94rain/Twinkle/modules/friendlywelcome.js', test: true });
// tests.push({name: 'modules/friendlytag.js', test: true});
// tests.push({name: 'modules/friendlytalkback.js', test: true});
// tests.push({name: 'modules/twinklebatchdelete.js', test: true});
// tests.push({name: 'modules/twinklebatchundelete.js', test: true});
// tests.push({name: 'modules/twinkleblock.js', test: true});
// tests.push({name: 'modules/twinkleclose.js', test: true});
tests.push({ name: 'User:Xiplus/Twinkle/modules/twinkleconfig.js', test: true });
// tests.push({name: 'modules/twinklecopyvio.js', test: true});
// tests.push({name: 'modules/twinkledelimages.js', test: true});
tests.push({ name: 'User:Xiplus/Twinkle/modules/twinklediff.js', test: true });
tests.push({ name: 'User:Xiplus/Twinkle/modules/twinklefluff.js', test: true });
// tests.push({name: 'modules/twinkleimage.js', test: true});
// tests.push({name: 'modules/twinkleprotect.js', test: true});
// tests.push({name: 'modules/twinklespeedy.js', test: true});
// tests.push({name: 'modules/twinklestub.js', test: true});
// tests.push({name: 'modules/twinkleunlink.js', test: true});
// tests.push({name: 'modules/twinklexfd.js', test: true});
function main() {
mw.loader.load('https://meta.wikimedia.org/w/index.php?title=User:Xiplus/Twinkle/morebits.css&action=raw&ctype=text/css', 'text/css');
var i = 0;
var finished = 0;
var code = [];
// all
message('Loading Twinkle_global_xiplus...');
var promises = [];
var done = function(x) {
return function(data) {
finished++;
message('Loading Twinkle_global_xiplus... (' + finished + '/' + tests.length + ')');
code[x] = data;
};
};
for (i = 0; i < tests.length; i++) {
promises.push(load(tests[i]).done(done(i)));
}
$.when.apply($, promises).done(function() {
localStorage.Twinkle_global_xiplus_version = VERSION;
eval(code.join('\n;\n'));
message('Twinkle Done');
if ($('#twinkle-config-titlebar').length) {
$('#twinkle-config-titlebar').append('--Version: Xiplus ' + localStorage.Twinkle_global_xiplus_version);
$('#twinkle-config-titlebar').append('<button onclick="localStorage.Twinkle_global_xiplus_version = \'\';location.reload();">Purge</button>');
}
});
}
mw.loader.using(['mediawiki.user', 'mediawiki.util', 'mediawiki.util', 'mediawiki.Title', 'jquery.ui', 'jquery.tipsy', 'mediawiki.ForeignApi']).done(function() {
main();
});
})();