Utilisateur:IruleManik/Widget/Générateur de pages/Apparences de la garde-robe

De Guild Wars 2 Wiki
Aller à la navigation Aller à la recherche

Note : après avoir publié 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 appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
<includeonly>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.7.1.min.js"></script>
<div>
<p id="widgetrecherche" width = "50%" style = "display:block">
<a id = "pagetitle" style = 'background-image:url("https://wiki.guildwars2.com/images/3/39/User_Alfa-R_infobox_hader_overlay.png")';></a>
<img id = "icon"></img></p>
</div>
<div id = "resultat"></div>
<script type="text/javascript">
	var champRecherche = $('<input type="text" />');
	var buttonRecherche = $('<button>Chercher</button>');
	var champResultat = $('<textarea cols="180" rows="15"></textarea>');

        $('#pagetitle').css('font-family', 'IM Fell DW Pica');
        $('#pagetitle').css('left', '');
        $('#pagetitle').css('font-size', '25px');
        $('#pagetitle').css('top', '20px');

	$('#widgetrecherche').append(champRecherche);
	$('#widgetrecherche').append(buttonRecherche);
	$('#resultat').append(champResultat);

	champResultat.css('display','none')

	champResultat.click(function () { champResultat.select(); });

	buttonRecherche.click(function () {
		var id = champRecherche.val();
		champResultat.css('display','none')

		getPages(id, function (response) {

			champResultat.css('display','block');
			champResultat.css('margin-top','50px');
			champResultat.val(processResultat(response));
			champResultat.select();
		});
	});

function getPages(id, callback, languages) {
    if (languages === undefined) {
        languages = ['fr', 'de', 'en', 'es'];
    }

    var data = null;
    var count = 0;

    languages.forEach(function (lang) {
        $.getJSON("https://api.guildwars2.com/v2/skins/" + id + "?lang=" + lang , function (response) {
            if (data === null) {
                data = response;

                var name = {};
                name[lang] = response.name;
                data.name = name;
            } else {
                data.name[lang] = response.name;
            }

            count += 1;

            if (count === languages.length) {
                callback(data);
            }
	});
    });
}

function processResultat(data) {
    var content = '';
    if (data) {
        switch (data.type) {
            case 'Armor':
            case 'Weapon':
            case 'Back':
                content = genererInfoboxObjet(data);
                break;
            default:
                content = 'Erreur : id d\'objet invalide3';
        }
    } else {
        content = 'Erreur : id d\'objet invalide2'
    };
        return content;
}

// Cette fonction génère l'infobox
function genererInfoboxObjet(data) {
    $('#icon').css("border", "4px solid #F5B11D");
    $('#icon').attr("src", data.icon);
    $('#pagetitle').attr("href", "https://wiki-fr.guildwars2.com/wiki/" + data.name.fr).append(data.name.fr);
    $('#pagetitle').css("background-color", "#F5B11D");
    $('#pagetitle').css("padding", "0 10px 0 10px");
    $('#pagetitle').css("background-image", "url('https://wiki.guildwars2.com/images/3/39/User_Alfa-R_infobox_hader_overlay.png') !important;")
    var content = '';

    content += "{{Infobox apparence\r\n";

    switch(data.type) {
        case 'Armor': //Armure
            content += "| type = " + armortype(data.details.type) + '\r\n';
            content += "| type d'armure = " + armorweight(data.details.weight_class) + '\r\n';
            break;
        case 'Weapon': //Arme
            content += "| type = " + weapontype(data.details.type) + '\r\n';
            break;
        case 'back': //Objet de dos
            content += '| type = objet de dos\r\n';
            break;
    } 

    if (data.description) {
        content += "| description = " + data.description.replace('<c=@flavor>', '').replace('</c>"', "") + "\r\n";
    }
    for (var i = 0; i < data.flags.length; i++) {
        if (data.flags[i] === "NoCost") {
            content += "| application = gratuite \r\n";
        }
        break
    }

    if (data.restrictions.length < 1 ) {
    } else {
        content += "| race = " + racerestrictions(data.restrictions) + '\r\n';
    }

    content += '| id = ' + data.id + '\r\n';
    content += "}} \r\n";
    content += "\r\n";

    // Phrase d'intro
    switch (data.type) {
        case 'Armor': //Armure
            content += prépositionintro_armure(data.name.fr) + ' une apparence ' + prépositiontype(apparencetype(data.details.type, data.details.weight_class)) + ' de la [[garde-robe]]. \r\n'
            break;
        case 'Weapon': //Arme
            content += prépositionintro(data.name.fr) + ' est une apparence ' + prépositiontype(weapontype(data.details.type)) + ' de la [[garde-robe]]. \r\n'
            break;
        case 'Back': //Objet de dos
            content += prépositionintro(data.name.fr) + ' une apparence d\'[[objet de dos]] de la [[garde-robe]]. \r\n'
    }
    content += '\r\n'

    content += "{{liste de pièces d'équipement par apparence}}"

    content += interwikis(data)

    return content.replace("undefined", "")
}

// Type d'armure
function armorweight(str) {

    var classe

    switch (str) {
        case "Light":
            classe = 'léger';
            break;
        case "Medium":
            classe = 'intermédiaire';
            break;
        case "Heavy":
            classe = 'lourd';
            break
    }

    return classe

}

//Emplacement d'armure
function armortype(str) {

    var emplacement

    switch (str) {
        case "Boots":
            emplacement = 'pieds';
            break;
        case "Leggings":
            emplacement = 'jambes';
            break;
        case "Coat":
            emplacement = 'torse';
            break;
        case "Gloves":
            emplacement = 'mains';
            break;
        case "Shoulders":
            emplacement = 'épaules';
            break;
        case "Helm":
            emplacement = 'tête';
            break;
        case "HelmAquatic":
            emplacement = 'aqua-respirateur ';
            break;
    }

    return emplacement

}

//Type d'arme
function weapontype(arme) {

    var type

    switch (arme) {
        case "Axe":
            type = "hache";
            break;
        case "Dagger":
            type = "dague";
            break;
        case "Focus":
            type = "focus";
            break;
        case "Greatsword":
            type = "espadon";
            break;
        case "Hammer":
            type = "marteau";
            break;
        case "Harpoon":
            type = "lance";
            break;
        case "LongBow":
            type = "arc long";
            break;
        case "Mace":
            type = "masse";
            break;
        case "Pistol":
            type = "pistolet";
            break;
        case "Rifle":
            type = "fusil";
            break;
        case "Scepter":
            type = "sceptre";
            break;
        case "Shield":
            type = "bouclier";
            break;
        case "ShortBow":
            type = "arc court";
            break;
        case "Speargun":
            type = "fusil-harpon";
            break;
        case "Staff":
            type = "bâton";
            break;
        case "Sword":
            type = "épée";
            break;
        case "Torch":
            type = "torche";
            break;
        case "Trident":
            type = "trident";
            break;
        case "Warhorn":
            type = "cor de guerre";
            break;

    }

    return type

}

//Phrase d'intro pour les armures
function prépositionintro_armure(str) {

    if (str.match(/collier|corselet|pantalon|gilet|harnois|haubert|plastron|pourpoint|bandana|bandeau|manteau|bonnet|capuchon|casque|chapeau|conique|diadème|cornes|heaume|linceuil|lunettes|masque|monocle|visage/i) && str !== /épée|lance-harpon|super/i) {

        intro = "Le [[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']] est'

    } else if (str.match(/charge|parure|livrée|pansière|jupe|veste|cuirasse|cotte|broigne|tunique|veste|capuche|coiffe|couronne|houppelande|visière/i)) {

        intro = "La [[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']] est'

    } else if (str.match(/armure|appareil|echarpe|esprit|aqua|hydro/i)) {

        intro = "L'[[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']] est'

    } else if (str.match(/bottes|grèves|pattes|chausses|sandales|cuissardes|croquenots|grèves|chausses|tassettes|garde-jambes|jambières|brassards|manchettes|poignes|poings|cornes|bracelets|bras|brassards|canons|gantelets|gants|garde-poignets|lunettes|épaulettes|vêtements|garde-épaules|protège-épaules|spallières|espauliers|plaques|spallières|habits/i)) {
       
        intro = "Les [[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']] sont'
    } else {
        intro = "[[{{PAGENAME}}]] est"
    }

    return intro.replace('undefined', '')

}

//Phrase d'intro pour les armes
function prépositionintro_arme(str) {

    if (str && str !== null && str !== "undefined") {
        if (str.match(/arc recourbé|arc court|arc long|aiguillon|arme|espadon|empaleur|arquebuse|epée|épée|assommoir|aiguille|artefact/i) && str !== /épée|lance-harpon|super/i) {

            intro = "L'[[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']]'

        } else if (str.match(/granrd arc|marteau|fusil|tranchoir|gourdin|bâton|braséro|présage|héraut|bastion|rempart|bouclier|bourdon|couteau|fusil-harpon|lance-harpon|focus|cor de guerre|trident|vengeur|mousquet|rifle|couperet|faucheu|pistolet|mousqueton|revolver|sceptre/i)) {

            intro = "Le [[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']]'

        } else if (str.match(/faux|colonne|torche|barricade|cognée|trompette|pique|hache|masse|trilance|lance|lame|cimeterre|lamerine|trancheuse|dague|badine|baguette/i)) {

            intro = "La [[{{PAGENAME}}|" + str.charAt(0).toLowerCase() + str.slice(1) + ']]'

        } else {

            intro = '[[{{PAGENAME}}]]'
        }

        return intro.replace('undefined', '')
    }

}

//Préposition pour la phrase d'intro
function prépositiontype(str) {

    var prem = str.charAt(0)

    if (prem.match(/a|e|i|o|u|é/i)) {

        var prépo = "d'" + prem.toLowerCase() + str.slice(1) + "";

    } else {

        var prépo = "de " + prem.toLowerCase() + str.slice(1) + "";

    }

    return prépo

}

//Restriction raciale pour les armures
function racerestrictions(str) {

    var race

    switch (str) {
        case "Human":
            race = "humain";
            break;
        default:
            race = str;

    }

    return race

}

//Emplacement d'armure
function apparencetype(emplacement, type) {

    var armuretype

    var classe
    var classef

    switch (type) {
        case "Light":
            classe = 'léger';
            classef = 'légère';
            break;
        case "Medium":
            classe = 'intermédiaire';
            classef = 'intermédiaire';
            break;
        case "Heavy":
            classe = 'lourd';
            classef = 'lourde'
            break
    }

    switch (emplacement) {
        case "Boots":
            armuretype = 'bottes ' + classef + 's';
            break;
        case "Leggings":
            armuretype = 'jambières ' + classef + 's';
            break;
        case "Coat":
            armuretype = 'cuirasse ' + classef;
            break;
        case "Gloves":
            armuretype = 'gants ' + classe + 's';
            break;
        case "Shoulders":
            armuretype = 'épaulières ' + classef + 's';
            break;
        case "Helm":
            armuretype = 'couvre-chef ' + classe;
            break;
        case "HelmAquatic":
            armuretype = 'aqua-respirateur ' + classe;
            break;
    }

    return armuretype

}

function interwikis(data) {

    var interwiki = '';

    interwiki += '\r\n';
    interwiki += '\r\n';
    interwiki += '[[de:' + data.name.de + ']] \r\n';
    interwiki += '[[en:' + data.name.en + ']] \r\n';
    interwiki += '[[es:' + data.name.es + ']] \r\n';

    return interwiki.replace('undefined', '')
}
</script>
test edit
</includeonly>