Usuari:Coet/scripts/topaz.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.
/*
<pre><nowiki>
Reuneix els mòduls de'n [[w:en:User:Topaz|Topaz]] següents:
*[[w:en:User:Topaz/init.js]]
*[[w:en:User:Topaz/util.js]]
*[[w:en:User:Topaz/comm.js]]
*[[w:en:User:Topaz/wputil.js]]
*[[w:en:User:Topaz/statuschanger.js]]
Funcions emprades a [[w:ca:Usuari:Pasqual/scripts/commutadordestat.js]].
ÍNDEX:
topaz.util
.getobj
.time
.add
.add2
.fullescape
.mousebtnmap
.xmlhttpreq
.cookie
topaz.com
.doreq
topaz.wputil
.username
.iseditpage
.pagename
.setpagecontent
.getpagecontent
.getserverpagecontent
.addpagecontent
*/
var topaz = {};
/******************************** topaz.util ********************************/
topaz.util = {
getobj:function(id) {
return document.getElementById ?
document.getElementById(id) :
document.all[id];
},
time:function() {
return((new Date()).getTime()/1000);
},
add:function(parent, tag, attr) {
var el = document.createElement(tag);
if (attr) {
for (var key in attr) {
el[key] = attr[key];
}
}
return parent.appendChild(el);
},
add2:function(parent, el0, tag, attr) {
var el = document.createElement(tag);
if (attr) {
for (var key in attr) {
el[key] = attr[key];
}
}
return parent.insertBefore(el, el0);
},
fullescape:function(text) {
return escape(text).replace(/\+/g,"%2B");
},
urlencode:function(text){
txt = txt.replace(/\<\;/gi, "<");
txt = txt.replace(/\>\;/gi, ">");
txt = txt.replace(/\"\;/gi, "\"");
txt = txt.replace(/\&\;/gi, "%26");
txt = txt.replace(/\&mdash\;/gi, "—");
txt = txt.replace(/\&ndash\;/gi, "-");
txt = txt.replace(/\&/gi, "%26");
txt = txt.replace(/\%20\;/gi, "%20");
txt = txt.replace(/\+/gi, "%2B");
return txt;
},
mousebtnmap:{
ns:[null,1,3,2],
ie:[null,1,2,null,3]
},
xmlhttpreq:function() {
if (window.XMLHttpRequest) {
xmlhttpobj = new XMLHttpRequest();
} else {
try {
xmlhttpobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttpobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttpobj = null;
}
}
}
return xmlhttpobj;
},
cookie:{
noexpire:(function(){
var d = new Date();
d.setTime(d.getTime() + (365*24*60*60*1000));
return d.toGMTString();
})(),
expire:(function(){
var d = new Date();
d.setTime(d.getTime()-1);
return d.toGMTString();
})(),
get:function(name) {
name += "-"+mw.config.get('wgUserName');
var cl = document.cookie.split(/;\s*/);
for (var i=0; i<cl.length; i++) {
var curc = cl[i].split(/\=/);
if (curc[0] == name) {
return(curc[1]);
}
}
return null;
},
set:function(name, value) {
name += "-"+mw.config.get('wgUserName');
document.cookie = name + "=" + escape(value) +
"; expires=" + topaz.util.cookie.noexpire +
"; path=/";
},
del:function(name) {
name += "-"+mw.config.get('wgUserName')
document.cookie = name+"=; expires="+topaz.util.coookie.expire+"; path=/";
}
}
};
/******************************** topaz.comm ********************************/
topaz.comm = {
doreq:function(url, postdata, headers) {
var req = topaz.util.xmlhttpreq();
req.open(postdata ? "POST" : "GET", url, false);
for(var header in headers) {
req.setRequestHeader(header, headers[header]);
}
req.send(postdata || null);
return req;
}
};
/******************************* topaz.wputil *******************************/
topaz.wputil = {
username:function() {
return mw.config.get('wgUserName');
//abans: topaz.util.getobj("pt-userpage").childNodes[0].childNodes[0].nodeValue;
},
iseditpage:function() {
return document.title.indexOf("Editing ") == 0;
},
pagename:function() {
var iseditpage = topaz.wputil.iseditpage();
return document.title.substr(iseditpage ? 8 : 0, document.title.indexOf(" - ")-(iseditpage ? 8 : 0));
},
addsidepanel:function(id, label) {
var div = topaz.util.add(topaz.util.getobj("column-one"), "div", {className:"portlet",id:id, title: "panell afegit amb els Viquiestris"});
topaz.util.add(div, "H5").innerHTML = label;
topaz.util.add(topaz.util.add(div, "div", {className:"pBody"}), "ul");
},
addsidepanelbutton:function(id, label, targhref) {
var li = topaz.util.add((topaz.util.getobj(id).getElementsByTagName("ul"))[0],"li");
with(topaz.util.add(li,"a")) {
innerHTML = label;
href = targhref;
title = label+": enllaç afegit amb els Viquiestris"
}
return li;
},
addsidepanelbutton2:function(id, label, targhref) {
var li = topaz.util.add2(
(
topaz.util.getobj(id).getElementsByTagName("ul")
)[0],
(
(
topaz.util.getobj(id).getElementsByTagName("ul")
)[0].getElementsByTagName("li")
)[0], "li"
);
with(topaz.util.add(li,"a")) {
innerHTML = label;
href = targhref;
}
return li;
},
setpagecontent:function(pagename, content, summary, watch) {
var prelimresp = topaz.comm.doreq("/w/index.php?title="+pagename+"&action=submit");
var edittime = prelimresp.responseText.match(/<input type='hidden' value="(\d+)" name="wpEdittime" \/>/)[1];
var edittoken = prelimresp.responseText.match(/<input type="hidden" value="([^"]+)" name="wpEditToken" \/>/)[1];
content = topaz.util.urlencode(content);
url = "/w/index.php?title=" + pagename + "&action=submit";
data = "wpEdittime=" + edittime +
"&wpEditToken=" + topaz.util.fullescape(edittoken)+
"&wpTextbox1=" + content +
"&wpSummary=" + summary +
(watch ? "&wpWatchthis=on" : "") +
"&wpSection=&wpSave=Save+page";
headers = {"Content-Type":"application/x-www-form-urlencoded"};
topaz.comm.doreq(url, data, headers);
},
getpagecontent:function (pagename) {
var req = topaz.comm.doreq("/w/index.php?title=" + pagename + "&action=edit");
var content = req && req.responseText && req.responseText.match ? (
req.responseText.match(/<textarea[\w\W]*?>([\w\W]*?)<\/textarea>/)[1] || ''
) : '';
return topaz.util.urlencode(content);
},
getpagecontentserver:function (server, pagename) {
var req = topaz.comm.doreq(server + "/w/index.php?title=" + pagename +
"&action=edit");
var content = req.responseText.match(
/<textarea[\w\W]*?>([\w\W]*?)<\/textarea>/
)[1];
return topaz.util.urlencode(content);
},
addpagecontent:function(pagename, addContent, summary, watch) {
var newContent = '';
var prelimresp = topaz.comm.doreq(
"/w/index.php?title=" + pagename + "&action=submit"
);
var edittime = prelimresp.responseText.match(
/<input type='hidden' value="(\d+)" name="wpEdittime" \/>/)[1];
var edittoken = prelimresp.responseText.match(
/<input type="hidden" value="([^"]+)" name="wpEditToken" \/>/)[1];
var req = topaz.comm.doreq(
"/w/index.php?title=" + pagename + "&action=edit"
);
var oldContent = req.responseText.match(
/<textarea[\w\W]*?>([\w\W]*?)<\/textarea>/)[1];
oldContent = topaz.util.urlencode(oldContent);
addContent = topaz.util.urlencode(addContent);
newContent = oldContent + addContent;
url = "/w/index.php?title=" + pagename + "&action=submit";
data = "wpEdittime=" + edittime +
"&wpEditToken=" + topaz.util.fullescape(edittoken) +
"&wpTextbox1=" + newContent +
"&wpSummary=" + summary +
(watch ? "&wpWatchthis=on" : "") +
"&wpSection=&wpSave=Save+page";
headers = {"Content-Type":"application/x-www-form-urlencoded"};
topaz.comm.doreq(url, data, headers);
},
readpagecontent:function (pagename) {
var req = topaz.comm.doreq("/w/index.php?title=" + pagename);
var content = req.responseText.match(/<textarea[\w\W]*?\>([\w\W]*?)<\/textarea>/)[1];
return topaz.util.urlencode(content);
},
getspecialpagecontent:function (pagename) {
var req = topaz.comm.doreq("/w/index.php?title=" + pagename + "&action=raw");
return topaz.util.urlencode(content);
}
};
/*
</nowiki>
</pre>
*/