Mot-clef « Smiley »

Altération des archives gzip lors d'un téléchargement

Il y a quelque temps, j'ai mis en ligne un pack de smileys pour le logiciel de messagerie instantanée Pidgin. Ce pack contient les smileys utilisés sur mes forums, comme je l'avais déjà fait pour Adium (car oui, Adium est excellent mais ne tourne que sur Mac, donc quand on est sous Windows, il faut se rabattre sur autre chose et Pidgin reste le moins mauvais que j'ai pu trouver...).

Pour générer ce pack, j'ai utilisé le convertisseur que j'avais déjà codé pour le pack Adium et qu'il serait temps que je finalise pour le publier...

Mais là n'est pas le propos de cette note. En effet, j'ai constaté plus tard, quand certaines personnes ont voulu exploiter ce pack, que le pack ne s'installait pas systématiquement. En fait le problème vient du fait que Firefox (de même qu'Opera et Safari dans leurs dernières versions) altère légèrement le fichier du pack qui est une archive gzip.

En effet quand j'ouvre le fichier téléchargé, au lieu de trouver directement dedans le fichier .tar que je devrais y trouver, je tombe sur une sorte de dossier intermédiaire du nom du fichier. Ce "dossier" apparait lors du téléchargement uniquement puisqu'il n'est pas présent sur le fichier avant l'envoi, pas plus que lors d'un téléchargement via IE6 (eh oui, j'ai encore de vieux trucs sur mon PC, même si je ne m'en sers que pour des tests :p).

Je n'ai testé ça que sous Windows et je ne sais pas ce qu'il en est des versions Linux et Mac de ces différents navigateurs mais sur Windows le problème est réel (du moins pour des archives publiées via un site tournant sous WordPress, mais je ne pense pas que ça vienne de là).

Je soupçonne que ça puisse venir de l'aptitude qu'ont les navigateurs à recevoir de pages compressés en gzip par le serveur et de les décompresser à la volée : l'archive étant dans ce format, peut-être le navigateur fait-il un truc pas net avec ? Peut-être aussi qu'il y aurait des en-têtes particuliers à envoyer pour résoudre le problème... ou peut-être pas.

Quoiqu'il en soit, la solution la plus simple que j'ai trouvée pour l'instant reste de fournir une archive .zip contenant l'autre archive. Là, pas de problème, il n'y a pas d'altération.


Création de packs de smileys pour Adium

Ça faisait un bout de temps que j'y pensais puis j'ai finalement décidé de m'y mettre le weekend dernier : me faire un pack de smileys pour Adium reprenant les smileys d'EDForum. Je l'avais déjà fait pour Trillian où j'avais pas mal galèré parce qu'au lieu d'un fichier par smiley il gère un fichier global contenant toutes les images et un deuxième fichiers contenant la correspondance entre les codes smileys et les coordonnées correspondantes dans le fichier d'image... J'ai donc été agréablement surpris par la structure très simple des pack pour Adium.

Structure du pack

Le pack est composé de manière très simple d'un dossier avec l'extension .AdiumEmoticonset contenant d'une part les différents smileys et d'autre part un fichier XML Emoticons.plist contenant les correspondances image/code.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AdiumSetVersion</key>
	<integer>1</integer>
	<key>Emoticons</key>
	<dict>
		<key>chuck.gif</key>
		<dict>
			<key>Equivalents</key>
			<array>
				<string>:chuck:</string>
				<string>:norris:</string>
			</array>
			<key>Name</key>
			<string>Chuck Norris</string>
		</dict>
...
		<key>paf.png</key>
		<dict>
			<key>Equivalents</key>
			<array>
				<string>:chien:</string>
			</array>
			<key>Name</key>
			<string>Paf le chien</string>
		</dict>
	</dict>
</dict>
</plist>

Construire un pack

Il existe un petit logiciel pour faciliter leur création : dotAdiumEmoticonSet Creator

Il est assez simple d'utilisation, si ce n'est qu'avant fermeture, il ne demande aucune confirmation, même au cas où certaines modifications n'auraient pas été enregistrées (ce qui est habituellement le cas pour à peu près toutes les applications que j'ai pu utiliser, que ce soit sur PC ou sur Mac)... J'ai perdu comme ça pas mal de temps à faire un pack :) Ne voyant aucun bouton de sauvegarde (celui-ci se trouvant uniquement dans la section file de la barre de menu), j'avais supposé qu'elle était automatique comme c'est le cas dans la gestion des préférence de MacOS par exemple...

C'est assez rageant de saisir 140 smileys puis de se rendre compte que rien n'est enregistré. Donc si vous l'utilisez, ne reproduisez pas la même erreur ;)

Convertir un pack phpBB2

Après avoir perdu mon pack, je me suis dit que j'avais pas franchement envie de me retaper la liste à la main, donc j'ai opté pour une autre solution : écrire un script de conversion de pack phpBB2 en pack Adium. J'ai opté pour un petit script PHP en ligne de commande que je publierai sans doute bientôt. Forcément au final ça m'a pris un peu plus de temps, vu que j'ai fait un script un peu propre mais c'était nettement moins chiant ^^

Au final, le pack fonctionne très bien et peut être téléchargé ici (aux côtés de ses homologues pour phpBB2 et Trillian).


Nouveau design pour mon site de smileys

La dernière refonte de mon site de smileys datait de 2003, il était donc temps de le remettre un peu au goût du jour. Je me suis contenté d'une refonte du design pour l'instant, une refonte fonctionnelle avec une navigation par tags plutôt que par catégories statiques viendra peut-être un jour...

Ancienne version Nouvelle version

Ça reste assez simple mais ça fait nettement moins "vieux" ^^

Par contre c'est loin d'être parfait sous IE mais bon tant pis, j'ai bidouillé ce qu'il fallait pour que ça ne soit pas trop moche, on s'en contentera (pour ceux qui n'aiment pas la version IE, il est toujours temps d'en changer pour un vrai navigateur :mock:).

J'en ai profité pour remplacer le domaine sm.darathor.com (que j'avais pris à l'époque pour raccourcir les URLs) par smilies.darathor.com qui est quand même plus clair, pour les moteurs de recherche notamment.

Bon, maintenant faudrait que je refasse quelques smileys à l'occasion...