User:SoledadKabocha/common-rewrite.js

// NOT FINISHED - For refactoring of my personal common.js; will be placed there when finished

// // Initialize constants that do not depend on properties of mw // var dt  = new Date; window.dtH = dt.getHours; window.dtM = dt.getMinutes; window.dtUDm = dt.getUTCDate; window.dtUDw = dt.getUTCDay;

window.zzSentinel = dt.getSeconds + Math.random;

// assume no real backend response time can be that fast; should revisit later window.zzSentinelBackendResponseTime = 1;

// toggle uncat display (potentially) every 20 minutes, // with the boundary of the 20-min intervals shifted by +/- 1 min // based on something slowly varying (i.e. my edit count) window.dtUnitMapping = [ Math.min( dtH + dtUDw, dtUDm ), dtH, Math.max( dtH + dtUDw, dtUDm ) ]; // rest of this logic needs mw.config.get; see below

//using gadget LocalComments = { dateDifference: true, dateFormat: 'dmy', timeFirst: true, twentyFourHours: true, dayOfWeek: true, dropDays: 121, dropMonths: 30 };

function realCommonStuff( dblag ) { // Import and configure all sub-scripts // (For simplicity, importing should be unconditional. // Avoid dependence on whether or not we are editing,  // like I did in my original common.js.) }

mw.loader.using( [ 'mediawiki.util', 'mediawiki.user' ], function {  // Initialize constants that do depend on properties of mw  // (by "constants" I also mean functions not loaded from external scripts)

// XXX: not actually useful in present state; //     needs to be implemented using Promise and setTimeout window.safelyGetMwConfig = function ( confName ) { var result = null, maxAttempts = 5; for ( var i = 0; i < maxAttempts; i++ ) { try { result = mw.config.get( confName ); } catch ( ex ) { /* XXX TODO */ }     if ( result !== null ) { return result; } }   return result; }

window.hideTwinklePortlet = function { mw.util.addCSS( '#p-twinkle, a[href*="twinklerevert="], div[id^="tw-revert"] { display:none; }' ); } if ( typeof mw.util.jsMessage === 'function' ) { var origMUJsM = mw.util.jsMessage; mw.util.jsMessage = function( myMsg, clss ) { if ( myMsg === 'Could not load twinkleoptions.js' && clss === undefined ) { hideTwinklePortlet; }     origMUJsM( myMsg, clss ); } }

mw.util.addPortletLink( 'p-tb', '#replaceMe', '__________', 'ca-dummysep' ); mw.util.addCSS( '#p-logo:hover { filter:blur(' + ( Math.random + Math.random ) + 'px); }' );

window.zzRealBackendResponseTime = safelyGetMwConfig( 'wgBackendResponseTime' ); window.zzBackendResponseTime = zzSentinelBackendResponseTime; if (   typeof zzRealBackendResponseTime === 'number' &&    zzRealBackendResponseTime >= 0 &&    zzRealBackendResponseTime === Math.ceil( zzRealBackendResponseTime )  ) { zzBackendResponseTime = zzRealBackendResponseTime; }

// Make AJAX request to obtain database lag // Callbacks should point to realCommonStuff const FALLBACK_LAG = 999999; } )