Jump to content

ميډياويکي:Gadget-PashtoAds.js

د ويکيپېډيا، وړیا پوهنغونډ له خوا

د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئيادښت: د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئ.

  • فايرفاکس/ سفري: په دې کتنمل کې د Reload د ټکوهلو په وخت د Shift تڼۍ نيولې وساتی، او يا هم Ctrl-F5 يا Ctrl-Rتڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ⌘-R کېښکاږۍ)
  • گووگل کروم: په دې کتنمل کې د Ctrl-Shift-R تڼۍ کېښکاږۍ (د مک لپاره ⌘-Shift-R)
  • انټرنټ اېکسپلورر: په دې کتنمل کې د Refresh د ټکوهلو په وخت کې د Ctrl تڼۍ کېښکاږلې ونيسۍ، او يا هم د Ctrl-F5 تڼۍ کېښکاږۍ
  • اوپرا: په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توگه سپينولی شی Tools→Preferences
لاسوند[جوړول]
$.when(
    $.getJSON(mw.config.get('wgScript') + '?action=raw&ctype=application/json&maxage=5&title=MediaWiki:اعلان/اعلانونه.json'),
    mw.loader.using(['mediawiki.util']),
    $.ready
).then(function (jsonData) {
    let ads = jsonData[0];
    let validAds = [];
    const datestring = (new Date).toISOString();
    const Adkey = 'pashto-ads-last';
    const Adcookie = 'pashtoad-dismiss-';
    ads.forEach(ad => {
        if ((ad.start < datestring) && (ad.end > datestring && mw.cookie.get(Adcookie + ad.id) !== '1')) {
            validAds.push(ad);
        }
    });
    let cad;
    if (validAds.length == 1) {
        cad = validAds[0];
    } else if (validAds.length > 1) {
        let lastAd = Number(mw.cookie.get(Adkey)) || -1;

        if (lastAd > -1) {
            for (let i = 0; i < validAds.length; i++) {
                if (validAds[i].id > lastAd) {
                    cad = validAds[i];
                    break;
                }
            }
            if (cad === undefined) {
                cad = validAds[0];
            }
        } else {
            cad = validAds[Math.floor(Math.random() * validAds.length)];
        }
    }

    if (cad !== undefined) {
        mw.cookie.set(Adkey, cad.id, { expires: 7 * 86400, path: '/' });
        $.get('/w/api.php?action=parse&format=json&prop=text&page=MediaWiki:اعلان/' + cad.page, function (getData) {
            $("#siteNotice").append('<div class="pashtoads-notice" data-id="' + cad.id + '"><div class="pashtoads-notice-close" style="visibility: visible;"><a role="button" title="بندول"></a></div>' 
            + getData.parse.text['*'].replace(/<!--[\s\S]*?-->/g, '') + '</div>');

            $( function () {
                // eslint-disable-next-line no-jquery/no-global-selector
                $( '.pashtoads-notice-close' )
                    .find( 'a' )
                    .on( 'click keypress', function ( e ) {
                        if (
                            e.type === 'click' ||
                            e.type === 'keypress' && e.which === 13
                        ) {
                            const p = $( this ).closest( '.pashtoads-notice' );
                            p.hide();
                            mw.cookie.set(Adcookie + p.data('id'), '1', { expires: 7 * 86400, path: '/' });
                        }
                    } );
            } );
        
        } )
    }
});