کاربر:Shia/scripts/refresh.js

از ویکی شیعه

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
// Add "refresh" option on category pages. Makes forceupdate nulledit on all pages in the category
// Based on [https://phabricator.wikimedia.org/T170039#3473755] and [[:he:User:IKhitron/101.js]]

mw.loader.using(['mediawiki.util', 'mediawiki.api']).then(function() {
    var step = 1;
    var count;
    var wait;

    function postPurge(cat, addParams) {
        var apiParams = $.extend({
            action: 'purge',
            generator: 'categorymembers',
            'gcmtitle': cat,
            'gcmlimit': step,
            forcelinkupdate: 1
        }, addParams);
        new mw.Api().post(apiParams)
            .fail(function() {
                alert("ناموفق");
            })
            .done(function(d) {
                console.log(d);
                count += step;
                if (d.warnings === undefined && d["continue"] !== undefined && d["continue"].gcmcontinue) {
                    mw.notify($('<div style="word-break:break-word;">صفحه‌های به‌روز شده: ' + '<span style="color: #32CD32;  -webkit-text-stroke: 0.04em black; font-weight: bold;">' + count.toLocaleString('fa') + "</span>" + ' صفحه</div>'), {
                        tag: 'refreshed'
                    });
                    setTimeout(function() {
                        postPurge(cat, d["continue"]);
                    }, wait);
                } else {
                    alert("انجام شد!");
                    document.location.reload();
                }
            });
    }
    if (mw.config.get('wgNamespaceNumber') == 14) {
        wait = 1000;
        new mw.Api().get({
            meta: 'userinfo',
            uiprop: 'ratelimits'
        }).done(function(d) {
            if (d && d.query && d.query.userinfo && d.query.userinfo.ratelimits && d.query.userinfo.ratelimits.purge)
                wait = 2000;
            $(mw.util.addPortletLink('p-cactions', '#', 'تازه‌سازی', 'pt-refresh'))
                .click(function() {
                    count = 0;
                    postPurge(mw.config.get('wgPageName')
                        .replace(/_/g, " "));
                });
        });
    }
});