User:Darqam/common.js

From Guild Wars 2 Wiki
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
//taken from User:Chieftain Alex/common.js (all of this)
// Encode wiki links that might break, e.g. ampersands.
function encodeWikiElements(selector, attribute) {
  $(selector).each(function (i, element){
    var m = $(this).attr(attribute).match(/^(\/index\.php\?title=)(.*?)(&action=.*)$/);
    if ((m) && ( $(this).attr(attribute).search('%') === -1) ) { $(this).attr(attribute, m[1] + encodeURIComponent(m[2]) + m[3]); }
  });
}
encodeWikiElements('a[href]','href');
encodeWikiElements('form[action]','action');

/** Function to provide copypaste text to hide users from RC **/
(function addRCSnippet () {
    if (mw.config.get('wgCanonicalSpecialPageName') === 'Recentchanges') {
        var string = "$('a[title=\"User:Anon\"]').closest('tr').addClass('hide');";
        $('#rcQuickLinks tbody').append('<tr><th></th><td><code>'+string+'</code></td></tr>');
    }
})();

//Original function from Poke, revised by myself:
(function isSigned() {
    var isTalkPage = mw.config.get('wgPageName').toLowerCase().indexOf('talk:') > -1;
    if (isTalkPage == true) {
        $('#editform').submit(function checkSignature(event) {
            var editContent = document.getElementById('wpTextbox1').value;
            editContent = editContent.trim();//once got all page, remove trailing whitespaces
            if (editContent.endsWith('~~') === false) {
                if (confirm('Signature not found, submit anyway?') == false) {//if user hits cancel, don't proceed with submit action
                    event.preventDefault();
                    return false;
                }             
            }
        });
    }
})();

//Things break, yeah?
(function getRequest() {
if(mw.config.get('wgPageName') !== "User:Darqam/sandbox3") return;
var key = "30C0FABF-FD8C-C14C-813B-745CE1147B14328949E3-9B39-4022-BA4F-953382A37C11";
var request = new XMLHttpRequest();
  request.open('GET', "https://api.guildwars2.com/v2/characters/Darqam?access_token="+key, true);
  request.send();

  request.addEventListener('load', function() {
    var data = JSON.parse(this.response);
    var thing = data.specializations.pve;
    var output = "";
    var specIds = new Array();
    var specNames = new Array();
    var traitIds = new Array();
    var traitNames = new Array();
    Object.keys(thing).forEach( function(curSpec) {
      specIds.push(thing[curSpec].id);
      thing[curSpec].traits.forEach( function(curTrait) {
        traitIds.push(curTrait);
      })
    });
    var specs = new XMLHttpRequest();
    specs.open('GET', "https://api.guildwars2.com/v2/specializations?ids="+specIds.join(","));
    specs.send();
    specs.addEventListener('load', function() { 
      var specializations = JSON.parse(this.response);
      Object.keys(specializations).forEach( function(specObj) {
        specNames.push(specializations[specObj].name);
      });
      
      var trts = new XMLHttpRequest();
      trts.open('GET', "https://api.guildwars2.com/v2/traits?ids="+traitIds.join(","));
      trts.send();
      trts.addEventListener('load', function() { 
        
        var traits = JSON.parse(this.response);
        Object.keys(traits).forEach( function(traitObj) {
          traitNames.push(traits[traitObj].name);
        });
      
       var output = "";
       for(var i=0;i<specNames.length;i++){
        output += "For the specialization "+specNames[i]+" we have traits "+traitNames[i*3]+", "+traitNames[i*3+1]+", "+traitNames[i*3+2]+".<br/> "
       }
       $('#myTest').append(output);
      });
    });
    
  });

})();