Usuari:Anskar/scripts/api.js
Aparença
El codi que afegiu en aquesta pàgina podria tenir contingut maliciós que comprometi el vostre compte. Si no esteu segur si el codi a afegir és segur, pregunteu abans en la Taverna. El codi s'executarà en mostrar una previsualització d'aquesta pàgina. |
Nota: Després de desar, heu de netejar la memòria cau del navegador per veure els canvis. En la majoria de navegadors amb Windows o Linux, premeu Ctrl+F5 o bé premeu Shift i cliqueu el botó "Actualitza" (Ctrl i "Actualitza" amb Internet Explorer). Vegeu més informació i instruccions per a cada navegador a Viquipèdia:Neteja de la memòria cau.
//<nowiki>
/**************
*
* Implemented by w:ca:User:Pasqual
This source code needs topaz.js
Find it at w:ca:User:Pasqual/scripts/topaz.js
Original script is at:
* w:en:User:Topaz/init.js
* w:en:User:Topaz/comm.js
* w:en:User:Topaz/util.js
* w:en:User:Topaz/wputil.js *
*
**************/
editingSection = location.href.search(/&action=edit§ion=\d+/g)>-1;
function get_sizes(){
langs=['aa', 'ab', 'af', 'ak', 'als', 'am', 'an', 'ang', 'ar', 'arc', 'arz', 'as', 'ast', 'av',
'ay', 'az', 'ba', 'bar', 'bat-smg', 'bcl', 'be', 'be-x-old', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo',
'bpy', 'br', 'bs', 'bug', 'bxr', 'ca', 'cbk-zam', 'cdo', 'ce', 'ceb', 'ch', 'cho', 'chr', 'chy',
'closed-zh-tw', 'co', 'cr', 'crh', 'cs', 'csb', 'cu', 'cv', 'cy', 'cz', 'da', 'de', 'diq', 'dk',
'dsb', 'dv', 'dz', 'ee', 'el', 'eml', 'en', 'eo', 'epo', 'es', 'et', 'eu', 'ext', 'fa', 'ff',
'fi', 'fiu-vro', 'fj', 'fo', 'fr', 'frp', 'fur', 'fy', 'ga', 'gan', 'gd', 'gl', 'glk', 'gn',
'got', 'gu', 'gv', 'ha', 'hak', 'haw', 'he', 'hi', 'hif', 'ho', 'hr', 'hsb', 'ht', 'hu', 'hy',
'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'ilo', 'io', 'is', 'it', 'iu', 'ja', 'jbo', 'jp', 'jv',
'ka', 'kaa', 'kab', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ksh', 'ku',
'kv', 'kw', 'ky', 'la', 'lad', 'lb', 'lbe', 'lg', 'li', 'lij', 'lmo', 'ln', 'lo', 'lt', 'lv',
'map-bms', 'mdf', 'mg', 'mh', 'mi', 'minnan', 'mk', 'ml', 'mn', 'mo', 'mr', 'ms', 'mt', 'mus',
'my', 'myv', 'mzn', 'na', 'nah', 'nan', 'nap', 'nb', 'nds', 'nds-nl', 'ne', 'new', 'ng', 'nl',
'nn', 'no', 'nomcom', 'nov', 'nrm', 'nv', 'ny', 'oc', 'om', 'or', 'os', 'pa', 'pag', 'pam',
'pap', 'pdc', 'pi', 'pih', 'pl', 'pms', 'pnt', 'ps', 'pt', 'qu', 'rm', 'rmy', 'rn', 'ro',
'roa-rup', 'roa-tara', 'ru', 'rw', 'sa', 'sah', 'sc', 'scn', 'sco', 'sd', 'se', 'sg', 'sh', 'si',
'simple', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'srn', 'ss', 'st', 'stq', 'su', 'sv', 'sw',
'szl', 'ta', 'te', 'tet', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tokipona', 'tp', 'tpi',
'tr', 'ts', 'tt', 'tum', 'tw', 'ty', 'udm', 'ug', 'uk', 'ur', 'uz', 've', 'vec', 'vi', 'vls',
'vo', 'wa', 'war', 'wo', 'wuu', 'xal', 'xh', 'yi', 'yo', 'za', 'zea', 'zh', 'zh-cfr',
'zh-classical', 'zh-min-nan', 'zh-yue', 'zu'];
// fetch
params = {"titles": wgPageName,
"prop": "revisions",
"rvprop": "size|content",
"indexpageids": "1"};
api_url = wgServer + '/w/api.php?format=json&action=query&';
api_url += QueryString.create(params);
api_req = topaz.comm.doreq(api_url);
api_data = api_req.responseText;
api_data = eval('(' + api_data + ')');
// handle response
if (api_data.query != "undefined"){
page_data = api_data.query.pages;
page_id = api_data.query.ageids[0]; //= wgArticleId
rev = page_data[page_id].revisions[0];
bytes = rev.size;
textbox=document.getElementById("wpTextbox1");
text = ((wgAction == "edit" && textbox !== null) || wgAction == "submit") && !editingSection
? textbox.value
: rev["*"];
text_without_iw = text;
text_without_cmt = text;
//Got any template of the 1000 articles?
is1of1000=false;
tpls=['{{1000}}', '{{Els1000}}', '{{1000 Arts}}', '{{1000 Biografies}}', '{{1000 Ciència}}',
'{{1000 Ciències naturals}}', '{{1000 Filosofia}}', '{{1000 Geografia}}',
'{{1000 Història}}', '{{1000 Llenguatge}}', '{{1000 Religió}}', '{{1000 Societat}}',
'{{1000 Tecnologia}}'];
for (var tpl in tpls){ if (text.indexOf(tpls[tpl])>-1) {is1of1000=true; break;}}
//remove interwiki links
reInterwikis=new RegExp("\\[\\[.*:\\[^\\]\\n\\|\\]+\\]\\] *\\r?\\n?", "gi");
iw=0;
do {
skip = String(reInterwikis.exec(text));
sep_idx = skip.indexOf(":");
cur_lang = skip.substring(2,sep_idx);
for (var lang in langs) {
if (langs[lang] == cur_lang) {
++iw;
text_without_iw = text_without_iw.replace(skip,"");
//alert(langs[lang]+" :: "+cur_lang+" :: "+skip)
}
}
} while (skip!="null");
//remove comments
reComments=new RegExp("<!--\\[^>\\]*--> *\\r?\\n?", "gi");
do {
skip = String(reComments.exec(text));
text_without_cmt = text_without_cmt.replace(skip,"");
} while (skip!="null");
text_length = text.length;
iw_chars_number = text.length - text_without_iw.length;
cmt_chars_number = text.length - text_without_cmt.length;
valid_chars_number= text.length - (iw_chars_number+cmt_chars_number);
return [text_length, iw_chars_number, cmt_chars_number, valid_chars_number, bytes, is1of1000];
}
}
function carrega_mides(){
bc_sizes=get_sizes();
text_length = bc_sizes[0];
iw_chars_number = bc_sizes[1];
cmt_chars_number = bc_sizes[2];
valid_chars_number= bc_sizes[3];
bytes = bc_sizes[4];
is1of1000 = bc_sizes[5];
meta_idx = valid_chars_number * 1.1; //.971 /* fins el 3-5-2013 es torna a computar a 1,1 en lloc de 0,971 */
to_first_dec = meta_idx.toString().indexOf(".")+1;
meta_idx = meta_idx.toPrecision(to_first_dec);
colour = ["#FFFFE0","orange","blue"];
if (is1of1000 === true) {
if (meta_idx < 10000) colour=["red","orange","yellow"];
else if (meta_idx < 30000) colour=["orange","red","blue"];
else if (meta_idx >= 30000) colour=["lightgreen","yellow","black"];
}
var primer="content", segon="bodyContent";
primerObj = document.getElementById(primer);
segonObj = document.getElementById(segon);
var divSizes = document.createElement("div");
avis = wgAction == "edit" || wgAction == "submit" ? "<b>No heu desat l'article!</b><br/></a>" : "";
if (editingSection) avis += '<font size="-15%">Les dades corresponen<br/>a la darrera versió desada.</font><br/>';
divSizes.innerHTML = '<div class="veSizes" id="sizes" style="position:fixed; right:5px; '+
'bottom:420px; float:right; padding:6px; z-index: 1; ' +
'background-color:'+colour[0]+'; '+
'border:1px solid '+colour[1]+'; color:'+colour[2]+';" ><a '+
'onclick="tanca()">'+avis+'<font size="-10%">'+
'octets:\t'+bytes+'<br/>'+
'caràcters:\t'+valid_chars_number+'</font><br/>'+
'índex:\t'+meta_idx+'</div>';
primerObj.insertBefore(divSizes, segonObj);
sizes=document.getElementById("sizes");
setTimeout(amagaMostra(),6000);
}
if (wgNamespaceNumber === 0 && wgServer.indexOf("wikipedia.org")>-1) addOnloadHook (carrega_mides);
function amagaMostra(){sizes.style.display="None"}
function tanca(){
sizes = document.getElementById("sizes");
if (sizes) sizes.style.display="None";
}
/************************ * * * * * * * * *
*
* The following part of this script it is not necessary if you load Twinkle.js
*
*/
if (typeof QueryString == "undefined") {
function QueryString(qString) {
this.string = qString;
this.params = {};
if( qString.length === 0 ) {
return;
}
qString.replace(/\+/, ' ');
var args = qString.split('&');
for( var i = 0; i < args.length; ++i ) {
var pair = args[i].split( '=' );
var key = decodeURIComponent( pair[0] ), value = key;
if( pair.length == 2 ) {
value = decodeURIComponent( pair[1] );
}
this.params[key] = value;
}
}
QueryString.static = null;
QueryString.staticInit = function() {
if( QueryString.static === null ) {
QueryString.static = new QueryString(location.search.substring(1));
}
};
QueryString.get = function(key) {
QueryString.staticInit();
return QueryString.static.get(key);
};
QueryString.prototype.get = function(key) {
return this.params[key] ? this.params[key] : null;
};
QueryString.exists = function(key) {
QueryString.staticInit();
return QueryString.static.exists(key);
};
QueryString.prototype.exists = function(key) {
return this.params[key] ? true : false;
};
QueryString.equals = function(key, value) {
QueryString.staticInit();
return QueryString.static.equals(key, value);
};
QueryString.prototype.equals = function(key, value) {
return this.params[key] == value ? true : false;
};
QueryString.toString = function() {
QueryString.staticInit();
return QueryString.static.toString();
};
QueryString.prototype.toString = function() {
return this.string ? this.string : null;
};
QueryString.create = function( arr ) {
var resarr = Array();
for( var i in arr ) {
if( typeof arr[i] == 'undefined' ) {
continue;
}
if( arr[i] instanceof Array ){
var v = Array();
for(var j = 0; j < arr[i].length; ++j ) {
v[j] = encodeURIComponent( arr[i][j] );
}
resarr.push( encodeURIComponent( i ) + '=' + v.join('|') );
} else {
resarr.push( encodeURIComponent( i ) + '=' + encodeURIComponent( arr[i] ) );
}
}
return resarr.join('&');
};
QueryString.prototype.create = QueryString.create;
}
//</nowiki>