MediaWiki:DataFetch.js

De ARK Wiki
Aller à la navigation Aller à la recherche

Dans d’autres langues: EnglishEspañolItaliano日本語PolskiPortuguês do BrasilРусский


Tous changements apportés au fichiers CSS et Javascript doivent être conforme aux règles de design du wiki.


Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac)
  • Google Chrome : appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac)
  • Internet Explorer : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5
  • Opera : allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d’exploration → Images et fichiers en cache.
var shouldBypassCache = window.location.search.substr( 1 ).split( '&' ).indexOf( 'arkdata=no-cache' ) >= 0;
var CACHE_DURATION = shouldBypassCache ? 1 : 60 * 60 * 36;

window.arkLoadDataPages = function( pages, forceRecacheId ) {
    var results = {},
        scriptPath = mw.config.get( 'wgScriptPath' );

    return Promise.all( pages.map( function ( pageName ) {
        var isRequestingMain = pageName.startsWith( 'en:' ),
            outName = pageName,
            query = {
                action: 'raw',
                ctype: 'application/json',
                maxage: CACHE_DURATION,
                smaxage: CACHE_DURATION,
            };
        if ( forceRecacheId ) {
            query.cb = forceRecacheId;
        }
        if ( isRequestingMain ) {
            pageName = pageName.slice( 3 );
        }

        var url = mw.util.getUrl( pageName, query );
        if ( isRequestingMain && mw.config.get( 'wgContentLanguage' ) !== 'en' && url.startsWith( scriptPath ) ) {
            url = url.slice( scriptPath.length );
        }

        return fetch( url ).then( function ( response ) {
            return response.json().then( function ( data ) {
                results[outName] = data;
            } );
        } );
    } ) ).then( function () {
        return Promise.resolve( results );
    } );
};