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

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

来自舰R百科
跳转到导航 跳转到搜索
(创建页面,内容为“→‎这里的任何JavaScript将只为管理员加载:​ →‎global mediaWiki:​ //<pre> mw傻逼,不写<pre/>三个以上波浪号全都要替换,傻得要死 (fu...”
 
无编辑摘要
 
(未显示同一用户的13个中间版本)
第2行: 第2行:
/* global mediaWiki */
/* global mediaWiki */
//<pre> mw傻逼,不写<pre/>三个以上波浪号全都要替换,傻得要死
//<pre> mw傻逼,不写<pre/>三个以上波浪号全都要替换,傻得要死
(function () {
(function(mw) {
     if (!String.prototype.includes) String.prototype.includes = function includes(search, start) {
     if (!String.prototype.includes) String.prototype.includes = function includes(search, start) {
         'use strict';
         'use strict';
第9行: 第9行:
         return this.indexOf(search, start) !== -1;
         return this.indexOf(search, start) !== -1;
     };
     };
     function sendWelcomeMessage() {
     mw.loader.implement('AnnToolsSendWelcomeMessage', function() {
         var message = '{{Template:欢迎}} ——~~~~{{clear}}',
         var message = '{{Template:欢迎}} ——~~~~{{clear}}',
             errorFun = function errorFun(eM) {
             errorFun = function errorFun(textStatus, self) {
                 if (window.console) console.error(eM + "。\n你如果想要帮助我们解决这个问题,请将这条报错信息发送至: annangela@moegirl.org.");
                 $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信失败,请刷新或重试【' + textStatus + '】……</span>');
                unbindFun();
                self.addClass('unsend');
                 return false;
                 return false;
             },
             },
第18行: 第20行:
                 if ($('#welcomeClear').length > 0) $('#welcomeClear').remove();
                 if ($('#welcomeClear').length > 0) $('#welcomeClear').remove();
                 $('#welcomeAsk').append('<span id="welcomeClear">返回</span>');
                 $('#welcomeAsk').append('<span id="welcomeClear">返回</span>');
                 $('#welcomeClear').bind('click.welcome', function () {
                 $('#welcomeClear').on('click.welcome', function() {
                     $('#welcomeAsk').remove();
                     $('#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);
         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),
         function check(that, onClick) {
                href = self.attr('href'),
            if (!$(that).is('#mw-content-text a.new')) return;
                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 (!/(?=title\=用户讨论\:)[^\&]+/i.test(decodeURI(that.href))) return;
             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 () {
            try {
                if ($('#welcomeAskFinished')[0]) $('#welcomeClear').click();
                var self = $(that),
                if ($('#welcomeAsk')[0]) {
                    href = decodeURI(self.attr('href')),
                    self.after('<span class="welcomeAsk">一次只能发送一份欢迎辞哦,不要太贪心了~<span id="welcomeClear2">返回</span></span>');
                    userName = href.match(/(?=用户讨论\:)[^\&]+/i)[0].replace(/用户讨论\:/i, '');
                    $('#welcomeClear2').bind('click.welcome', function () {
            } catch (e) {
                        $(this).parent().remove();
                return;
            }
             if (href.includes('用户讨论') && href.includes('redlink=1') && href.includes('action=edit') && !userName.includes('/')) {
                self.addClass('sendWelcomeMessageLink unsend nopopus').on('click.sendWelcomeMessage', function() {
                    if ($('#welcomeAskFinished')[0]) $('#welcomeClear').click();
                    if ($('#welcomeAsk')[0]) {
                        self.after('<span class="welcomeAsk">一次只能发送一份欢迎辞哦,不要太贪心了~<span id="welcomeClear2">返回</span></span>');
                        $('#welcomeClear2').on('click.welcome', function() {
                            $(this).parent().remove();
                        });
                        return false;
                    }
                    if (/[&\/]+/.test(userName)) {
                        window.open(href, '_blank');
                        return errorFun('地址解析出错!\n原地址:' + href + ',解析用户讨论页标题结果:User talk:' + userName);
                    }
                    self.removeClass('unsend').after('<span id="welcomeAsk">你想直接发送欢迎辞还是访问该未创建页面?<span id="welcomeYes">发送欢迎辞</span> · <span id="welcomeNo">访问该页面</span> · <span id="welcomeClear">返回</span></span>');
                    $('#welcomeNo').on('click.welcome', function() {
                        window.open(href, '_blank');
                    });
                    $('#welcomeClear').on('click.welcome', function() {
                        $('#welcomeAsk').remove();
                     });
                     });
                     return false;
                     $('#welcomeYes').on('click.welcome', function() {
                }
                        var api = new mw.Api();
                if (/[&\/]+/.test(userName)) {
                        $('#welcomeAsk').empty().append('正在通信中……');
                    window.open(href, '_blank');
                        api.postWithToken('csrf', {
                    return errorFun('地址解析出错!\n原地址:' + href + ',解析用户讨论页标题结果:' + userName);
                            'action': 'edit',
                }
                            'format': 'json',
                self.removeClass('unsend').after('<span id="welcomeAsk">你想直接发送欢迎辞还是访问该未创建页面?<span id="welcomeYes">发送欢迎辞</span> · <span id="welcomeNo">访问该页面</span> · <span id="welcomeClear">返回</span></span>');
                            'title': '用户讨论:' + userName,
                $('#welcomeNo').bind('click.welcome', function () {
                            'summary': 'Welcome to ZJSNR Wiki',
                    window.open(href, '_blank');
                            'text': message
                });
                        }).then(function(data) {
                $('#welcomeClear').bind('click.welcome', function () {
                             $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信成功!继续努力哦~</span>');
                    $('#welcomeAsk').remove();
                            console.debug('和萌百服务器通信成功,编辑成功! \n' + (data.error != 'internal_api_error_Exception' ? ('编辑详情:' + JSON.stringify(data).replace(/[{}\"]/g, '').replace(/\:\,/, ',')) : '萌百服务器返回"internal_api_error_Exception",你们都懂的_(:3 」∠ )_ ') + '。');
                });
                $('#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();
                             unbindFun();
                             self.addClass('unsend');
                             $('#mw-content-text a.new[href="' + encodeURI(href) + '"]').removeClass('new sendWelcomeMessageLink unsend').attr('href', '/User_talk:' + userName).unbind('click.sendWelcomeMessage'); //js<a>对象的href是绝对url……
                        },
                        }, function(textStatus, status) {
                        type: 'GET',
                            if (textStatus === 'internal_api_error_Exception') {
                        url: 'http://www.zjsnrwiki.com/MediaWiki/Api.php?action=query&meta=tokens&format=json',
                                $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信成功!继续努力哦~</span>');
                        success: function (data) {
                                console.debug('和萌百服务器通信成功,编辑成功! \n萌百服务器返回"internal_api_error_Exception",你们都懂的_(:3 」∠ )_ 。');
                            $.ajax({
                                unbindFun();
                                type: "POST",
                                $('#mw-content-text a.new[href="' + encodeURI(href) + '"]').removeClass('new sendWelcomeMessageLink unsend').attr('href', '/User_talk:' + userName).unbind('click.sendWelcomeMessage'); //js<a>对象的href是绝对url……
                                url: "http://www.zjsnrwiki.com/MediaWiki/Api.php",
                            } else if ($.isPlainObject(status)) {
                                data: {
                                $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">正在通信中(2/2)……失败!请重试!</span>');
                                    'action': 'edit',
                                errorFun('和萌百服务器通信成功,但编辑失败!\n编辑详情:' + JSON.stringify(status).replace(/[{}\"]/g, '').replace(/\:\,/g, ','));
                                    'format': 'json',
                                unbindFun();
                                    'title': userName,
                                self.addClass('unsend');
                                    'token': data.query.tokens.csrftoken,
                             } else errorFun(textStatus, self);
                                    '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;
                 });
                 });
                if (onClick) self.click();
                 return false;
                 return false;
             })[0]);
             }
        }
        $(document.body).on('click', function(event) {
            check(event.target, true);
        });
        $('#mw-content-text a.new').each(function() {
            check(this);
         });
         });
         list.addClass('nopopus');
         $("<style id='sendWelcomeMessage'>#welcomeAsk,.welcomeAsk{border:#bbeeff 1px solid;margin:0 3px 0 7px} #welcomeYes,#welcomeNo,#welcomeClear,#welcomeClear2{cursor:pointer;color:purple}.sendWelcomeMessageLink.unsend:after{content:'S';color:purple;line-height:1;vertical-align:super;font-size:smaller}.sendWelcomeMessageLink{text-decoration:none!important}</style>").appendTo("head");
    }
    $(function () {
        sendWelcomeMessage();
     });
     });
})();
})(mediaWiki);
//</pre>
//</pre>

2017年5月16日 (二) 18:42的最新版本

/* 这里的任何JavaScript将只为管理员加载 */
/* global mediaWiki */
//<pre> mw傻逼,不写<pre/>三个以上波浪号全都要替换,傻得要死
(function(mw) {
    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;
    };
    mw.loader.implement('AnnToolsSendWelcomeMessage', function() {
        var message = '{{Template:欢迎}} ——~~~~{{clear}}',
            errorFun = function errorFun(textStatus, self) {
                $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信失败,请刷新或重试【' + textStatus + '】……</span>');
                unbindFun();
                self.addClass('unsend');
                return false;
            },
            unbindFun = function unbindFun() {
                if ($('#welcomeClear').length > 0) $('#welcomeClear').remove();
                $('#welcomeAsk').append('<span id="welcomeClear">返回</span>');
                $('#welcomeClear').on('click.welcome', function() {
                    $('#welcomeAsk').remove();
                });
            };
        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);

        function check(that, onClick) {
            if (!$(that).is('#mw-content-text a.new')) return;
            if (!/(?=title\=用户讨论\:)[^\&]+/i.test(decodeURI(that.href))) return;
            try {
                var self = $(that),
                    href = decodeURI(self.attr('href')),
                    userName = href.match(/(?=用户讨论\:)[^\&]+/i)[0].replace(/用户讨论\:/i, '');
            } catch (e) {
                return;
            }
            if (href.includes('用户讨论') && href.includes('redlink=1') && href.includes('action=edit') && !userName.includes('/')) {
                self.addClass('sendWelcomeMessageLink unsend nopopus').on('click.sendWelcomeMessage', function() {
                    if ($('#welcomeAskFinished')[0]) $('#welcomeClear').click();
                    if ($('#welcomeAsk')[0]) {
                        self.after('<span class="welcomeAsk">一次只能发送一份欢迎辞哦,不要太贪心了~<span id="welcomeClear2">返回</span></span>');
                        $('#welcomeClear2').on('click.welcome', function() {
                            $(this).parent().remove();
                        });
                        return false;
                    }
                    if (/[&\/]+/.test(userName)) {
                        window.open(href, '_blank');
                        return errorFun('地址解析出错!\n原地址:' + href + ',解析用户讨论页标题结果:User talk:' + userName);
                    }
                    self.removeClass('unsend').after('<span id="welcomeAsk">你想直接发送欢迎辞还是访问该未创建页面?<span id="welcomeYes">发送欢迎辞</span> · <span id="welcomeNo">访问该页面</span> · <span id="welcomeClear">返回</span></span>');
                    $('#welcomeNo').on('click.welcome', function() {
                        window.open(href, '_blank');
                    });
                    $('#welcomeClear').on('click.welcome', function() {
                        $('#welcomeAsk').remove();
                    });
                    $('#welcomeYes').on('click.welcome', function() {
                        var api = new mw.Api();
                        $('#welcomeAsk').empty().append('正在通信中……');
                        api.postWithToken('csrf', {
                            'action': 'edit',
                            'format': 'json',
                            'title': '用户讨论:' + userName,
                            'summary': 'Welcome to ZJSNR Wiki',
                            'text': message
                        }).then(function(data) {
                            $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信成功!继续努力哦~</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="' + encodeURI(href) + '"]').removeClass('new sendWelcomeMessageLink unsend').attr('href', '/User_talk:' + userName).unbind('click.sendWelcomeMessage'); //js<a>对象的href是绝对url……
                        }, function(textStatus, status) {
                            if (textStatus === 'internal_api_error_Exception') {
                                $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">通信成功!继续努力哦~</span>');
                                console.debug('和萌百服务器通信成功,编辑成功! \n萌百服务器返回"internal_api_error_Exception",你们都懂的_(:3 」∠ )_ 。');
                                unbindFun();
                                $('#mw-content-text a.new[href="' + encodeURI(href) + '"]').removeClass('new sendWelcomeMessageLink unsend').attr('href', '/User_talk:' + userName).unbind('click.sendWelcomeMessage'); //js<a>对象的href是绝对url……
                            } else if ($.isPlainObject(status)) {
                                $('#welcomeAsk').empty().append('<span id="welcomeAskFinished">正在通信中(2/2)……失败!请重试!</span>');
                                errorFun('和萌百服务器通信成功,但编辑失败!\n编辑详情:' + JSON.stringify(status).replace(/[{}\"]/g, '').replace(/\:\,/g, ','));
                                unbindFun();
                                self.addClass('unsend');
                            } else errorFun(textStatus, self);
                        });
                    });
                    return false;
                });
                if (onClick) self.click();
                return false;
            }
        }
        $(document.body).on('click', function(event) {
            check(event.target, true);
        });
        $('#mw-content-text a.new').each(function() {
            check(this);
        });
        $("<style id='sendWelcomeMessage'>#welcomeAsk,.welcomeAsk{border:#bbeeff 1px solid;margin:0 3px 0 7px} #welcomeYes,#welcomeNo,#welcomeClear,#welcomeClear2{cursor:pointer;color:purple}.sendWelcomeMessageLink.unsend:after{content:'S';color:purple;line-height:1;vertical-align:super;font-size:smaller}.sendWelcomeMessageLink{text-decoration:none!important}</style>").appendTo("head");
    });
})(mediaWiki);
//</pre>