« Utilisateur:Pinocchio/citation du jour.js » : différence entre les versions
De BoyWiki
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 6 : | Ligne 6 : | ||
/* seulement pour page Accueil et utilisateur ayant droit */ | /* seulement pour page Accueil et utilisateur ayant droit */ | ||
//if (document.body.className.match(/page-Accueil/) == null) return; | //if (document.body.className.match(/page-Accueil/) == null) return; | ||
if (document.body.className.match(/page-Utilisateur_Pinocchio/) == null) return; | //if (document.body.className.match(/page-Utilisateur_Pinocchio/) == null) return; | ||
if (wgUserGroups && wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return; | if (wgPageName != 'Utilisateur:Pinocchio') return; | ||
//if (wgUserGroups && wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return; | |||
if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return; | |||
if (wgAction != 'view') return; | if (wgAction != 'view') return; | ||
Version du 15 mars 2009 à 18:19
/* Ajoute une citation dans la page de préparation des citations - BoyWiki:Accueil/Citation du jour */
/* les citations sont préparées pour n jours suivants */
function update_citation_du_jour() {
/* seulement pour page Accueil et utilisateur ayant droit */
//if (document.body.className.match(/page-Accueil/) == null) return;
//if (document.body.className.match(/page-Utilisateur_Pinocchio/) == null) return;
if (wgPageName != 'Utilisateur:Pinocchio') return;
//if (wgUserGroups && wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return;
if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|bureaucrat/) == null) return;
if (wgAction != 'view') return;
/* init syntaxe requete serveur */
if (window.XMLHttpRequest) { // Firefox
xhr_object = new XMLHttpRequest();
xhr_object2 = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE
xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
xhr_object2 = new ActiveXObject("Msxml2.XMLHTTP");
}
else return;
/* init requete serveur - get page préparation des citations */
xhr_object.open('GET', '/w/index.php?title=Utilisateur:Pinocchio/Test&action=edit', false);
xhr_object.send('');
if (xhr_object.readyState == 4 && xhr_object.status == 200) {
var pagedit = xhr_object.responseText.substr(4000);
/* copie contenu <textarea> en conservant les \n */
var idxtxta = pagedit.search(/<textarea/i);
if (idxtxta >0) {
var strtxta = '';
for (var i = idxtxta; i < pagedit.length; i++) {
strtxta += pagedit[i];
if (pagedit[i] == '>' && pagedit[i-1] == 'a' && pagedit[i-2] == 'e' && pagedit[i-3] == 'r' && pagedit[i-9] == '/' && pagedit[i-10] == '<') break;
if (pagedit[i] == '>' && pagedit[i-1] == 'A' && pagedit[i-2] == 'E' && pagedit[i-3] == 'R' && pagedit[i-9] == '/' && pagedit[i-10] == '<') break;
}
}
strtxta = strtxta.replace(/<textarea[^>]*>|<\/textarea>/gi, '');
alert(strtxta);
}
else return;
/* init date du jour - date min - date max */
var now = new Date();
var today = formatdateyyyymmdd(now);
now.setDate(now.getDate() - 2);
var minday = formatdateyyyymmdd(now);
now.setDate(now.getDate() + 10);
var maxday = formatdateyyyymmdd(now);
//alert(today+' '+minday+' '+maxday);
/* découpe contenu de textarea (= sous-page citation du jour) par cas du switch */
tabswtxta = strtxta.split(/\n ?\| ?/);
/* conserve début page jusqu'à switch */
var buf = tabswtxta[0]+'\n';
var max = 0;
/* parcourt les dates élimine les cas obsolètes et ajoute à buf les cas conservés */
for (var i = 1; i < tabswtxta.length ; i++) {
var cas = tabswtxta[i].match(/^[0-9]{8}=/);
if (cas >= minday+'=') {
buf += '| '+tabswtxta[i]+'\n';
if (cas > max) max = cas;
}
}
/* si nécessaire génére requête recherche nouvelle citation */
/* ajoute fin switch */
buf += '|#default=\n}}';
alert(buf);
return;
var newtxt=buf;
/* récup éléments du formulaire */
pagedit = pagedit.replace(/\n/g, '');
var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
var editoken = pagedit.match(/.{80}name="wpEditToken/i);
editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
var summary = 'Routine citation du jour';
//alert(startime+' '+editime+' '+editoken+' '+autosummary);
//alert(strtxta);
/* init requete serveur - maj sous-page Accueil/Citation */
var boundary = '--------------23242526272829';
var data = '';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAntispam"\r\n\r\n\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+newtxt+'\r\n';
data += '--'+boundary+'--\r\n';
xhr_object.open('POST', '/w/index.php?title=Utilisateur:Pinocchio/Test2&action=submit', false);
//xhr_object.setRequestHeader("Host", "fr.boywiki.org");
xhr_object.setRequestHeader("Charset", "utf-8");
xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
xhr_object.setRequestHeader("Content-Length", String(data.length));
xhr_object.send(data);
alert(xhr_object.readyState+' '+xhr_object.status);
}
addOnloadHook(update_citation_du_jour);
/* Retourne la date formatée yyyymmdd */
function formatdateyyyymmdd(obj) {
var yer = obj.getFullYear();
var mon = (obj.getMonth() + 1);
var day = obj.getDate();
if (mon < 10) mon = '0'+mon;
if (day < 10) day = '0'+day;
return yer+mon+day;
}