aMSN Forums
May 22, 2013, 10:07:30 am *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: New forum for aMSN !!
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Arguments imagemagick pour les smileys  (Read 8751 times)
perso258741
Newbie

Offline Offline

Posts: 14


View Profile
« on: April 22, 2006, 05:29:13 pm »

Hello ! j'ai voulu créer un petit script pour pouvoir ajouter des packs de smileys. Il est presque fini au détail près... qu'il ne marche pas  Shocked . En fait, il convertit les smileys, les places dans le dossier utilisateur, ajoute les lignes nécessaires dans le dossier config.xml mais le problème est que je ne convertis pas les smileys dans le bon format. J'ai fait des recherches sur le net pour essayer de faire un fichier animé au format gif incluant des fichiers png (et modifier après l'extension) mais je n'arrive pas à le faire avec la commande convert d'ImageMagick. J'ai voulu regarder si je ne pouvais pas utiliser TkCxImage mais je n'ai pas trouvé de documentation dessus. J'ai aussi jeté un coup d'oeil dans le wiki mais rien trouvé de précis sur le format des smileys. Comment peut-on donner à une image le format requis par aMSN ?

Merci de toute aide ! Dès que le script sera près je pourrai le faire partager si il y en a qui sont intéressés.
Logged
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #1 on: April 22, 2006, 09:59:19 pm »

salut,
je te conseillerais de laisser tomber l'idee de script, tu risque de causer des problemes si tu corrompt le fichier de configuration.. en plus, ca ne risque pas d'etre portable pour toutes les platformes si tu fais ca... en plus, je crois que les rajouter a la fin du config.xml ne suffit pas, il faudrait aussi ajouter le nom de chaque smiley que tu rajoute dans une liste des smileys valides... et aussi, il faut que amsn soit ferme quand tu fais ca, sinon il ecrasera le fichier config.xml...

mon conseil est d'utiliser un plugin pour amsn, ca sera beacoup plus simple et de laisser amsn gerer la conversion des fichiers aussi...
dans ton plugin, tu fera tout simplement (pour chaque smiley que tu veux ajouter du pack) :
Code:

foreach smiley $smileys_to_add {
   set ::new_custom_cfg(name) "la description, le nom pour le smiley.. doit etre unique a chaque fois"
   set ::new_custom_cfg(file) "le chemin vers l'image"
   set ::new_custom_cfg(text) "liste des mots qui declenchent le smiley.. chaque 'trigger' espace par un espace d'un prochain trigger"
   set ::new_custom_cfg(casesensitive) "0 ou 1 dependament de la sensibilite a la majuscule"
   set ::new_custom_cfg(enablesound) "0 ou 1 dependament si tu veux qu'un son soit joue lorsque le smiley est envoye (localement seulement)"
   set ::new_custom_cfg(sound) "le chemin vers le fichier wav a jouer, seulement si enablesound est a 1"
   ::smiley::NewCustomEmoticonFromGUI
}


ca devrait faire l'affaire... assure toi que toutes les lignes aparaissent (sauf sound qui est facultatif en autant que enablesound soit a 0)
Comme ca, tu simulera un vrai rajout de smiley...

les restrictions de MSN (et non amsn) sont assez specifiques, il faut que ce soit un fichier png, de taille 19x19 pixels.. ils autorisent jusqu'a 50x50 pixels.. une image gif animee est aussi toleree...
Logged

KaKaRoTo
perso258741
Newbie

Offline Offline

Posts: 14


View Profile
« Reply #2 on: April 24, 2006, 10:57:33 am »

Merci pour ces infos. En effet si on passe les smileys en gif ça marche. Le script fonctionne donc j'ai pu ajouter quelques 300 smileys png et gif (contenus dans un pack) sans aucun problème. Je préférai faire un script car je ne sais pas du tout faire un smiley et je ne connais rien au tcl, et je ne trouve pas assez de doc sur le sujet, le wiki ne me suffisant pas à mon niveau. Donc bien que je sache que ça ne peut etre utilisé que sur linux et donc non compatible avec windows et mac,... etc. j'ai préféré faire ce choix mais je comprends tout à fait ton avis. Et donc dans un premier temps, sauf avis contraires, je garderai ce script pour moi. Merci encore pour ces infos et bonne continuation !
Logged
snipe2004
Super Power User
**
Offline Offline

Posts: 827


View Profile
« Reply #3 on: April 24, 2006, 05:45:33 pm »

Si je peux me permettre, j'émets un avis contraire  :lol:
Ton script serait super utile à pas mal de gens (dont moi, héhé Cheesy ), ca serait bien de le partager  :wink:
Ms rien ne t'y oblige évidemment  :roll:
Logged

Voyager 11.10
perso258741
Newbie

Offline Offline

Posts: 14


View Profile
« Reply #4 on: April 24, 2006, 09:03:27 pm »

Bon bah si t'insistes  :oops:
Bon je suis pas un pro donc faut pas me dire que c'est pourri mais au moins ça a le mérite de marcher. Il fonctionne donc sur linux et nécessite imagemagick. Si il y a un volontaire on doit pouvoir faire un skin qui a directement tous les smileys... à vérifier. J'ai voulu faire un semblant d'interface graphique donc ça utilise la commande de kde kdialog. Si il y en a qui utilisent un autre windowmanager on peut mettre en commentaire les lignes contenant kdialog et redéfinir les variables source (dossier contenant les smileys a ajouter), config (dossier contenant config.xml), et taille.

Pour les imprudents qui liraient ceci en diagonale  :roll: faites une sauvegarde de votre fichier config.xml ! Ca permettra un retour en arrière en cas d'erreur

Utilisation : trouver un pack de smiley (je conseille de jeter un coup d'oeil ici : http://www.kde-look.org/index.php?xcontentmode=23&PHPSESSID=0e4f2599fc7b1242cff924ab4a47da0b)
Mettre tous les smileys (fichiers png ou gif sinon me demander je préciserai comment modifier) dans un meme dossier, quitter amsn, puis lancer le script d'une console de préférence. Indiquer où se trouvent les smileys, puis après donner le dossier contenant le fichier config.xml de l'utilisateur. (Ne pas donner le dossier smileys !!).
Ensuite j'ai rajoutée un gadget qui peut s'avérer utile, le redimensionnement des smileys. Indiquer la taille maximale que doit faire le smiley, sachant que le ratio de l'image d'origine sera conservé et que l'image ne sera pas aggrandie si elle est inférieure à la taille indiquée. Une fois qu'on valide, le script fait tout et il rend la main. Lancer aMSN, et c'est prêt !

Remarques : pour simplifier l'ajout de pack avec beaucoup de smiley, le nom du smiley est automatique et est choisi en fonction du nom du smiley. Par exemple si on ajoute tuxon.gif, le smiley s'appellera tuxon et on pourra le lancer en tapant *tuxon (si le * ne vous convient pas, changez le script à votre goût). Il faut donc faire attention aux noms de fichiers pour éviter des conflits. De plus ça ne vérifie pas que le nom est déja présent dans le fichier config.xml donc encore une fois faire attention.
Par ailleurs, j'ai remarqué que apres installation pour un compte msn, il suffit de lancer un autre compte msn pour que ce dernier profite de tous les smileys.

Code:
#! /bin/sh

`kdialog --title "Selectionnez le repertoire contenant les smileys" --passivepopup "Remarque : tous les smileys doivent etre dans le meme dossier, la recherche n'est pas récursive" 8`&
source=`kdialog --title "Dossier contenant les smileys" --getexistingdirectory .`

`kdialog --title "Selectionnez le repertoire des parametres personnels d'amsn" --passivepopup "Ex : /home/USER/.amsn/pseudo_hotmail_com. Pour voir les fichiers cachés, faire un clic droit sur un dossier, fichiers cachés" 8`&
config=`kdialog --title "Dossier des parametres personnels de amsn" --getexistingdirectory ~/.amsn`

taille=`kdialog --inputbox "Taille maxi (LARGEURxHAUTEUR)" "75x75"`
cd $source
ls *.png >$config/png.list
ls *.gif >$config/gif.list
cd $config
mv config.xml config.bak
grep -v \<\/config\> config.bak>config.xml
for type in gif png ; do
MAX=`wc -l $type.list | awk '{ print $1 }'`
for ((lencour=1; lencour <= MAX ; lencour++))
do
                nom=`head -$lencour $type.list | tail -1`
ls $source/$nom
                basenom=`basename $nom .$type`
if [ "$type" = "gif" ]
then
convert -resize $taille\> $source/$nom $config/smileys/$basenom.gif
else
                        convert -resize $taille\> $source/$nom $config/smileys/$basenom.gif
fi


echo "   <emoticon>" >>config.xml
echo "      <file>$config/smileys/$basenom.gif</file>" >>config.xml
# La ligne suivante définit ce que l'utilisateur devra taper pour afficher le smiley
echo "      <text>*$basenom</text>" >>config.xml
echo "      <name>$basenom</name>" >>config.xml
anime=`identify -strip $config/smileys/$basenom.gif | wc -l`
if [ "$anime" = "1" ]
then
animated=0
else
animated=1
fi
echo "      <animated>$animated</animated>" >>config.xml
echo "      <image_name>emoticonCustom_std_*$basenom</image_name>" >>config.xml
echo "   </emoticon>" >>config.xml
echo "" >>config.xml
done
done
echo "</config>">>config.xml
ls config.xml
rm png.list gif.list


Info pour si vous avez besoin de retourner en arriere : le script ne modifie que le fichier config.xml et copie les avatars dans le dossier smileys. Aucun autre fichier n'est modifié.


Edit : précision pour les distraits comme snipe2004 Cheesy ou ceux qui n'auraient jamais pensé à quitter amsn avant de le lancer...
Logged
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #5 on: April 25, 2006, 12:25:08 pm »

bon, t'as dit de pas dire que c moche, mais... c moche :p
desole, je m'attendais juste a qquechose de plus robuste, tu fais un ls *.png *.gif.. et si les fichiers ont *.GIF comme extension ?
et ouais, c specific a linux, et a kde aussi...
je dirais que refaire ce script avec un plugin amsn se resumerais a environ 5 lignes de plus que ce que j'ai ecrit plus haut.. tu dois juste faire un
Code:
set smileys_to_add [glob [file join [dir_chooser] *.*]
et ca fera l'affaire... le reste, c la declaration de tes fonctions... et l'enregistrement de ton plugin sur le systeme...
peut-etre quelqu'un d'autre peut le faire si tu pense pas en etre capable...
Logged

KaKaRoTo
snipe2004
Super Power User
**
Offline Offline

Posts: 827


View Profile
« Reply #6 on: April 27, 2006, 02:52:33 pm »

Bon je viens de tester ton script, il n'a pas marché  Sad
J'ai créé un fichier texte, copier-coller que que tu as posté, rendu le tout exécutable, lancé le fichier, je lui ai indiqué mon rep SmileyZ, puis mon dossier /home/usr/.amsn/snipe2004_hotmail.com puis j'ai validé à 75x75. Puis il ne m'a plus rien dit, dc j'ai relancé aMSN et ça ne marche pas.
J'ai été voir, les smileys ont été copiés ds ~/smileys, ms le fichier config.xml n'a pas été édité...
Comme j'y connais keud en programmation, je peux pas te dire s'il ya une erreur ou si c'est moi qui ai fait une fausse manip', mais bon voilà Tongue

PS: je sais pas si c'est laid ou pas, ms l'important c'est que ça marche.. mm si ca marche pas mdrrrr
PPS: J'ai bien aimé ton interface graphique Wink
Logged

Voyager 11.10
snipe2004
Super Power User
**
Offline Offline

Posts: 827


View Profile
« Reply #7 on: April 27, 2006, 03:06:22 pm »

Je viens de le relancer à partir d'une console, et là tout a bien marché...
Smileyz copiés, config.xml édité...
Ms ds aMSN, rien :s
Tj mes vieux smileyz, et pas une trace des nvx...
Pourtant, j'ai bien relancé, j'ai bien choisi le bon compte  :lol: , j'ai même relancé deux autres fois pr être sûr, ca n'affiche pas...

[EDIT]
Alors là, je suis sur le cul... je vais revérifier le config.xml pr voir si je ne trouve pas une erreur, et BAM les nvx smileys n'y sont de nv plus  :shock:  :shock:  :shock:  :shock:  :shock:  :shock:  Je comprends plus rien moi... c'est possible que aMSN recrée un nv config.xml ou qq chose ds le genre?
Pcq si c'est pas ça, je deviens fou...
[/EDIT]

[RE-EDIT]
Bon,bon,bon... j'ai relancé le script à partir de la console pr voir ce que ca fesait cette fois-ci, et ben config.xml n'est plus upgradé!! Je ne comprends plus rien moi Sad Voilà ce qu'il me mets ds la console si ca peut t'aider:
Code:

[famille@localhost aMSN]$ ./Smileys
/home/famille/Documents/Arnault/SmileyZ/BeFlag2.gif
/home/famille/Documents/Arnault/SmileyZ/BeFlag.gif
/home/famille/Documents/Arnault/SmileyZ/BigShit.gif
/home/famille/Documents/Arnault/SmileyZ/blll.gif
/home/famille/Documents/Arnault/SmileyZ/bouledecristal.gif
/home/famille/Documents/Arnault/SmileyZ/Cavapasbien.gif
/home/famille/Documents/Arnault/SmileyZ/Chirurgien.gif
/home/famille/Documents/Arnault/SmileyZ/feelsad.gif
/home/famille/Documents/Arnault/SmileyZ/FuckUCensored.gif
/home/famille/Documents/Arnault/SmileyZ/$$.gif
/home/famille/Documents/Arnault/SmileyZ/hypnotiszeur.gif
/home/famille/Documents/Arnault/SmileyZ/jtevois.gif
/home/famille/Documents/Arnault/SmileyZ/Lol.gif
/home/famille/Documents/Arnault/SmileyZ/moncul.gif
/home/famille/Documents/Arnault/SmileyZ/Nickel.gif
/home/famille/Documents/Arnault/SmileyZ/nimportequoi.gif
/home/famille/Documents/Arnault/SmileyZ/ohh.gif
/home/famille/Documents/Arnault/SmileyZ/ohmondieu.gif
/home/famille/Documents/Arnault/SmileyZ/Pizz.gif
/home/famille/Documents/Arnault/SmileyZ/RayonsX.gif
/home/famille/Documents/Arnault/SmileyZ/sad.gif
/home/famille/Documents/Arnault/SmileyZ/someoneuphere.gif
/home/famille/Documents/Arnault/SmileyZ/tais-toi.gif
/home/famille/Documents/Arnault/SmileyZ/tureves.gif
/home/famille/Documents/Arnault/SmileyZ/TurningGlobe.gif
/home/famille/Documents/Arnault/SmileyZ/tvamourir.gif
/home/famille/Documents/Arnault/SmileyZ/ventilo.gif
/home/famille/Documents/Arnault/SmileyZ/Woreship.gif
/home/famille/Documents/Arnault/SmileyZ/Xibi.gif
/home/famille/Documents/Arnault/SmileyZ/zikman.gif
/home/famille/Documents/Arnault/SmileyZ/zzzzz.gif
/home/famille/Documents/Arnault/SmileyZ/mdrrr.png
/home/famille/Documents/Arnault/SmileyZ/noooon.png
/home/famille/Documents/Arnault/SmileyZ/pourkwah.png
/home/famille/Documents/Arnault/SmileyZ/tofo.png
/home/famille/Documents/Arnault/SmileyZ/yeaheah.png
config.xml
[famille@localhost aMSN]$  
Logged

Voyager 11.10
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #8 on: April 27, 2006, 11:49:05 pm »

snipe, le config.xml est reecrit par amsn, donc tu dois etre sur que amsn est completement ferme avant de lancer le script...
Logged

KaKaRoTo
snipe2004
Super Power User
**
Offline Offline

Posts: 827


View Profile
« Reply #9 on: April 28, 2006, 04:53:44 pm »

Putain!!! j'suis con!!!  :shock:  :shock:
Evidemment, il marche nickel!!
Sorry d'avoir dit une connerie mdrrrr
Logged

Voyager 11.10
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #10 on: April 28, 2006, 08:19:23 pm »

lol
Logged

KaKaRoTo
perso258741
Newbie

Offline Offline

Posts: 14


View Profile
« Reply #11 on: April 28, 2006, 09:14:57 pm »

lol ravi qu'il ai servi au moins à quelqu'un.
Kakaroto désolé mais je n'ai pas beaucoup de temps désormais, fin des vacances scolaires et du boulot pas terminé... allé hop c'est reparti. ET les prochaines vacances ne sont pas près d'arriver, les week-end sont courts, bref je vais pas davantage raconter ma vie  :oops: : je ne pense pas avoir vraiment le temps de m'occuper du plugin. Je n'ai jamais fait de tcl et même si tu as déja du me donner beaucoup d'indications pour le faire, le temps que je regarde comment ça fonctionne j'en ai encore pour une 30aine d'heures (vu que j'en ai pris une 10aine pour réussir celui là : je suis pas rapide mais j'apprends en meme temps). Merci encore pour ces conseils et désolés pour ceux qui ne pourront pas utiliser ce script tant que personne d'autre ne fait le plugin. Peut-être que je m'y mettrai quand meme mais je ne promet rien. Bonne continuation à tous ceux qui travaillent pour aMSN, un client MSN génial !!!  :wink:
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!