User:He7d3r/Tools/AssessmentHelper.js

From Meta, a Wikimedia project coordination wiki

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.
// [[File:User:He7d3r/Tools/AssessmentHelper.js]] (workaround for [[phab:T35355]])
/**
 * Add some useful links for assessment of Wikipedia articles
 * @author: Helder (https://github.com/he7d3r)
 * @license: CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0/>
 */
// <nowiki>
(function(e,a){"use strict";function i(e){var a,i,o,r=[];for(o=0;e[0].length>o;o++){for(a=[],i=0;e.length>i;i++)a.push(e[i][o]);r.push(a.join(" | "))}return["<!-- ### inicio ### -->{{Matriz de classificação","| "+r.join("\n| "),"|sobre="+f,"|projeto=Portal:"+f.charAt(0).toUpperCase()+f.slice(1),"}}","<small>'''última atualização''': ~~~~~</small>","","<!-- ### fim ### -->"].join("\n")}function o(e,a){var i,o,r=0;for(i=0;e.length>i;i++)for(o=0;a.length>o;o++)if(e[i].pageid===a[o].pageid){r++;break}return r}function r(e,i){a.each(C[e],function(r){y[r]=[],a.each(C[i],function(a){y[r][a]=o(h[e][r],h[i][a])})})}function t(o){var n={format:"json",action:"query",list:"categorymembers",cmlimit:"500",cmtitle:"Category:"+C[P[k]][v].replace(/\$1/g,f),cmprop:"ids"};o&&(n.cmcontinue=o),a.ajax({url:e.util.wikiScript("api"),dataType:"json",data:n}).done(function(o){o?o.error!==void 0?alert("Erro da API: "+o.error.code+". "+o.error.info):o.query&&o.query.categorymembers?(a.merge(h[P[k]][v],o.query.categorymembers),o["query-continue"]?t(o["query-continue"].categorymembers&&o["query-continue"].categorymembers.cmcontinue):(q++,e.notify("Concluída a análise de "+q+" das "+b+" categorias ("+(100*q/b).toFixed(1)+"%)",{tag:"category-analysis"}),v++,C[P[k]].length>v?t():(k++,P.length>k?(v=0,t()):(r("quality","importance"),a("#mw-content-text").prepend("Código wiki:<br><pre>"+e.html.escape(i(y))+"</pre>"))))):alert("Houve um erro ao consultar os membros da categoria."):alert("Erro: A API não retornou dados.")}).fail(function(){alert("Houve um erro ao usar AJAX para consultar os membros da categoria.")})}function n(){var i,o;i=function(e){var a,i=e.query.pages,o=e.query.pageids;a=i[o[0]].revisions[0]["*"],x(a)},o=function(o){a.getJSON(e.util.wikiScript("api"),{format:"json",action:"query",titles:o,prop:"revisions",rvprop:"content",indexpageids:"1"},i)},e.config.get("qcAutoCheck")&&o(e.config.get("wgPageName")),a(e.util.addPortletLink("p-cactions","#",e.msg("ah-check-quality-link"),"ca-ah-quality",e.msg("ah-check-quality-desc"))).click(function(a){a.preventDefault(),o(e.config.get("wgPageName"))})}function s(){a(e.util.addPortletLink("p-cactions","#",e.msg("ah-check-priority-link"),"ca-ah-priority",e.msg("ah-check-priority-desc"))).click(function(e){e.preventDefault(),j()})}function c(){var i=e.util.addPortletLink("p-cactions","#",e.msg("ah-matrix-updater-link"),"ca-ah-matrix-updater",e.msg("ah-matrix-updater-desc"));a(i).click(function(e){e.preventDefault(),h={},y=[],v=0,k=0,b=0,q=0,f=prompt("Informe o nome do wikiprojeto:","matemática"),f&&(a.each(P,function(e){var i=P[e];h[P[e]]=[],a.each(C[i],function(e){b++,h[i][e]=[]})}),t())})}function u(e,a,i){var o,r,t,n='{| class="wikitable sortable"\n';if(a&&(n+="|+ "+a+"\n"),!i)for(i=[],r=0;e.length>r;r++)i[r]="$"+(r+1);for(i="|-\n|"+i.join("||")+"\n",n+="|-\n!"+e[0].join("||")+"\n",o=1;e.length>o;o++){for(t=i,r=0;e.length>r;r++)t=t.replace(RegExp("\\$"+(r+1),"g"),e[o][r]);n+=t}return n+="|}"}function l(){var i=S.length,o=0,r=0,t=[["Páginas","Afluentes"]];a.each(S,function(n){var s=S[n];a.getJSON(e.util.wikiScript("api"),{format:"json",action:"query",list:"backlinks",bltitle:s,blnamespace:e.config.get("wgContentNamespaces").join("|"),blfilterredir:"nonredirects",blredirect:!0,bllimit:500,indexpageids:!0},function(n){var c;t.push([s,n.query.backlinks.length]),o++,r+=(n.query.backlinks.length-r)/o,e.notify("Processando a página "+o+" de um total de "+i+".",{tag:"page-analysis"}),o===i&&(c="Os artigos da [[:"+$+"]] têm em média "+Math.round(r)+" afluentes.\n\n",c+=u(t,"Número de afluentes das páginas de [[:"+$+"|"+$+"]]",["[[:$1]]","[[Special:Páginas afluentes/$1|$2]]"]),a("#mw-content-text").prepend('<b>Código wiki:</b><br/><br/><textarea cols="80" rows="40" style="width: 100%; font-family: monospace; line-height: 1.5em;">'+e.html.escape(c)+"</textarea>"))})})}function d(i,o){var r={format:"json",action:"query",generator:"categorymembers",gcmtitle:i,gcmlimit:"500",indexpageids:"1"};o&&(r.gcmcontinue=o),a.ajax({url:e.util.wikiScript("api"),dataType:"json",data:r}).done(function(o){var r;o?o.error!==void 0?alert("Erro da API: "+o.error.code+". "+o.error.info):o.query&&o.query.pageids&&o.query.pages?(a.each(o.query.pageids,function(e){S.push(o.query.pages[o.query.pageids[e]].title.replace(/^(?:Anexo )?Discussão:/g,""))}),r=o["query-continue"]&&o["query-continue"].categorymembers&&o["query-continue"].categorymembers.gcmcontinue,r?d(i,r):(e.notify("Concluída a consulta à "+i+".",{tag:"category-analysis"}),l())):alert("Houve um erro inesperado ao consultar os membros da categoria."):alert("Erro: a API não retornou dados.")}).fail(function(){alert("Houve um erro ao usar AJAX para consultar os membros da categoria.")})}function p(i,o){var r={format:"json",action:"query",prop:"links",pllimit:500,titles:i,indexpageids:!0,rawcontinue:1};o&&(r.plcontinue=o),a.ajax({url:e.util.wikiScript("api"),dataType:"json",data:r}).done(function(o){var r;o?o.error!==void 0?alert("Erro da API: "+o.error.code+". "+o.error.info):o.query&&o.query.pageids&&o.query.pages?(S=a.map(o.query.pages[o.query.pageids[0]].links,function(e){return e.title}),r=o["query-continue"]&&o["query-continue"].links&&o["query-continue"].links.plcontinue,r?p(i,r):(e.notify('Concluída a consulta à lista de links da página "'+i+'".',{tag:"page-links-analysis"}),l())):alert("Houve um erro inesperado ao consultar a lista de links da página."):alert("Erro: a API não retornou dados.")}).fail(function(){alert("Houve um erro ao usar AJAX para consultar a lista de links da página.")})}function g(){a(e.util.addPortletLink("p-cactions","#","Gerar tabela de afluentes (categoria)","ca-ah-backlinks","Produz uma tabela com o número de afluentes por artigo da categoria especificada")).click(function(a){a.preventDefault();var i=prompt("Informe o nome de uma categoria (usada nos artigos ou nas páginas de discussão):",e.config.get("wgNamespaceNumber")===14?e.config.get("wgPageName").replace(/_/g," "):"Categoria:!Artigos de qualidade 2 sobre matemática");i&&d(i)})}function m(){a(e.util.addPortletLink("p-cactions","#","Gerar tabela de afluentes (lista)","ca-ah-backlinks-from-list","Produz uma tabela com o número de afluentes por página para a qual há um link nesta página")).click(function(a){a.preventDefault(),p(e.config.get("wgPageName"))})}e.messages.set({"ah-check-quality-link":"Estimar qualidade","ah-check-quality-desc":"Executa alguns testes automatizados no código wiki da página para estimar sua qualidade","ah-check-priority-link":"Ver prioridade","ah-check-priority-desc":"Consulta a importância informada na página de discussão do artigo correspondente na Wikipédia inglesa","ah-matrix-updater-link":"Gerar matriz atualizada","ah-matrix-updater-desc":"Analisa as categorias de qualidade e importância do wikiprojeto e gera a versão atualizada do código wiki da matriz correspondente","ah-inform-lua-module":'<div class="error">Atenção! O <a href="$1">Módulo:Avaliação</a> já <a href="$2">está funcionando</a>. A partir de agora, só grave a avaliação se ela for diferente da que aparece por padrão.</div>',"ah-inform-level":'Estima-se que esta página seja de qualidade $1 conforme os <a href="$2">critérios da Wikipédia</a>.',"ah-inform-inconsistency":'Estima-se que esta página seja de qualidade $1 conforme os <a href="$2">critérios da Wikipédia</a>. No entanto, ela não cumpre os critérios para ser de nível $3.',"ah-inform-featured-article-inconsistency":"Confira se ela foi mesmo eleita como um artigo destacado.","ah-inform-good-article-inconsistency":"Confira se ela foi mesmo eleita como um artigo bom.","ah-ask-for-update-text":"Gravar esta avaliação mesmo assim","ah-ask-for-update-title":"Clique para confirmar que esta página é de qualidade $1 e gravar esta informação na discussão","ah-quality-update-summary":"Atualização: esta página cumpre os [[Predefinição:Escala_de_avaliação|requisitos]] para ser de [[Wikipédia:Qualidade|qualidade]] $1","ah-successful-update":"A qualidade da página foi atualizada.","ah-report":"Estatísticas:<ul><li>$1 $2 caracteres de código wiki</li><li>$3 $4 ligações internas</li><li>$5 $6 seções</li><li>$7 $8 parágrafos</li><li>$9 $10 referências</li><li>$11 $12 imagens</li></ul>"});var f,h,y,v,k,b,q,A=function(i,o,r){a.ajax({url:e.util.wikiScript("api"),type:"POST",dataType:"json",data:{format:"json",action:"edit",title:i,text:o,summary:r,token:e.user.tokens.get("csrfToken")}}).done(function(a){a&&a.edit&&a.edit.result&&a.edit.result==="Success"?e.notify(e.msg("ah-successful-update")):alert("Houve um erro ao requisitar a edição da página.")}).fail(function(){alert("Houve um erro ao usar AJAX para editar a página.")})},w=function(i,o){var r=function(a){var r,t=/\{\{\s*[Mm]arca de projeto\s*\|\s*(\?|0?\d)([^\n\}]*?)\s*(\|\s*rev\s*=\s*\d+\s*)?\}\}/;r=a?a.replace(t,function(e,a,i){return"{{marca de projeto|"+o+i+"|{"+"{subst:rev}}}}"}):"{{marca de projeto|"+o+"}}",e.log(a,r),A(i,r,e.msg("ah-quality-update-summary",o))};a.ajax({url:e.util.wikiScript("api"),dataType:"json",data:{format:"json",action:"query",titles:i,prop:"revisions",rvprop:"content",indexpageids:"1"}}).done(function(e){e.error!==void 0?alert("Erro da API: "+e.error.code+". "+e.error.info):e.query&&e.query.pages&&e.query.pageids?e.query.pages[e.query.pageids[0]].missing===""?r(""):r(e.query.pages[e.query.pageids[0]].revisions[0]["*"]):alert("Houve um erro inesperado ao usar a API do MediaWiki.")}).fail(function(){alert("Houve um erro ao usar AJAX para consultar o conteúdo da página.")})},x=function(i){var o,r,t,n,s,c,u,l,d,p=4,g=0,m={},f={},h=i.match(/(?:^|\n\n|==\n)[^*\n].{100,}?(?=\n\n|\n==|$)/g),y=i.match(/\[\[[^:]*?\]\]/g),v=i.match(/(?:^|\n)==\s*[^\n\}\{]+?\s*==[\s\S]+?(?=\n==[^=\n]|$)/g),k={size:i.length,links:y&&y.length||0,sections:v&&v.length||0,paragraphs:h&&h.length||0,references:i.split(/<ref[^\n\/]*?>[\s\S]*?<\/ref>|<ref\s*[\s\S]+?\/>|\{\{(?:[Cc]it(?:ar?|e)|[Rr]ef)/).length-1,images:i.split(/\[\[(?:Imagem?|File|Ficheiro|Arquivo)/).length-1},b=a('<div id="ah-report">'),q=e.config.get("wgNamespaceNumber"),A=e.config.get("wgFormattedNamespaces")[q-q%2+1]+":"+e.config.get("wgTitle"),x={},j="";for(r=function(e){return/<ref|\{\{(?:[Cc]it(?:ar?|e)|[Rr]ef)/.test(e)},t=function(e){var a=0;if(!h)return!1;for(a=0;h.length>a;a++)if(h[a].length>e)return!0;return!1},n=function(i,o){a.each(o,function(a,i){var r=e.util.escapeRegExp(i.charAt(0)),t=r.toUpperCase(),n=r.toLowerCase();r.length===1&&t!==n&&(r="["+t+n+"]"),o[a]=r+e.util.escapeRegExp(i.substr(1))});var r=RegExp("\\{\\{"+o.join("|"));return r.test(i)},s=function(e,a){var i;for(i=a.length-1;i>=0;i--)if(e.indexOf("{{"+a[i])===-1)return!1;return!0},c={size:{2:function(e){return r(e)?2e3:8e3},3:12e3,4:2e4},links:{2:10,3:30,4:50},sections:{3:3,4:5},paragraphs:{2:5,3:5,4:5},references:{3:5,4:10},images:{3:1,4:2},"paragraph-length":{2:2500,3:2500,4:2500},"template-black-list":{2:["contexto","reciclagem","reciclar-sobre"],3:["contexto","reciclagem","reciclar-sobre","esboço","wikificação","revisão"],4:["Mtag","Mtag/doc","Multitag","Artigo com problemas","Artigo longo","Artigo sobre direito com problemas","Disputa-bpv","BSRE","Caracteres não-padrão","Sem cat","Contextualizar","Contextualizar2","Conteúdo parcial","Controverso","Corrigir","Ctx","Ctx2","Direitos-autorais","Divisão","Em tradução","Expandir","Expandir2","S-fontes-bpv","Sem-fontes-bpv","Fusão","Fusão com","Fusão vot","Fusão de","Global","Global/Brasil","Global/Lusofonia","Global/Portugal","Hanzi","Idioma estrangeiro","Semimagem-arquitetura","Semimagem-sobre","Conflito interwiki","Matrad","Matrad/Código","Má introdução","Má tradução","Não enciclopédico","Não informado","Não informado n","Não-enc","Não-enciclopédico2","Parcial","Parcialcontroverso","Wikipédia:Projetos/Páginas novas","Publicidade","Rec","Reciclagem","Reciclar-sobre","Ren-pag","Renomear página","Revisão-sobre","Revisão","Revisão de tradução","Sem-fontes-sobre","Separar","Suspeito","Suspeito2","Tradução de","Curiosidades","VDA","VDA2","Wikificação","Wkf","Encontre fontes","Fonte primária religiosa","Carece de fontes","Carece de fontes/bloco","Carece de fontes2","Fontes primárias","Fpr","M-notas","Mais notas","Pesquisa inédita","S-fontes","S-fontes-bpv","S-notas","Sem-fontes-sobre","Sem notas","Sem-fontes","Sem-fontes-bpv","F-referências","Formatar referências"]}},u=1;p>=u;u++)f[u]=!0;for(a.each(c,function(e,o){m[e]=[],a.each(f,function(a){var r,u=o[a];if(a=parseInt(a,10),!u)return m[e].push(a),!0;switch(typeof u=="function"&&(u=u(i),c[e][a]=u),e){case"size":case"links":case"sections":case"paragraphs":case"references":case"images":r=k[e]>=u;break;case"paragraph-length":r=!t(u);break;case"template-black-list":r=!n(i,u);break;case"template-list":r=s(i,u)}r&&m[e].push(a)}),a.each(f,function(i){i=parseInt(i,10),f[i]&&a.inArray(i,m[e])===-1&&(f[i]=!1)})}),e.log("meetReq=",m),l=p;l>0;l--)if(g>0){if(!f[l])break}else f[l]&&(g=l);return l===0?b.html(e.msg("ah-inform-level",g,e.util.getUrl("Wikipédia:Avaliação automática"))):b.html(e.msg("ah-inform-inconsistency",g,e.util.getUrl("Wikipédia:Avaliação automática"),l)),p>g&&(n(i,["artigo bom"])?b.append("<br>").append(e.msg("ah-inform-good-article-inconsistency",e.util.getUrl("Wikipédia:Avaliação automática"),g)):n(i,["artigo destacado"])&&b.append("<br>").append(e.msg("ah-inform-featured-article-inconsistency",e.util.getUrl("Wikipédia:Avaliação automática"),g))),a.each(["size","links","sections","paragraphs","references","images"],function(e,a){var i,o,r,t=1.4*(c[a][p]||0);for(k[a]>t&&(t=k[a]),x[a]=k[a],c[a][g]&&(x[a]+=" > "+c[a][g]),e=1;p>e;e++)o=(c[a][e+1]||0)-(c[a][e]||0),r=100*(o/t).toFixed(2),j+="#ah-"+a+" .ah-q"+e+"{ width: "+r+"%; } ";i=100*((k[a]||0)/t).toFixed(2),j+="#ah-"+a+" .ah-percent { left: "+i.toFixed(2)+"%; } "}),e.util.addCSS(j),d='<span class="ah-percent">&nbsp;</span><span class="ah-q1"></span><span class="ah-q2"></span><span class="ah-q3"></span></div>',o=a("<input>",{id:"ah-update-link",type:"submit",value:e.msg("ah-ask-for-update-text",g),title:e.msg("ah-ask-for-update-title",g)}).click(function(e){e.preventDefault(),o.prop("disabled",!0),w(A,g)}),b.append("<br>").append(e.msg("ah-report",'<div id="ah-size">'+d,x.size,'<div id="ah-links">'+d,x.links,'<div id="ah-sections">'+d,x.sections,'<div id="ah-paragraphs">'+d,x.paragraphs,'<div id="ah-references">'+d,x.references,'<div id="ah-images">'+d,x.images)).append("<br>").append(e.msg("ah-inform-lua-module",e.util.getUrl("Módulo:Avaliação"),e.util.getUrl("Wikipédia Discussão:Avaliação automática#Implementado!"))).append(o),a("#mw-content-text").prepend(b),g},j=function(){var i=a("#p-lang").find(".interwiki-en a").attr("href"),o="Talk:"+decodeURIComponent((i||"").replace(/^.+\/wiki\//g,""));a.ajax({url:"//en.wikipedia.org/w/api.php",dataType:"jsonp",data:{format:"json",action:"query",prop:"categories",cllimit:20,titles:o,indexpageids:"1"}}).done(function(i){var o,r=!1,t={Top:4,High:3,Mid:2,Low:1};try{o=i.query.pages[i.query.pageids[0]].categories}catch(n){return e.notify("Não foi possível possível determinar a prioridade do artigo na Wikipédia inglesa.",n),!1}return o?(a.each(o,function(a){var i=o[a].title.match(/Category:(Top|High|Mid|Low)-Priority/);return i&&i[1]?(r=!0,e.notify('Este artigo corresponde a um de prioridade "'+i[1]+'" na Wikipédia inglesa. Considere indicar na discussão que ele é de importância '+t[i[1]]+"."),!1):void 0}),r?void 0:(e.notify("Não foi possível possível determinar a prioridade do artigo na Wikipédia inglesa."),!1)):(e.notify("Ainda não foi informada a prioridade da versão inglesa deste artigo."),!1)})},C={quality:["!Artigos de qualidade 1 sobre $1","!Artigos de qualidade 2 sobre $1","!Artigos de qualidade 3 sobre $1","!Artigos de qualidade 4 sobre $1","!Artigos bons sobre $1","!Artigos destacados sobre $1","!Artigos de qualidade desconhecida sobre $1"],importance:["!Artigos de importância 4 sobre $1","!Artigos de importância 3 sobre $1","!Artigos de importância 2 sobre $1","!Artigos de importância 1 sobre $1","!Artigos de importância desconhecida sobre $1"]},P=["quality","importance"],S=[],$=null;e.config.get("wgDBname").substr(-4)==="wiki"&&e.config.get("wgNamespaceNumber")===0&&e.config.get("wgAction")==="view"&&(e.loader.load("//meta.wikimedia.org/w/index.php?title=User:He7d3r/Tools/AssessmentHelper.css&action=raw&ctype=text/css","text/css"),a.when(e.loader.using("mediawiki.util"),a.ready).then(function(){n(),s()})),e.config.get("wgDBname")==="ptwiki"&&e.config.get("wgAction")==="view"&&a(c),e.config.get("wgDBname").substr(-4)==="wiki"&&e.config.get("wgAction")==="view"&&a(g),e.config.get("wgDBname").substr(-4)==="wiki"&&e.config.get("wgAction")==="view"&&a(m)})(mediaWiki,jQuery),function(e,a){"use strict";function i(e,i){var o=function(){var o,r,t,n,s=new google.visualization.DataTable,c=[];s.addColumn("number","Afluentes"),s.addColumn("number","Detalhes:"),a.each(e,function(e,a){o=a.links,r=a.size,c.push([{v:o,f:e+", com "+o+" afluentes"},{v:r,f:r+" bytes"}])}),s.addRows(c),t={height:300,pointSize:1,title:"Comparação do número de afluentes com o tamanho (em bytes) dos artigos da "+i,hAxis:{title:"Afluentes"},vAxis:{title:"Tamanho"},legend:"none"},n=new google.visualization.ScatterChart(document.getElementById("mw-js-message")),n.draw(s,t)};a.getScript("https://www.google.com/jsapi").done(function(e,a){return a!=="success"?(alert("Não foi possível carregar a API do Google"),void 0):(google.load("visualization","1",{packages:["corechart"],callback:o}),void 0)})}function o(e){var i;return Array.isArray(e)?e.length:(i=0,a.each(e,function(){i++}),i)}function r(i,r){var t,n,s=Array.isArray(i),c=o(i),u=s?{}:i,l=0,d=0;n=function(i){a.each(i.query.pages,function(a){var o=i.query.pages[a];(u[o.title]===void 0||s)&&(u[o.title]={}),u[o.title].size=o.revisions[0].size,l++,e.notify("Foi processado o tamanho da página "+l+" de um total de "+c+".",{tag:"page-analysis"}),l===c&&typeof r=="function"&&r(u)})},a.each(i,function(i,o){var r=s?o:i,u=50;d%u!==0?t+="|"+r:d===0&&(t=r),(d%u===0&&d>0||d===c-1)&&(a.getJSON(e.util.wikiScript("api"),{format:"json",action:"query",prop:"revisions",titles:t,rvprop:"size",indexpageids:!0},n),t=r),d++})}function t(i,o,r,n,s){var c={format:"json",action:"query",list:"backlinks",bltitle:i,blnamespace:e.config.get("wgContentNamespaces").join("|"),blfilterredir:"nonredirects",blredirect:!0,bllimit:500>r?r:500,indexpageids:!0,rawcontinue:1};s=s||0,n&&(c.blcontinue=n),a.ajax({url:e.util.wikiScript("api"),dataType:"json",data:c}).done(function(a){var n;a?a.error!==void 0?alert("Erro da API: "+a.error.code+". "+a.error.info):a.query&&a.query.backlinks?(n=a["query-continue"]&&a["query-continue"].backlinks&&a["query-continue"].backlinks.blcontinue,s+=a.query.backlinks.length,n&&r>s?t(i,o,r,n,s):(e.notify("Concluída a contagem de afluentes de "+i+".",{tag:"page-analysis"}),typeof o=="function"&&o(s))):alert("Houve um erro inesperado ao consultar os afluentes da página "+i+"."):alert("Erro: a API não retornou dados.")}).fail(function(){alert("Houve um erro ao usar AJAX para consultar os afluentes da página "+i+".")})}function n(i,r){var n=Array.isArray(i),s=o(i),c=n?{}:i,u=0;a.each(i,function(a,i){var o=n?i:a;t(o,function(a){u++,e.notify("Foram processados os afluentes da página "+u+" de um total de "+s+".",{tag:"page-analysis"}),(n||c[i]===void 0)&&(c[i]={}),c[i].links=a,u===s&&typeof r=="function"&&r(c)},1500)})}function s(i,o,r,t){var n=e.config.get("wgContentNamespaces").concat(a.map(e.config.get("wgContentNamespaces"),function(e){return e+1})),c={format:"json",action:"query",generator:"categorymembers",gcmnamespace:n.join("|"),gcmtitle:i,gcmlimit:"500",indexpageids:"1"};r&&(c.gcmcontinue=r),t=t||[],a.ajax({url:e.util.wikiScript("api"),dataType:"json",data:c}).done(function(r){var n;r?r.error!==void 0?alert("Erro da API: "+r.error.code+". "+r.error.info):r.query&&r.query.pageids&&r.query.pages?(a.each(r.query.pageids,function(e){t.push(r.query.pages[r.query.pageids[e]].title.replace(/^(?:Anexo )?Discussão:/g,""))}),n=r["query-continue"]&&r["query-continue"].categorymembers&&r["query-continue"].categorymembers.gcmcontinue,n?s(i,o,n,t):(e.notify("Concluída a consulta à "+i+".",{tag:"category-analysis"}),typeof o=="function"&&o(t))):r.length===0?alert("A "+i+" está vazia."):alert("Houve um erro inesperado ao consultar a categoria."):alert("Erro: a API não retornou dados.")}).fail(function(){alert("Houve um erro ao usar AJAX para consultar os membros da categoria.")})}function c(){a(e.util.addPortletLink("p-cactions","#","Gerar gráfico de Tamanho x Afluentes","ca-ah-size-vs-links","Produz um gráfico que relaciona o número de afluentes e o tamanho dos artigos de um categoria")).click(function(a){var o=/^Categor(ia|y):/,t=prompt("Informe o nome de uma categoria (usada nos artigos ou nas páginas de discussão):",e.config.get("wgNamespaceNumber")===14?e.config.get("wgPageName").replace(/_/g," "):"Categoria:!Artigos de qualidade 3 sobre matemática");a.preventDefault(),t&&(t=t.replace(/_/g," "),o.test(t)||(t="Categoria:"+t),s(t,function(a){n(a,function(a){r(a,function(a){e.notify("Pronto!"),i(a,t)})})}))})}e.config.get("wgDBname").substr(-4)==="wiki"&&a(c)}(mediaWiki,jQuery);
// </nowiki>