MediaWiki:Group-sysop.js:修订间差异
跳转到导航
跳转到搜索
(创建页面,内容为“→这里的任何JavaScript将只为管理员加载: →global mediaWiki: //<pre> mw傻逼,不写<pre/>三个以上波浪号全都要替换,傻得要死 (fu...”) |
(// Edit via Wikiplus) |
||
第28行: | 第28行: | ||
href = self.attr('href'), | href = self.attr('href'), | ||
userName = decodeURI(href.substring(href.indexOf('User_talk') === -1 ? href.indexOf('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:') : href.indexOf('User_talk'), href.indexOf('&action=edit'))); | userName = decodeURI(href.substring(href.indexOf('User_talk') === -1 ? href.indexOf('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:') : href.indexOf('User_talk'), href.indexOf('&action=edit'))); | ||
console.debug(this, href.indexOf('User_talk') === -1 ? href.indexOf('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:') : href.indexOf('User_talk'), userName); | |||
if ((href.includes('User_talk') || href.includes('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:')) && href.includes('redlink=1') && href.includes('action=edit') && !userName.includes('/')) list.push(self.addClass('sendWelcomeMessageLink unsend').bind('click.sendWelcomeMessage', function () { | if ((href.includes('User_talk') || href.includes('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:')) && href.includes('redlink=1') && href.includes('action=edit') && !userName.includes('/')) list.push(self.addClass('sendWelcomeMessageLink unsend').bind('click.sendWelcomeMessage', function () { | ||
if ($('#welcomeAskFinished')[0]) $('#welcomeClear').click(); | if ($('#welcomeAskFinished')[0]) $('#welcomeClear').click(); |
2016年5月31日 (二) 14:26的版本
/* 这里的任何JavaScript将只为管理员加载 */
/* global mediaWiki */
//<pre> mw傻逼,不写<pre/>三个以上波浪号全都要替换,傻得要死
(function () {
if (!String.prototype.includes) String.prototype.includes = function includes(search, start) {
'use strict';
if (typeof start !== 'number') start = 0;
if (start + search.length > this.length) return false;
return this.indexOf(search, start) !== -1;
};
function sendWelcomeMessage() {
var message = '{{Template:欢迎}} ——~~~~{{clear}}',
errorFun = function errorFun(eM) {
if (window.console) console.error(eM + "。\n你如果想要帮助我们解决这个问题,请将这条报错信息发送至: annangela@moegirl.org.");
return false;
},
unbindFun = function unbindFun() {
if ($('#welcomeClear').length > 0) $('#welcomeClear').remove();
$('#welcomeAsk').append('<span id="welcomeClear">返回</span>');
$('#welcomeClear').bind('click.welcome', function () {
$('#welcomeAsk').remove();
});
},
list = $();
if (mw.config.get('wgNamespaceIds').user_talk == mw.config.get('wgNamespaceNumber') && !mw.config.get('wgPageName').includes('/') && mw.config.get('wgEditMessage') == 'creating' && $('#wpTextbox1')[0] && !$('#wpTextbox1').val()) $('#wpTextbox1').val(message);
$('#mw-content-text a.new').each(function () {
var self = $(this),
href = self.attr('href'),
userName = decodeURI(href.substring(href.indexOf('User_talk') === -1 ? href.indexOf('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:') : href.indexOf('User_talk'), href.indexOf('&action=edit')));
console.debug(this, href.indexOf('User_talk') === -1 ? href.indexOf('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:') : href.indexOf('User_talk'), userName);
if ((href.includes('User_talk') || href.includes('%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:')) && href.includes('redlink=1') && href.includes('action=edit') && !userName.includes('/')) list.push(self.addClass('sendWelcomeMessageLink unsend').bind('click.sendWelcomeMessage', function () {
if ($('#welcomeAskFinished')[0]) $('#welcomeClear').click();
if ($('#welcomeAsk')[0]) {
self.after('<span class="welcomeAsk">一次只能发送一份欢迎辞哦,不要太贪心了~<span id="welcomeClear2">返回</span></span>');
$('#welcomeClear2').bind('click.welcome', function () {
$(this).parent().remove();
});
return false;
}
if (/[&\/]+/.test(userName)) {
window.open(href, '_blank');
return errorFun('地址解析出错!\n原地址:' + href + ',解析用户讨论页标题结果:' + userName);
}
self.removeClass('unsend').after('<span id="welcomeAsk">你想直接发送欢迎辞还是访问该未创建页面?<span id="welcomeYes">发送欢迎辞</span> · <span id="welcomeNo">访问该页面</span> · <span id="welcomeClear">返回</span></span>');
$('#welcomeNo').bind('click.welcome', function () {
window.open(href, '_blank');
});
$('#welcomeClear').bind('click.welcome', function () {
$('#welcomeAsk').remove();
});
$('#welcomeYes').bind('click.welcome', function () {
$.ajax({
beforeSend: function () {
$('#welcomeAsk').empty().append('正在通信中(0/2)……');
},
error: function (eO, eM, eC) {
eC ? eC += '.' + eM : eC = eM;
errorFun('和服务器通信失败,无法获取编辑token!\n错误信息:' + eC);
$('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信失败,请刷新或重试……</span>');
unbindFun();
self.addClass('unsend');
},
type: 'GET',
url: 'http://www.zjsnrwiki.com/MediaWiki/Api.php?action=query&meta=tokens&format=json',
success: function (data) {
$.ajax({
type: "POST",
url: "http://www.zjsnrwiki.com/MediaWiki/Api.php",
data: {
'action': 'edit',
'format': 'json',
'title': userName,
'token': data.query.tokens.csrftoken,
'summary': 'Welcome to ZjsnrWiki',
'text': message,
'tags': 'Welcome to ZjsnrWiki'
},
beforeSend: function () {
$('#welcomeAsk').empty().append('正在通信中(1/2)……');
},
error: function (eO, eM, eC) {
eC ? eC = eM + '.' + eC : eC = eM;
errorFun('和服务器通信失败,无法完成编辑!\n错误信息:' + eC);
$('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信失败,请刷新或重试……</span>');
unbindFun();
self.addClass('unsend');
},
success: function (data) {
if (!('error' in data) || data.error == 'internal_api_error_Exception') {
$('#welcomeAsk').empty().append('<span id="welcomeAskFinished">正在通信中(2/2)……成功!继续努力哦~</span>');
console.debug('和服务器通信成功,编辑成功! \n' + (data.error != 'internal_api_error_Exception' ? ('编辑详情:' + JSON.stringify(data).replace(/[{}\"]/g, '').replace(/\:\,/, ',')) : '服务器返回"internal_api_error_Exception",你们都懂的_(:3 」∠ )_ ') + '。');
unbindFun();
$('#mw-content-text a.new[href="' + href + '"]').removeClass('new sendWelcomeMessageLink unsend').attr('href', '/wiki/' + userName).unbind('click.sendWelcomeMessage'); //js<a>对象的href是绝对url……
} else {
$('#welcomeAsk').empty().append('<span id="welcomeAskFinished">正在通信中(2/2)……失败!请重试!</span>');
errorFun('和服务器通信成功,但编辑失败!\n编辑详情:' + JSON.stringify(data).replace(/[{}\"]/g, '').replace(/\:\,/, ','));
unbindFun();
self.addClass('unsend');
}
}
});
}
});
});
return false;
})[0]);
});
list.addClass('nopopus');
}
$(function () {
sendWelcomeMessage();
});
})();
//</pre>