Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 2: Line 2:


/* Ad Block. */
/* Ad Block. */
'use strict';
function detectAdblock() {
function detectAdblock() {
   const adblockTests = {
   var adblockTests = {
     // https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters-2022.txt
     // https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters-2022.txt
     uBlockOrigin: {
     uBlockOrigin: {
       url: 'https://incolumitas.com/data/pp34.js?sv=',
       url: 'https://incolumitas.com/data/pp34.js?sv=',
       id: '837jlaBksSjd9jh',
       id: '837jlaBksSjd9jh'
     },
     },
     // https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt
     // https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt
     adblockPlus: {
     adblockPlus: {
       url: 'https://incolumitas.com/data/neutral.js?&ad_height=',
       url: 'https://incolumitas.com/data/neutral.js?&ad_height=',
       id: 'hfuBadsf3hFAk',
       id: 'hfuBadsf3hFAk'
     },
     }
   };
   };


   function canLoadRemoteScript(obj) {
   function canLoadRemoteScript(obj) {
     return new Promise(function(resolve, reject) {
     return new Promise(function (resolve, reject) {
       var script = document.createElement('script');
       var script = document.createElement('script');


       script.onload = function() {
       script.onload = function () {
         if (document.getElementById(obj.id)) {
         if (document.getElementById(obj.id)) {
           resolve(false);
           resolve(false);
Line 28: Line 30:
       };
       };


       script.onerror = function() {
       script.onerror = function () {
         resolve(true);
         resolve(true);
       };
       };
Line 37: Line 39:
   }
   }


   return new Promise(function(resolve, reject) {
   return new Promise(function (resolve, reject) {
     let promises = [
     var promises = [canLoadRemoteScript(adblockTests.uBlockOrigin), canLoadRemoteScript(adblockTests.adblockPlus)];
      canLoadRemoteScript(adblockTests.uBlockOrigin),
      canLoadRemoteScript(adblockTests.adblockPlus),
    ];


     Promise.all(promises).then((results) => {
     Promise.all(promises).then(function (results) {
       resolve({
       resolve({
         uBlockOrigin: results[0],
         uBlockOrigin: results[0],
         adblockPlus: results[1],
         adblockPlus: results[1]
       });
       });
     }).catch((err) => {
     }).catch(function (err) {
       reject(err);
       reject(err);
     });
     });
Line 54: Line 53:
}
}


detectAdblock().then((res) => {
detectAdblock().then(function (res) {
   alert("Hello Works!");
   alert("Hello Works!");
});
});

Revision as of 05:51, 6 October 2022

/* Any JavaScript here will be loaded for all users on every page load. importScript('User:Rillke/bigChunkedUpload.js');*/

/* Ad Block. */
'use strict';

function detectAdblock() {
  var adblockTests = {
    // https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters-2022.txt
    uBlockOrigin: {
      url: 'https://incolumitas.com/data/pp34.js?sv=',
      id: '837jlaBksSjd9jh'
    },
    // https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt
    adblockPlus: {
      url: 'https://incolumitas.com/data/neutral.js?&ad_height=',
      id: 'hfuBadsf3hFAk'
    }
  };

  function canLoadRemoteScript(obj) {
    return new Promise(function (resolve, reject) {
      var script = document.createElement('script');

      script.onload = function () {
        if (document.getElementById(obj.id)) {
          resolve(false);
        } else {
          resolve(true);
        }
      };

      script.onerror = function () {
        resolve(true);
      };

      script.src = obj.url;
      document.body.appendChild(script);
    });
  }

  return new Promise(function (resolve, reject) {
    var promises = [canLoadRemoteScript(adblockTests.uBlockOrigin), canLoadRemoteScript(adblockTests.adblockPlus)];

    Promise.all(promises).then(function (results) {
      resolve({
        uBlockOrigin: results[0],
        adblockPlus: results[1]
      });
    }).catch(function (err) {
      reject(err);
    });
  });
}

detectAdblock().then(function (res) {
  alert("Hello Works!");
});

Advertising: