User:Fran Rogers/dimorphism.js

/** * Gender dimorphism script by User:Fran Rogers * Displays a user's gender in the title of their user/user talk page for you * if they've specified it in their preferences. Say goodbye to embarrassing * pronoun mistakes! */

// If on a user or user talk page, and not a subpage... if ((mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3) &&   !/\//.test(mw.config.get('wgTitle'))) { // add a hook to... $(function {

if(typeof sajax_init_object === 'undefined') return; // init AJAX and request the user's gender from the API var a = sajax_init_object; a.open("GET", mw.config.get('wgServer') + mw.config.get('wgScriptPath') +                  "/api.php?format=json&action=query&list=users&ususers=" +                   escape(mw.config.get('wgTitle').replace(/ /, "_")) + "&usprop=gender",           true);

// when response arrives... a.onreadystatechange = function { if(a.readyState == 4 && a.status == 200) { // parse the JSON response var genderText = eval("(" + a.responseText + ")").query.users[0].gender;

// U+2640 and U+2642 are female and male signs respectively. var genderSymbol = ""; if (genderText == "female") { genderSymbol = "&#x2640;"; } else if (genderText == "male") { genderSymbol = "&#x2642;"; }

// if gender was specified, append the symbol if (genderSymbol != "") { document.getElementById("firstHeading").innerHTML += " " + genderSymbol; }     }    };

// send the API request a.send; }); }