舰R百科是靠无数自愿编辑者持续地建设更新完善的。编辑非常简单,请勇于更新页面!
编辑入门 | 资助百科 | 留言讨论页 | 微博@舰R百科 | 百科编辑讨论Q群:366818861

MediaWiki:Group-sysop.js:修订间差异

来自舰R百科
跳转到导航 跳转到搜索
(// Edit via Wikiplus)
(// 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('用户讨论:')) && 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();
                 if ($('#welcomeAsk')[0]) {
                 if ($('#welcomeAsk')[0]) {

2016年5月31日 (二) 14:27的版本

/* 这里的任何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')));
                if ((href.includes('User_talk') || href.includes('用户讨论:')) && 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>