مدیاویکی:Gadget-BotTools.js: تفاوت بین نسخه‌ها

از پژوهشکده امر به معروف
پرش به: ناوبری، جستجو
(صفحه‌ای تازه حاوی «$(function() { function loadPage(title, callback) { new mw.Api().get({ action: 'query', prop: 'revision...» ایجاد کرد)
 
(صفحه را خالی کرد)
 
سطر ۱: سطر ۱:
$(function() {
 
    function loadPage(title, callback) {
 
        new mw.Api().get({
 
            action: 'query',
 
            prop: 'revisions',
 
            titles: title,
 
            rvprop: 'content',
 
            format: 'json'
 
        }).done(function(data) {
 
            try {
 
                callback($.map(data.query.pages, function(value) {
 
                    return value;
 
                })[0].revisions[0]['*']);
 
            } catch (exception) {
 
                callback('');
 
            }
 
        }).fail(function(data) {
 
            callback($.map(data.query.pages, function(value) {
 
                return value;
 
            })[0].revisions[0]);
 
        });
 
    }
 
  
    function savePage(title, text, summary, callback) {
 
        new mw.Api().post({
 
            action: 'edit',
 
            title: title,
 
            text: text,
 
            summary: summary,
 
            minor: '',
 
            token: mw.user.tokens.get('editToken')
 
        }).done(function(data) {
 
            if (data.error && data.error.info) {
 
                mw.notify(data.error.info);
 
            } else {
 
                callback();
 
            }
 
        }).fail(function(data) {
 
            mw.notify(data);
 
        });
 
    }
 
 
    function CloseTalkPage(text) {
 
        text = text.replace("<!-- ↓ پایین این خط - جدید در بالا ↓ -->", "<!-- ↓ پایین این خط - جدید در بالا ↓ -->\n{{ویکی‌پدیا:گزیدن نگاره برگزیده/" + mw.config.get('wgTitle') + "}}");
 
        mw.notify('الگو پیشنهاد برگزیدگی به صفحه افزوده شد!');
 
        return text;
 
    }
 
 
    function loadSavePageRefresh(page, replaceCallback, summary) {
 
        loadPage(page, function(text) {
 
            savePage(page, replaceCallback(text), summary, function() {
 
                //window.location = mw.util.getUrl(page) + '?action=purge';
 
            });
 
        });
 
    }
 
 
    function addBotLink2(botName, id, tooltip, note, botUrl, imageUrl) {
 
        $(mw.util.addPortletLink(
 
            'p-cactions',
 
            '#',
 
            botName,
 
            id,
 
            tooltip
 
        )).click(function(e) {
 
            e.preventDefault();
 
            mw.notify(note, {
 
                autoHide: false
 
            });
 
            $.get(new mw.Uri(botUrl).extend({
 
                enwiki: mw.config.get('wgTitle'),
 
            }).toString()).then(function(result) {
 
                mw.notify(result.msg, {
 
                    autoHide: false
 
                });
 
                loadSavePageRefresh("ویکی‌پدیا:گزیدن نگاره برگزیده",
 
                    function(text) {
 
                        return CloseTalkPage(text)
 
                    }, '/' + '*افزودن نظرخواهی جدید*' + '/');
 
                var uri = new mw.Uri();
 
                uri.query = {
 
                    title: "ویکی‌پدیا:گزیدن نگاره برگزیده/" + mw.config.get('wgTitle'),
 
                    action: 'edit',
 
                    redlink: 1,
 
                    withJS: 'MediaWiki:AHK2.js',
 
                    summary: 'ایجاد صفحه نظرخواهی بر اساس ابزار',
 
                    text: result.page_content,
 
                };
 
                uri.path = mw.config.get('wgScriptPath') + '/index.php';
 
                window.location = uri.toString();
 
            })
 
        }).find('a').prepend(imageUrl ? [$('<img>', {
 
            src: imageUrl,
 
            height: 20,
 
            width: 20
 
        }), ' '] : '');
 
    }
 
 
    function addBotLink(botName, id, tooltip, note, botUrl, imageUrl) {
 
        $(mw.util.addPortletLink(
 
            'p-cactions',
 
            '#',
 
            botName,
 
            id,
 
            tooltip
 
        )).click(function(e) {
 
            e.preventDefault();
 
            mw.notify(note, {
 
                autoHide: false
 
            });
 
            $.get(new mw.Uri(botUrl).extend({
 
                title: mw.config.get('wgTitle'),
 
                fawiki: mw.config.get('wgTitle'),
 
                user: 'کاربر:' + mw.config.get('wgUserName'),
 
                namespace: mw.config.get('wgNamespaceNumber')
 
            }).toString()).then(function(result) {
 
                mw.notify(result.msg, {
 
                    autoHide: false
 
                });
 
                var resultmsg = result.msg;
 
               
 
                var uri = new mw.Uri(),
 
                    pageTitle;
 
                if (id === 'ca-eval' && mw.config.get('wgNamespaceNumber') === 0) {
 
                    pageTitle = 'بحث:' + mw.config.get('wgPageName')
 
                } else if (id === 'ca-articleneeded') {
 
                    pageTitle = resultmsg;
 
                } else {
 
                    pageTitle = mw.config.get('wgPageName')
 
                }
 
                uri.query = {
 
                    'title': pageTitle,
 
                    'diff': 'cur',
 
                    'oldid': 'prev'
 
                };
 
                uri.path = mw.config.get('wgScriptPath') + '/index.php';
 
                window.location = uri.toString();
 
            });
 
        }).find('a').prepend(imageUrl ? [$('<img>', {
 
            src: imageUrl,
 
            height: 20,
 
            width: 20
 
        }), ' '] : '');
 
    }
 
 
    if (mw.config.get('wgNamespaceNumber') === 14) {
 
        // ابزار افزودن | به اعضای رده‌ها
 
        addBotLink(
 
            ' پیش‌فرض رده',
 
            'ca-pipe',
 
            'افزودن پیش‌فرض به اعضای رده برای نمایش بهتر آنها در رده',
 
            'افزودن پیش‌فرض‌رده به رده‌ها آغاز شد، لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/rezabot/piping.php',
 
            '//upload.wikimedia.org/wikipedia/commons/8/80/Ic_flip_48px.svg'
 
        );
 
        addBotLink(
 
            'پرکردن رده (با ربات رده‌همسنگ)',
 
            'ca-filling',
 
            'افزودن صفحه به رده به کمک ربات رده همسنگ',
 
            'ربات رده همسنگ شروع به کار کرد',
 
            '//tools.wmflabs.org/rezabot/fillcat.php',
 
            '//upload.wikimedia.org/wikipedia/commons/f/fb/Ic_archive_48px.svg'
 
        );
 
        addBotLink(
 
            'فهرست مقالات مورد نیاز',
 
            'ca-articleneeded',
 
            'تهیه فهرست مقالاتی که در این رده موجودند و در ویکی‌فا وجود ندارند',
 
            'ربات در حال تهیه فهرست مقالات در زیرصفحهٔ کاربری شماست.',
 
            '//tools.wmflabs.org/rezabot/neededarticle.php',
 
            '//upload.wikimedia.org/wikipedia/commons/f/fc/Ic_assignment_48px.svg'
 
        );
 
        if (mw.config.get('wgUserGroups').indexOf('autopatrol') > -1 || mw.config.get('wgUserGroups').indexOf('sysop') > -1) {
 
            // ابزار انتقال رده فقط برای مدیران و گشت‌زن‌ها فعال شود
 
            importScript('MediaWiki:Gadget-CategoryMove.js');
 
        }
 
    }
 
    if (mw.config.get('wgNamespaceNumber') === 0) {
 
        // ابزار افزودن جعبه همسنگ
 
        // ابزار درجه‌بندی مقالات در بحث مقاله وپ:آفلاین
 
        addBotLink(
 
            ' جعبه و نگارخانه',
 
            'ca-box',
 
            'افزودن جعبه اطلاعات و نگارخانه از ویکی‌پدیای انگلیسی',
 
            'شروع دریافت جعبه و نگارخانه، لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/rezabot/getbox.php',
 
            '//upload.wikimedia.org/wikipedia/commons/c/c9/Ic_crop_original_48px.svg'
 
        );
 
        // ویکی‌سازی
 
        addBotLink(
 
            ' ویکی‌سازی',
 
            'ca-wikify',
 
            'ابزاری رباتیک برای ویکی‌سازی متن مقاله‌ها بر پایهٔ عنوان مقالات موجود',
 
            'ربات ویکی‌سازی شروع به کار کرد لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/rezabot/wikifyer.php',
 
            '//upload.wikimedia.org/wikipedia/commons/a/a5/Ic_fullscreen_36px.svg'
 
        );
 
        // ابزار اصلاح منابع ناموجود
 
        if ($('#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%B5%D9%81%D8%AD%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%A8%D8%A7_%DB%8C%D8%A7%D8%AF%DA%A9%D8%B1%D8%AF_%D8%AE%D8%B1%D8%A7%D8%A8_(%D9%81%D9%82%D8%AF%D8%A7%D9%86_%D9%85%D9%86%D8%A8%D8%B9)"]').length !== 0) {
 
            //فقط برای مقاله‌های عضو رده:صفحه‌های با یادکرد خراب (فقدان منبع)
 
            addBotLink(
 
                'منبع ناموجود',
 
                'ca-citaion',
 
                'ابزاری برای اصلاح منبع ناموجود بر پایهٔ ویکی‌پدیای انگلیسی',
 
                'اصلاح منبع ناموجود شروع شد، لطفاً کمی صبر کنید.',
 
                '//tools.wmflabs.org/dexbot/e.php',
 
                '//upload.wikimedia.org/wikipedia/commons/c/c7/Ic_comment_48px.svg'
 
            );
 
        }
 
        // ابزار گروه‌بندی ارجاع‌ها
 
        addBotLink(
 
            ' گروه‌بندی ارجاع',
 
            'ca-ref-group',
 
            'گروه‌بندی ارجاع‌ها',
 
            'کد گروه‌بندی ارجاع‌ها شروع شد، لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/rezabot/groupingRef.php',
 
            '//upload.wikimedia.org/wikipedia/commons/c/ca/Ic_games_48px.svg'
 
        );
 
        // ابزار ربات زیباسازی
 
        /*
 
        addBotLink(
 
            ' زیباسازی',
 
            'ca-cosmetic',
 
            'زیباسازی و ابرابزار',
 
            'زیباسازی و اعمال کد ابرابزار شروع شد، لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/rezabot/cosmetic.php'
 
        );*/
 
    }
 
    if (mw.config.get('wgNamespaceNumber') === 0 || mw.config.get('wgNamespaceNumber') === 1) {
 
        // ابزار درجه‌بندی مقالات در بحث مقاله وپ:آفلاین
 
        addBotLink(
 
            ' ارزشیابی',
 
            'ca-eval',
 
            'ابزار ارزشیابی مقاله‌ها توسط ربات در بحث مقاله (وپ:آفلاین)',
 
            'شروع ارزشیابی، لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/rezabot/ranking.php',
 
            '//upload.wikimedia.org/wikipedia/commons/2/22/Ic_iso_48px.svg'
 
        );
 
    }
 
    // ابزار حذف پیوند به بیرون اسپم
 
 
    if ((mw.config.get('wgUserGroups').indexOf('autopatrol') > -1 || mw.config.get('wgUserGroups').indexOf('sysop') > -1) && mw.config.get('wgNamespaceNumber') > -1) {
 
        // شرط برای کاربری که گشت خودکار دارد
 
        // ابزار حذف الگوهای ناموجود
 
        addBotLink(
 
            ' الگوهای حذف‌شده',
 
            'ca-r-temp',
 
            'برداشتن الگوهای حذف‌شده از مقاله',
 
            'شروع حذف الگو از مقاله، لطفاً کمی صبر کنید.',
 
            'tools.wmflabs.org/ptbot/api/q_remove_templates.php',
 
            '//upload.wikimedia.org/wikipedia/commons/d/d2/Ic_remove_circle_48px.svg'
 
        );
 
    }
 
    if (mw.config.get('wgNamespaceNumber') === 6) {
 
        // ابزار نامزد کردن تصاویر برگزیده
 
        addBotLink2(
 
            'برگزیدن نگاره',
 
            'ca-eval',
 
            'ابزار نامزد کردن نگاره‌ها در وپ:گنب',
 
            'شروع نامزد کردن، لطفاً کمی صبر کنید.',
 
            '//tools.wmflabs.org/dexbot/anab.php',
 
            '//upload.wikimedia.org/wikipedia/commons/2/29/Ic_folder_special_48px.svg'
 
        );
 
    }
 
    // Permanent link
 
    if (mw.config.get('wgNamespaceNumber') > -1) {
 
        $('#t-permalink').append(' ', $('<a>', {
 
            href: "#",
 
            style: "font-size:12px;color:blue",
 
            html: "&#10012;"
 
        }).click(function (e) {
 
            e.preventDefault();
 
            prompt('پیوند پایدار', '[[Special:PermaLink/' + mw.config.get('wgRevisionId') + ']]');
 
        }));
 
    }
 
});
 

نسخهٔ کنونی تا ‏۸ خرداد ۱۳۹۵، ساعت ۰۷:۵۸