Wednesday, December 26, 2012

Wiktionary - Recent changes [en]: User:Ruakh/Tbot.js

Wiktionary - Recent changes [en]
Track the most recent changes to the wiki in this feed. // via fulltextrssfeed.com
User:Ruakh/Tbot.js
Dec 27th 2012, 02:34

Line 114: Line 114:
 

break;

 

break;

 

else if(elem.tagName.toUpperCase() === 'SPAN')

 

else if(elem.tagName.toUpperCase() === 'SPAN')

if(elem.className.search(/^(gender|noun-class|number)\s/) !== -1)

+

if(elem.className.search(/^(gender|noun-class|number|aspect)\s/) !== -1)

 

ret += elem.className.split(/\s+/)[1];

 

ret += elem.className.split(/\s+/)[1];

 

else if(elem.className === 'serial-and')

 

else if(elem.className === 'serial-and')


  /*</pre>  ==Change redlinks to greenlinks==  <pre>*/     function greenifyTranslinks(langcode)  {    if(mw.config.get('wgAction') !== 'view')      return;    if(! document.querySelector)      return;    if(! document.querySelector           ('table.translations a.new > span:lang(' + langcode + ')'))      return;    var $ = jQuery;    var headers = document.querySelectorAll('h3, h4, h5');    for(var i = 0; i < headers.length; ++i)    {      if($(headers[i].querySelector('.mw-headline')).text() !== 'Translations')        continue;      var posHeader = getPosForTransSect(i);      if(! posHeader)        continue;      for( var elem = headers[i].nextElementSibling;           elem && elem.tagName.search(/^[hH]\d$/) === -1;           elem = elem.nextElementSibling )      {        var linksToGreenify =          elem.querySelectorAll('a.new > span:lang(' + langcode + ')');        if(linksToGreenify.length === 0)          continue;        var gloss = getGlossForTransTable(elem);        for(var j = 0; j < linksToGreenify.length; ++j)        {          var link = linksToGreenify[j].parentNode;             var greenData =          {            lang:  langcode,            pos:   posHeader,            head:  $(link).text().trim().replace(/ +/g, ' '),            xlit:  getXlitForLink(link),            g:     getGenderForLink(link),            trans: mw.config.get('wgPageName'),            gloss: gloss          };          if(mw.util.wikiUrlencode(greenData.head)               === link.getAttribute('href').match(/\?(?:.*?&)?title=([^&]+)/)[1])            delete greenData.head;          removeEmptyProps(greenData);             var href = link.getAttribute('href');          href = href.split('#')[0]; // shouldn't be needed          if(href.indexOf('?') === -1) // shouldn't happen            href += '?';          href += '&greenData=' + encodeURIComponent(JSON.stringify(greenData));             link.setAttribute('href', href);          link.style.color = 'rgb(34, 204, 0)';        }      }    }       function getPosForTransSect(i) // headers[i] is the trans-sect-header    {      // We start at headers[i-1], and scroll back until we find a header at      // a higher level than headers[i]. For example, if ====Translations====      // is at L4, then the closest-previous L3 header is the POS header.         for(var j = i - 1; j >= 0; --j)        if(headers[j].tagName < headers[i].tagName)        {          var ret = $(headers[j].querySelector('.mw-headline')).text();          ret = ret.replace(/\s+\d+$/, ''); // e.g. 'Noun 1' -> 'Noun'          return ret;        }      return null; // shouldn't happen    }       function getGlossForTransTable(navFrame)    {      var ret = $(navFrame.querySelector('.NavHead')).text();      ret = ret.trim().replace(/^\[.*?\]\s*/, '');      return ret;    }       function getXlitForLink(link)    {      for(var node = link.nextSibling; node; node = node.nextSibling)      {        if(node.nodeType === Node.ELEMENT_NODE            && node.tagName.toUpperCase() === 'A') // hit {{t}} or [[ ]]          break;        if(node.nodeType === Node.ELEMENT_NODE            && node.lang === langcode) // hit {{t-SOP}} or {{l}}          break;        if(node.nodeType !== Node.TEXT_NODE)          continue;        var match = node.data.match(/^\xA0\((.*)\)(?:\xA0|, )?$/);        if(match)          return match[1];      }      return '';    }       function getGenderForLink(link) // e.g. '' or 'm' or 'c1' or 'm|f'    {      var ret = '';      for( var elem = link.nextElementSibling;           elem;           elem = elem.nextElementSibling )        if(elem.tagName.toUpperCase() === 'A') // hit {{t}} or [[ ]]          break;        else if(elem.lang === langcode) // hit {{t-SOP}} or {{l}}          break;        else if(elem.tagName.toUpperCase() === 'SPAN')          if(elem.className.search(/^(gender|noun-class|number|aspect)\s/) !== -1)            ret += elem.className.split(/\s+/)[1];          else if(elem.className === 'serial-and')            ret += '|';      return ret;    }       function removeEmptyProps(obj)    {      var propsToRemove = [];      for(var key in obj)        if(obj[key] === undefined || obj[key] === null || obj[key] === '')          propsToRemove.push(key);      for(var i = 0; i < propsToRemove.length; ++i)        delete obj[propsToRemove[i]];    }  }     /*</pre>  ==Populate edit-window at target of a greenlink==  <pre>*/     function getHeadLineForGreenData(greenData)  {    // allow special-casing of specific languages and POSes:    if(getHeadLineForGreenData[greenData.lang + '~' + greenData.pos])      return getHeadLineForGreenData[greenData.lang+'~'+greenData.pos](greenData);       var ret = '{{head|' + greenData.lang;    if(greenData.pos.indexOf('=') > -1)      ret += '||1=' + greenData.pos.toLowerCase();    else      ret += '|' + greenData.pos.toLowerCase();    if(greenData.head)      ret += '|head=' + greenData.head;    if(greenData.xlit)      ret += '|tr=' + greenData.xlit;    if(greenData.g)      ret += '|g=' + greenData.g.split('|')[0];    if(greenData.g && greenData.g.indexOf('|') > -1)      ret += '|g2=' + greenData.g.split('|')[1];    ret += '}}';    return ret;  }     getHeadLineForGreenData['ru~Noun'] = function (greenData)  {    var ret = '{{ru-noun';    if(greenData.head)      ret += '|head=' + greenData.head;    if(greenData.xlit)      ret += '|tr=' + greenData.xlit;    if(greenData.g)      ret += '|g=' + greenData.g.split('|')[0];    ret += '}}';    return ret;  };     getHeadLineForGreenData['yi~Adjective'] = function (greenData)  {    var ret = '{{yi-adj';    if(greenData.xlit)      ret += '|tr=' + greenData.xlit;    ret += '}}';    return ret;  };     function getInflSectForGreenData(greenData)  {    // allow special-casing of specific languages and POSes:    if(getInflSectForGreenData[greenData.lang + '~' + greenData.pos])      return getInflSectForGreenData[greenData.lang+'~'+greenData.pos](greenData);       return '';  }     getInflSectForGreenData['yi~Adjective'] = function (greenData)  {    var template = '{{yi-adj-';    var curr = mw.config.get('wgTitle');    if(curr.search(/[\u05DA\u05DD\u05DF\u05E3\u05E5]$/) > -1) // final letter    {      if(curr.charAt(curr.length - 1) === '\u05DD') // final mem        template += 'm';      else if(curr.charAt(curr.length - 1) === '\u05DF') // final nun        template += 'n';      else // final khaf, final fei, or final tsadi        template += 'final';      template += '|' + curr.substr(0, curr.length - 1)                      + String.fromCharCode(curr.charCodeAt(curr.length - 1) + 1);    }    else if(curr.search(/\u05D5\u05BC?$|\u05D9\u05B4?$|\u05D0[\u05B7\u05B8]$|\u05E2$/) > -1)      template += 'vowel';    else      template += '1';    if(greenData.xlit)      template += '|' + greenData.xlit;    template += '}}';    return '\n====Declension====\n' + template + '\n';  };     addOnloadHook(function ()  {    if(mw.config.get('wgNamespaceNumber') !== 0)      return;    if(mw.config.get('wgAction') !== 'edit')      return;    if(! document.getElementById('ca-nstab-main'))      return;    if(document.getElementById('ca-nstab-main').className !== 'selected new')      return;    var greenData = document.location.href.match(/&greenData=([^&]+)/);    if(! greenData)      return;    greenData = JSON.parse(decodeURIComponent(greenData[1]));    var wikitext = '';    if(! greenData.lang || greenData.lang.search(/^[a-z-]+$/) === -1)      return;    wikitext += '=={{subst:' + greenData.lang + '}}==\n\n';    if(! greenData.pos)      return;    if(greenData.pos.search(/^=|=$/) > -1)      wikitext += '=== ' + greenData.pos + ' ===\n';    else      wikitext += '===' + greenData.pos + '===\n';    wikitext += getHeadLineForGreenData(greenData) + '\n\n';    if(! greenData.trans)      return;    wikitext += '# [[' + greenData.trans + ']]';    if(greenData.gloss)      wikitext += ' {{gloss|' + greenData.gloss + '}}';    wikitext += '\n';    wikitext += getInflSectForGreenData(greenData);    document.getElementById('wpTextbox1').value = wikitext;  });  

You are receiving this email because you subscribed to this feed at blogtrottr.com.

If you no longer wish to receive these emails, you can unsubscribe from this feed, or manage all your subscriptions