Darkoneko's Weblog

Yesterday, today, and no future / time waits for no one

Posts Tagged ‘customisation’

Personnalisons Wikipédia : vous avez un nouveau message (update)

Posted by DarkoNeko sur lundi 12 novembre 2012

Ce billet fait partie de la série « Personnalisons Wikipédia« .

Suite à une modification sur MediaWiki, mon  bout de code permettant de changer le texte du bandeau « vous avez un nouveau message » ne fonctionne plus. Corrigeons ça.

Le nouveau message ressemble à ceci :


Soit structurellement, texte1/lien1/texte2/lien2/texte3.

Je n’utilise que texte1 et lien2 (lien1 et texte2 deviennent vides, texte3 n’est pas touché), mais l’endroit ou est modifié chaque élément est spécifié en commentaire pour que vous puissiez changer ça si ça vous dit :)


Nouveau code (n’oubliez pas d’effacer l’ancien le cas échéant !)

function youHaveANewInsultingMessage() {
  div = document.body.getElementsByClassName("usermessage")[0]
  if( !div) return

  div.firstChild.nodeValue = " Rhaaah tu as fait une connerie (" //texte1

  a = div.getElementsByTagName("a")
  a[0].firstChild.nodeValue = "" //lien1
  a[0].nextSibling.nodeValue = "" //texte2
  a[1].firstChild.nodeValue = "bâtard" //lien2
}

addOnloadHook(youHaveANewInsultingMessage)

Posted in Personnalisons Wikipédia, wikipédia | Tagué: , , , , , | Leave a Comment »

Personnalisons Wikipédia : liste de suivi (3)

Posted by DarkoNeko sur vendredi 11 mai 2012

Ce billet fait partie de la série “Personnalisons Wikipédia“.

Les perspicaces d’entre vous aurons remarqué un bouton « (stop) » sur les captures d’écran de mon billet d’hier. Cette fonctionnalité (qui est une amélioration d’un vieux script de Dake) permet d’arrêter de suivre des pages directement depuis [[spécial:liste_de_suivi]], en un seul clic.

après clic sur "stop", la ligne est barrée et la page n'est plus suivie.

après clic sur « stop », la ligne est barrée et la page n’est plus suivie. Pratique non ?

À titre exceptionnel, je vous épargne le décorticage du code :) Pour tester, éditez votre monobook.js/vector.js et ajoutez y la ligne suivante :

importScript('Utilisateur:Darkoneko/addStopInWatchlist.js')

NB : au collage, verifiez bien que les apostrophes droites n’aient pas été transformées en apostrophes courbes. JavaScript ne reconnaît pas les apostrophes courbes.

Posted in Personnalisons Wikipédia | Tagué: , , , , , , | Leave a Comment »

Personnalisons Wikipédia : liste de suivi (2)

Posted by DarkoNeko sur jeudi 10 mai 2012

Ce billet fait partie de la série “Personnalisons Wikipédia“.

Le style des listes de suivi a un peu changé :

En mettant de côté mes modifications persos (qui sont expliquées sur cet autre billet), le titre est maintenant en gras et ça m’emmerde.

Si vous aussi, alors direction votre monobook.css/ ou vector.css et ajoutez y la ligne suivante :


.mw-watched { 
   font-weight:normal; 
}

Ce qui nous donne maintenant :

Tant qu’on y est, virons ce point qui occupe inutilement de l’espace au début de chaque ligne :


.mw-special-Watchlist #mw-content-text ul li { 
   list-style:none; /* plus de point */ 
} 
.mw-special-Watchlist #mw-content-text ul {
    margin-left:5px; /* reduire la marge pour ne pas avoir un espace vide */ 
}

Et voili :

Posted in Personnalisons Wikipédia | Tagué: , , , , | 1 Comment »

Fusion de contribs : premiere version disponible !

Posted by DarkoNeko sur mercredi 1 décembre 2010

J’ai la plaisir de vous annoncer qu’une première version de mon outil de « fusion de contributions » est disponible. Cet outil permet de recouper visuellement les contributions de plusieurs comptes afin d’aider à voir si, par le plus grand des hasards, il n’y aurait pas une unique personne cachée derrière (en clair, c’est un détecteur de faux nez)

Le script fonctionne indifféremment sous les skins Vector ou Monobook et a été testé avec Firefox 3.5 et 3.6. Il devrait fonctionner correctement sur tous les navigateurs à l’exception d’internet explorer (ça sera pour la prochaine version)

Comment l’installer ?

Ajoutez la ligne suivante dans votre monobook.js ou vector.js :

importScript('Utilisateur:Darkoneko/nekotb_fc_1.0.js')

…et n’oubliez pas de forcer un rafraichissement de la page comme affiché.

Comment s’en servir ?

Si tout va bien, vous avez maintenant un lien supplémentaire dans le menu de gauche, « @Fusion contribs ».

Il vous suffit de cliquer dessus pour passer en mode « fusion de contribs ». L’outil remplace la zone ou s’affichent les articles, donc ne l’ouvrez pas en mode édition sous peine de perdre vos modifications :)

Bref, cliquez dessus. Le script est maintenant lancé et vous affiche son formulaire :

  • Vous pouvez entrer les dates que vous voulez, mais gardez en tête que les contributions seront nombreuses, plus votre navigateur risquera de ramer en les affichant.
  • Il y a une limite en dur de 7500 contributions récupérées par compte ; c’est une protection pour éviter de faire mourir votre ordinateur si vous demandez une comparaison avec des comptes ayant des dizaines de milliers de contributions dans la période demandée… (corolaire au point 1)
  • Une fois dans l’affichage fusionné, il vous suffit de cliquer sur « revenir au formulaire » pour retrouver le formulaire tel qu’il se trouvait lorsque vous l’avez validé. Pratique si vous voulez faire la même recherche en ajoutant juste un autre compte.
  • Dans le formulaire, il suffit de cliquer sur un compte ajouté (ou la croix à sa droite) pour le retirer de la liste.

Comment repérer un faux nez ?

Note : l’outil, comme toutes les explications que je donne ci dessous, ne donnent que des *présomptions* de faux nez. Ce n’est pas une preuve absolue mais un élément de suspicion à additionner avec d’autres.

Note2 : quelquepart, j’ai l’impression de me tirer dans le pied, vu que je donne indirectement des conseils aux possesseurs de faux nez pour qu’ils ne se fassent pas repérer. M’enfin je pars du principe que très peu d’entre eux liront mon blog :)

Les faux nez sont souvent reconnaissables par le fait qu’ils n’éditent jamais au même moment ; dans la même idée, il arrive que la personne contribue sur un compte, se déconnecte puis continue sur un autre compte. C’est ce genre de choses que rend visible l’outil de fusion.

Petit exemple pratique :

Comparons deux comptes, genre au hasard : Scaler et Folken de Fanel. Le script retourne ceci (extrait) :

Les contribs de Scaler sont sur fond bleur clair, celles de Folken de Fanel sur fond blanc

C’est du chinois pour vous ? Décryptons :

(1) correspond à une zone  que l’on peut considérer comme « d’éditions relativement continues »

En supposant que les deux comptes appartiennent à la même personne, alors cela voudrait dire que :

  • de 19:23 à 21:10, la personne a édite avec le compte A (4)
  • Un peu plus tard, elle se connecte avec le compte B et continue d’éditer de 21:45 à à 22:02 (5)
  • Puis se reconnecte avec le compte A et continue d’éditer de 22:58 à 23:21 (6)
  • et enfin, se reconnecte avec le compte B et continuer d’éditer de 00:43 à 01:11 (7)

Ici, l’édition (3) entre (2) et (4) n’indique rien en particulier : ça ne donne pas de soupçons particulier, mais à contrario, le temps de latence avant et après est trop grand pour qu’on puisse juste penser « ce sont bien 2 personnes différentes car elles ont édité à au même moment »

Si ce genre de choses n’arrive qu’une seule fois dans toute la liste des contribs fusionnées, alors c’est vraisemblablement une simple coïncidence. Par contre, si cela se retrouve régulièrement, alors vous pouvez commencer à vous poser des questions, et continuer à accumuler des indices (ou pas) en épluchant un peu les diffs pour trouver

  • Des centres d’intérêt communs (dans les cas les plus évidents, les comptes auront édité les mêmes articles voire participé à une guerre d’édition dessus)
  • Chercher des fautes d’orthographes  ou des constructions de phrases similaires
  • Etc, etc. D’autres tels qu’Hégésippe seraient bien mieux placé que moi pour vous détailler ce genre de choses, donc je m’arrêterais là.

Voili, amusez vous bien !

N’hésitez pas à me rapporter les bugs ou demandes d’amélioration sur ma page de discussion ou en commentaire ci dessous

Posted in les coulisses de Wikipédia | Tagué: , , , | 4 Comments »

Fusion de contribs

Posted by DarkoNeko sur dimanche 21 novembre 2010

Je m’amuse actuellement à coder un outil de « fusion de contributions » en JavaScript. Pour ceux/celles qui ne connaissent pas, c’est très utile pour la chasse aux faux-nez.

Pour l’instant, ça ma version de la chose ressemble à ça :

  • l’apparition de la boite de fusion se fait par un clic sur un lien du menu de gauche (hors écran)
  • Il n’y a pas encore d’interface pour entrer les noms : « user:darkoneko », « user:pelote de laine », « user:loveless » et « user:=^^= » sont inscrit en dur dans le code (mais ça changera :)
  • La fusion se fait sur les 100 derniers jours (là encore, les dates seront paramétrables dans la version finale)
  • Le nombre max de contributions récupérées pour chaque utilisateur est limité en dur (à 3000 dans le test ci dessus). Cette limitation est une sécurité pour éviter que la fusion prenne 20 minutes (ou que le navigateur plante1)  si l’un des comptes  a fait 100 000 éditions dans la période demandée :)

Afficher en temps réel de ce qui a déjà été récupéré est vraiment « gadget », mais c’est tellement plus agréable que d’attendre devant une page blanche sans plus d’informations, pas vous ?

—-

1 : j’ai fait un test de charge (en débridant la limitation) avec une fusion sur 2 ans sur les mêmes utilisateurs. Le script a mis une dizaine de minutes pour récuperer les 169 000 contribs (dont 160k du bot), une minute pour les afficher …  firefox n’a pas planté \o/ Les autres onglets sont resté accessibles pendant toute la période de récupération, mais ne repondaient par contre plus pendant la minute de génération de l’affichage (afficher 169k ligne fait pas mal mouliner le CPU)

Posted in les coulisses de Wikipédia | Tagué: , , , | 4 Comments »

Personnalisons Wikipédia : confirmer une action

Posted by DarkoNeko sur jeudi 11 novembre 2010

Ce billet fait partie de la série « Personnalisons Wikipédia ».

La personnalisation du jour vous permettra d’ajouter une demande de confirmation lorsque vous cliquez sur « révoquer » avec quelques lignes de JavaScript. En gros, cette fonction est prévue pour ceux et celles qui cliquent plus sur le bouton par erreur que volontairement :)

Lors d’un clic sur le lien de révocation, la fenêtre suivante apparaitra :

Code à ajouter dans votre monobook.js ou vector.js

Le code est tout simple :

  1. récupération de la liste les liens « révoquer » de la page (repérables par leur classe « mw-rollback-link »)
  2. ajout d’un appel à la fonction de confirmation à leur évènement « onclick » (=quand l’utilisateur clique)

confirm() est une fonction native de JavaScipt, donc rien de spécial à faire de ce côté là.

si l’utilisateur clique sur « ok », confirm() retourne True et l’action (aller vers la page) est validée, dans le cas contraire elle retourne False et l’action est annulée


function addRevertButtonConfirm() {
   var list_boutons = document.getElementsByClassName("mw-rollback-link")
   for (var a = 0, len = list_boutons.length ; a < len ; a++) {
      list_boutons[a].setAttribute('onclick', 'return confirm("revoquer ?")')
   }
}
addOnloadHook( addRevertButtonConfirm )

Note : le script n’a été testé que sous firefox

Posted in Personnalisons Wikipédia | Tagué: , , , , , , | Leave a Comment »

Personnalisons Wikipédia : icone de suivi sous Vector

Posted by DarkoNeko sur dimanche 13 juin 2010

Ce billet fait partie de la série « Personnalisons Wikipédia ».

En suivant un lien depuis le dernier billet de Popo, je suis tombé sur une discussion de bistro remplie de complaintes, dont une partie était au sujet de l’icône « étoile » faisant sous Vector office de raccourci pour ajouter une page à sa liste de suivi.

Wikipédiens, Wikipédiennes, Je Vous Ai Compris. La personnalisation du jour permettra aux vectorisés d’entre vous  de changer l’icône de ce lien.

Un code similaire a été utilisé dans plusieurs de mes autres billets de personnalisation, donc pas d’explications. Pour cet exemple, je me suis basé sur cette image pour la « mise en suivi » et sur celle ci pour le « retrait de suivi ». N’hésitez pas à les remplacer par quelquechose que vous plait :)


/* icone "mettre en suivi" */
#ca-watch.icon a, #ca-watch.icon a:hover {
   background-image:url("http://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Searchtool_right.svg/15px-Searchtool_right.svg.png");
   background-position:5px 60%; /* cette partie est nécessaire car le mode hover "par défaut" a des valeurs différentes */
}


/* icone "retirer de la liste de suivi" */
#ca-unwatch.icon a, #ca-unwatch.icon a:hover {
   background-image:url("http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Black_x.svg/15px-Black_x.svg.png");
   background-position:5px 60%;
}

Posted in Personnalisons Wikipédia | Tagué: , , , , , , , , | Leave a Comment »

Personnalisons Wikipédia : la barre du haut

Posted by DarkoNeko sur vendredi 12 mars 2010

Ce billet fait partie de la série « Personnalisons Wikipédia ». La personnalisation du jour vous permettra de changer la tronche de la barre en haut à droite.
Je commencerais doucement avec des modifications esthétiques simples  (en CSS), puis ce sera au tour de l’ajout d’icônes (toujours en CSS), pour finir sur la modification du texte des liens et l’ajout d’autres liens dans la barre (en JavaScript).

Histoire d’avoir une base de travail « propre » (mon compte principal étant très customisé), je me servirais ici d’un compte « user:Pelote de laine », donc ne soyez pas surpris du nom affiché dans la barre sur les exemples :)

Au moment ou j’écris ces lignes, la version par défaut de la barre du haut, avec le skin monobook, ressemble à ça :

Jouons un peu avec le CSS (monobook.css ou vector.css)

Pour commencer, voici quelques exemples de changement d’apparence. C’est juste pour vous donner une idée de ce qui peut être fait, donc c’est très hétéroclite ; n’hésitez pas à réutiliser les bouts qui vous plaisent :)  Lors de vos tests, pas besoin de sauvegarder votre monobook, un simple « prévisualiser » suffit pour jauger le résultat.


/* virer le lien "essayer la béta" */
li#pt-optin-try {
   display:none!important;
}

/* lien discussion : espace plus grand entre chaque lettre */
li#pt-mytalk a {
   letter-spacing:2px;
}

/* préférences : en italique */
li#pt-preferences a {
   font-style:italic;
}

/* liste de suivi : en petites majuscules */
li#pt-watchlist a {
   font-variant:small-caps;
}

/* contributions : barré */
li#pt-mycontris a {
   text-decoration:line-through ;
}

/* déconnexion : en rouge et gras */
li#pt-logout a {
   font-weight:bold;
   color:red;
}

Résultat :

Ajouter des icônes (toujours monobook.css ou vector.css)

Repartons de zéro (ou presque, je garde le bout supprimant le lien « essayer la beta »), et ajoutons cette fois des « icônes » à gauche de certains liens.

Chaque icône, étant attachée au node « a » et non au node « li », fait partie intégrante du lien et est donc cliquable.


/* boc de biere à gauche du lien vers ma page de discussions */
li#pt-mytalk a {
  /* mettre une image de fond (l'icône) au node "a", tout à gauche */
  background:transparent url('http://upload.wikimedia.org/wikipedia/commons/thumb/d/da/2piva.png/15px-2piva.png') no-repeat scroll left top;
  /* décaler le texte sur la droite (d'environ la largeur de l'image) pour que les deux ne se chevauchent pas */
  padding-left:17px;
}

/* une roue crantée à gauche des prefs */
li#pt-preferences a {
  background:transparent url('http://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Crystal_Clear_app_kservices.png/15px-Crystal_Clear_app_kservices.png') no-repeat scroll left top;
  padding-left:17px;
}

/* une loupe à gauche de la liste de suivi */
li#pt-watchlist a {
  background:transparent url('http://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Searchtool_right.svg/15px-Searchtool_right.svg.png') no-repeat scroll left top;
  padding-left:17px;
}

/* un crayon à gauche de la liste de contributions */
li#pt-mycontris a {
  background:transparent url('http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Emblem-pen-new.svg/13px-Emblem-pen-new.svg.png') no-repeat scroll left top;
  padding-left:15px;
}


Résultat :

changer le texte, ajouter des liens (monobook.js ou vector.js)

Passons maintenant à la partie JavaScript (pour les étourdis, ça veux dire « ne collez pas le code ci dessous dans votre monobook.css, ça ne marchera pas ») . Nous allons ajouter des liens…

  • vers votre monobook perso  : « js » et « css » (remplacez « monobook » par « vector » dans les liens au besoin, et adaptez si vous utilisez secure.wikimedia.org)
  • vers vos logs

Et tant qu’on y est, modifions le texte des liens existants.

Le principe utilisé est le même que dans cet autre billet de personnalisation ainsi que celui ci, je ne m’étendrais donc pas trop sur son fonctionnement



importScript('Utilisateur:Darkoneko/divers.js') // si vous ne l'avez pas déjà

function customizeTopBar() {
   var logout = document.getElementById("pt-logout")
   if (!logout) return
   var topBarUl = logout.parentNode

   var mytalk = document.getElementById('pt-mytalk');
   //ajouter "js" a gauche de discussion. La variable "wgUserName" contient le nom de l'utilisateur en cours.
   topBarUl.insertBefore( createLiAdressNode('/wiki/user:'+wgUserName+'/'+skin+'.js', 'js'), mytalk)

   //ajouter "css" a gauche de discussion, donc il sera entre "js" et "discut'"
   topBarUl.insertBefore( createLiAdressNode('/wiki/user:'+wgUserName+'/'+skin+'.css', 'css'), mytalk)

   //changer le texte pour "Page de discussion"
   mytalk.getElementsByTagName("a")[0].firstChild.nodeValue = "discut' "

   //changer le texte pour "Préférences"
   document.getElementById('pt-preferences').getElementsByTagName("a")[0].firstChild.nodeValue = "prefs"

   //changer le texte pour "Liste de suivi"
   document.getElementById('pt-watchlist').getElementsByTagName("a")[0].firstChild.nodeValue = "watchlist"

   //changer le texte pour "Contributions"
   document.getElementById('pt-mycontris').getElementsByTagName("a")[0].firstChild.nodeValue = "contribs"

   //ajouter "log" a gauche de déconnexion
   topBarUl.insertBefore( createLiAdressNode('/w/index.php?title=Special:Journal&user='+wgUserName, 'log'), logout )

   //changer le texte pour "Déconnexion"
   logout.getElementsByTagName("a")[0].firstChild.nodeValue = "X"
}
addOnloadHook(customizeTopBar)


Résultat :

Et vous, quels autres liens ajouteriez vous ?

Posted in Personnalisons Wikipédia | Tagué: , , , , , , , , | 3 Comments »

concours de personnalisation : plus que 4 jours !

Posted by DarkoNeko sur mardi 8 décembre 2009

Il vous reste jusqu’à samedi pour participer au mini concours de personnalisation de sommaire.

Les modifs CSS  sont expliqués dans ce post… Un peu d’courage messieurs dames, c’est pourtant tout simple à réaliser ! :)

Posted in Personnalisons Wikipédia | Tagué: , , , , , , , | 2 Comments »

Mini concours de personnalisation de sommaire

Posted by DarkoNeko sur dimanche 29 novembre 2009

Chalutations,

Suite à mon billet « Personnalisons Wikipédia : le sommaire« , je lance un mini-concours de personnalisations : il n’y a rien à gagner, si ce n’est le plaisir de partager son code et de le voir réutilisé ! :)

Donc, j’invite chacun à faire son propre design de sommaire, et poster dans la zone commentaire du présent billet un lien vers une capture d’écran du résultat (par exemple uploadée sur imageShack)+un lien vers votre monobook.css/vector.css. Une personne peut poster plusieurs designs, pour peu qu’ils soient notablement différents.

Le « mini concours » ouvre aujourd’hui (29 novembre) et se terminera dans 2 semaines (le 12 décembre 2009 au soir), suite à quoi je posterais une compilation de vos différentes œuvres. Je suis disponible sur IRC et ma page de discussion pour répondre à vos éventuelles questions et vous aider à débugger un peu si nécessaire.

Wikimédiens, à vos claviers !

Posted in Personnalisons Wikipédia | Tagué: , , , , , , , | 6 Comments »