Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MIRSMAIL CLIENT MIRC POUR LE CHAT DE SMAIL (WWW.SMAIL.FR)


Information sur la source

Catégorie :Réseau & Internet Classé sous : smail, client, chat, tchat, mirc Niveau : Débutant Date de création : 22/01/2007 Date de mise à jour : 06/02/2007 18:29:05 Vu : 9 863

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Ce script sert à se connecter au chat de smail (www.smail.fr)
 

Source

  • ; ## MIRSmail by pppaaahhh
  • ; ## Merci d'utiliser le script :)))
  • ; ## Ce script est un client pour le chat de www.smail.fr
  • ; ## ouverture du socket html avec smail
  • alias mirsmail {
  • sockopen mirsmail www.smail.fr 80
  • echo -s Etape 1/5 : Connexion à www.smail.fr en cours .....
  • window -c @MIRSmail!
  • sockclose mirsmaila
  • set %nopv 0
  • set %pseudo.ignore
  • set %ffoistid 0
  • set %ffoismirsmail 1
  • set %tofo 0
  • set %nopv.contact2 1
  • set %nopv.contact
  • set %pseudo.crypt
  • if ($hget(MIRSmail) == $null) { hmake MIRSmail 10 }
  • }
  • on *:sockopen:mirsmail:{ if (%ffoismirsmail == 1) { mirsmail81 } | else { mirsmail83 } }
  • ; ## on récupère le cookie de connexion
  • alias mirsmail81 {
  • set %ffoismirsmail 0
  • sockwrite mirsmail GET / HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* $+ $crlf $+ Referer: http://www.google.fr/search?sourceid=navclient&hl=fr&ie=UTF-8&rls=GGLD,GGLD:2006-23,GGLD:fr&q=smail $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ $crlf
  • echo -s Etape 2/5 : Extraction du cookie ........
  • }
  • ; ## la on s'authentifie avec le login et le mot de passe
  • alias mirsmail82 {
  • var %DATA1 SMAILID= $+ %smailid1 $+ &sid=null&authlogin= $+ %llogin $+ &authpassword= $+ %mmot.de.passe $+ &auth=Se+connecter
  • sockwrite mirsmail POST /index.php HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* $+ $crlf $+ Referer: http://www.smail.fr/ $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Content-Type: application/x-www-form-urlencoded $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Content-Length: $len(%DATA1) $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ ; __utma=115165701.837772398.1156347535.1156347535.1156347535.1; __utmb=115165701; __utmc=115165701; __utmz=115165701.1156347535.1.1.utmccn=(organic)|utmcsr=google|utmctr=smail|utmcmd=organic $+ $crlf $+ $crlf $+ %DATA1
  • echo -s Etape 3/5 : Authentification ................
  • }
  • ; ## recupération des alias
  • alias mirsmail84 {
  • sockwrite mirsmail GET /rencontres/dial.php HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* $+ $crlf $+ Referer: http://www.smail.fr/rencontres/dial.php $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ $crlf $+ $crlf
  • }
  • ; ## récupération du TempID
  • alias mirsmail83 {
  • var %DATAa pseudo= $+ %mirsmailpseudo $+ &age= $+ %agee $+ &sexe= $+ %ssexe $+ &ville= $+ %vville $+ &photos= $+ %fotox $+ &salon=&mychan=&submit=Chatter
  • sockwrite mirsmail POST /rencontres/dial.php HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* $+ $crlf $+ Referer: http://www.smail.fr/rencontres/dial.php $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Content-Type: application/x-www-form-urlencoded $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Content-Length: $len(%DATAa) $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ $crlf $+ $crlf $+ %DATAa
  • .timer45 1 20 vverif
  • }
  • ; ## connexion au chat, ouverture du deuxième socket ;)
  • alias mirsmaila {
  • echo -s Etape 5/5 : Connexion au chat smail réussie .
  • sockopen mirsmaila 213.251.132.103 9988
  • }
  • ; ## lecture sur le socket mirsmail
  • on *:sockread:mirsmail:{
  • var %smail81
  • sockread %smail81
  • if (Set-Cookie isin %smail81) { set %smailid1 $gettok($gettok(%smail81,2,61),1,59) | mirsmail82 }
  • elseif (tid isin %smail81) && (%ffoistid == 0) { set %ffoistid 1 }
  • elseif (tid isin %smail81) && (%ffoistid == 1) { set %tid1 $gettok($gettok(%smail81,4,61),1,34) | mirsmaila }
  • elseif (SELECT NAME="pseudo" isin %smail81) {
  • echo 4 -s Entrer le pseudo que vous voulez sur le chat, l'age, le sexe, la ville et le salon à rejoindre ^^
  • did -e MIRSmail 3 | did -e MIRSmail 6 | did -e MIRSmail 13 | did -e MIRSmail 16 | did -e mirsmail 21
  • did -e MIRSmail 5 | did -e MIRSmail 4 | did -e MIRSmail 8 | did -e MIRSmail 19
  • did -b MIRSmail 1 | did -b MIRSmail 2 | did -b MIRSmail 17 | did -b MIRSmail 18 | did -b MIRSmail 23
  • if (OPTION value= isin $gettok(%smail81,5,34)) { /did -a MIRSmail 3 $gettok(%smail81,6,34) }
  • if (OPTION value= isin $gettok(%smail81,7,34)) { /did -a MIRSmail 3 $gettok(%smail81,8,34) }
  • if (OPTION value= isin $gettok(%smail81,9,34)) { /did -a MIRSmail 3 $gettok(%smail81,10,34) }
  • if (OPTION value= isin $gettok(%smail81,11,34)) { /did -a MIRSmail 3 $gettok(%smail81,12,34) }
  • if (OPTION value= isin $gettok(%smail81,13,34)) { /did -a MIRSmail 3 $gettok(%smail81,14,34) }
  • if (OPTION value= isin $gettok(%smail81,15,34)) { /did -a MIRSmail 3 $gettok(%smail81,16,34) }
  • }
  • elseif (Mauvais login ou mot de passe isin %smail81) { echo 4 -s Mauvais login ou mot de passe | sockclose mirsmail | hfree MIRSmail | mirsmail.unset }
  • elseif (Votre compte est ferm isin %smail81) { echo 4 -s Votre compte est fermé :( | sockclose mirsmail | hfree MIRSmail | mirsmail.unset }
  • elseif (Editer mes informations isin %smail81) { /mirsmail84 }
  • elseif (select name="photos" isin %smail81) || (%tofo == 1) {
  • set %tofo 1
  • if (option value="-1" isin %smail81) { set %tofo 0 | /did -a MIRSmail 21 Aucune }
  • elseif (option value=" isin %smail81) { /did -a MIRSmail 21 $gettok(%smail81,2,34) }
  • }
  • }
  • ; ## evenement à l'ouverture du deuxième socket mirsmaila, socket pour le chat
  • on *:sockopen:mirsmaila:{
  • sockwrite mirsmaila 1 $+ $chr(09) $+ %tid1
  • /window -ael12S @MIRSmail!
  • /titlebar @MIRSmail! le client smail pour mirc
  • }
  • ; ## lecture sur le socket du chat ;)
  • on *:sockread:mirsmaila:{
  • if ($sockerr > 0) return
  • :nextread
  • sockread 800 &aa
  • if ($sockbr == 0) return
  • hadd -b MIRSmail item &aa
  • set %varrr $hget(MIRSmail,item)
  • ssockread
  • goto nextread
  • }
  • ; ## alias qui traite ce qui vient du serveur
  • alias ssockread {
  • if ($gettok(%varrr,1,09) == 10) {
  • ; ## message sur le salon
  • set %varrr $gettok(%varrr,1,13)
  • tokenize 09 %varrr
  • var %pseudo.sexe $gettok($line(@MIRSmail!,$fline(@MIRSmail!,$2 $+ *,1,1),1),2,44)
  • if ($fline(@MIRSmail!,$2 $+ *,1,1) != $null) && ($findtok(%pseudo.ignore,$2,1,09) == $null) {
  • if (%message.crypt == $null) {
  • if (%mirsmailpseudo !isin $4) {
  • if (%pseudo.sexe != $null) { echo $replace(%pseudo.sexe,H,12,F,13,X,3,B,4,A,1) @MIRSmail! $2 $+ > $4 }
  • else { echo 3 @MIRSmail! $2 $+ > $4 }
  • if (HNZROXIBKG isin $4) && ($findtok(%pseudo.crypt,$2,1,09) == $null) { echo 4 @MIRSmail! $2 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne | set %pseudo.crypt $addtok(%pseudo.crypt,$2,09) | echo 4 -s $2 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne }
  • }
  • else { echo 7 @MIRSmail! $2 $+ > $4 }
  • }
  • else { echo $replace(%pseudo.sexe,H,12,F,13,X,3,B,4,A,1) @MIRSmail! $2 $+ > $replacecs($4,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) | if (HNZROXIBKG isin $4) && ($2 != %mirsmailpseudo) && ($findtok(%pseudo.crypt,$2,1,09) == $null) { echo 4 @MIRSmail! $2 est utilisateur de mirsmail et a activé le cryptage, activez le pour discuter avec lui | set %pseudo.crypt $addtok(%pseudo.crypt,$2,09) | echo 4 -s $2 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne } }
  • }
  • elseif ($fline(@MIRSmail!,$2 $+ *,1,1) == $null) && ($findtok(%pseudo.ignore,$2,1,09) == $null) { if (%mirsmailpseudo !isin $4) { echo 3 @MIRSmail! $2 $+ > $4 | aline -lc3 @MIRSmail! $2 } | else { echo 7 @MIRSmail! $2 $+ > $4 | aline -lc3 @MIRSmail! $2 } }
  • else { }
  • }
  • elseif ($gettok(%varrr,1,09) == 5) && ($gettok(%varrr,2,09) == 1) {
  • ; ## un utilisateur rejoint le salon
  • tokenize 09 %varrr
  • if (%in.out == $null) { aline $+(-lc,$replace($5,H,12,F,13,X,3,A,1,B,4)) @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) }
  • else { aline $+(-lc,$replace($5,H,12,F,13,X,3,A,1,B,4)) @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) | echo 14 @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) a rejoint le salon }
  • }
  • ; ## un utilisateur a quitté le salon
  • elseif ($gettok(%varrr,1,09) == 6) {
  • set %varrr $gettok(%varrr,1,13 10)
  • tokenize 09 %varrr
  • if (%in.out == $null) {
  • if ($fline(@MIRSmail!,$2 $+ *,1,1) != $null) { dline -l @MIRSmail! $fline(@MIRSmail!,$2 $+ *,1,1) }
  • }
  • else { if ($fline(@MIRSmail!,$2 $+ *,1,1) != $null) { dline -l @MIRSmail! $fline(@MIRSmail!,$2 $+ *,1,1) | echo 14 @MIRSmail! $2 a quitté le salon } | else { echo 14 @MIRSmail! $2 a quitté le salon } }
  • }
  • elseif ($gettok(%varrr,1,09) == 5) && ($gettok(%varrr,2,09) == 0) {
  • ; ## message de bienvenue sur le salon
  • set %varrr $gettok(%varrr,1,13 10)
  • tokenize 09 %varrr
  • if (%force.join2 == 1) {
  • echo 4 @MIRSmail! $str(_,66)
  • echo 4 @MIRSmail! VOUS ÊTES SUR LE SALON $3
  • echo 4 @MIRSmail! $str(_,66)
  • if ($3 != %force.join) { } | else { .timer7845 1 5 timer89741 off | unset %force.join , %force.join2 }
  • }
  • else {
  • echo 4 @MIRSmail! $str(_,66)
  • echo 4 @MIRSmail! VOUS ÊTES SUR LE SALON $3
  • echo 4 @MIRSmail! $str(_,66)
  • }
  • }
  • ; ## messages privés :)
  • elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 0) { if (%message.crypt == $null) { set %varrr $gettok(%varrr,1,13 10) | tokenize 09 %varrr | echo $replace(%ssexe,H,12,F,13,X,3,B,4,A,1) $active %mirsmailpseudo $+ > $5 } | else { set %varrr $gettok(%varrr,1,13 10) | tokenize 09 %varrr | echo $replace(%ssexe,H,12,F,13,X,3,B,4,A,1) $active %mirsmailpseudo $+ > $replacecs($5,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) } }
  • elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 1) && ($findtok(%pseudo.ignore,$gettok(%varrr,3,09),1,09) == $null) && (%nopv == 1) {
  • if (%nopv.contact2 == 1) {
  • if ($findtok(%nopv.contact,$gettok(%varrr,3,09),1,09) == $null) {
  • sockwrite mirsmaila 16 $+ $chr(09) $+ $gettok(%varrr,3,09),1,09)
  • }
  • else {
  • if ($line(@ $+ $gettok(%varrr,3,09) $+ !_!privé,0,0) == $null) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok(%varrr,3,09) }
  • set %varrr $gettok(%varrr,1,13 10)
  • tokenize 09 %varrr
  • window -ekf @ $+ $3 $+ !_!privé 10 1 673 400
  • if (%message.crypt == $null) { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $8 }
  • else { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $replacecs($8,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) }
  • if (HNZROXIBKG isin $8) && ($findtok(%pseudo.crypt,$3,1,09) == $null) { echo 4 @ $+ $3 $+ !_!privé $3 est utilisateur de mirsmail et a activé le cryptage, activez le pour discuter avec lui | set %pseudo.crypt $addtok(%pseudo.crypt,$3,09) | echo 4 -s $3 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne }
  • }
  • }
  • }
  • elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 1) && ($findtok(%pseudo.ignore,$gettok(%varrr,3,09),1,09) == $null) && (%nopv == 0) {
  • if ($line(@ $+ $gettok(%varrr,3,09) $+ !_!privé,0,0) == $null) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok(%varrr,3,09) }
  • set %varrr $gettok(%varrr,1,13 10)
  • tokenize 09 %varrr
  • window -ekf @ $+ $3 $+ !_!privé 10 1 673 400
  • if (%message.crypt == $null) { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $8 } | else { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $replacecs($8,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) }
  • if (HNZROXIBKG isin $8) && ($findtok(%pseudo.crypt,$3,1,09) == $null) { echo 4 @ $+ $3 $+ !_!privé $3 est utilisateur de mirsmail et a activé le cryptage, activez le pour discuter avec lui | set %pseudo.crypt $addtok(%pseudo.crypt,$3,09) | echo 4 -s $3 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne }
  • }
  • elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 1) && ($findtok(%pseudo.ignore,$gettok(%varrr,3,09),1,09) != $null) { }
  • ; ## .... autres commandes ....(jv pas tout lister non plus :s !!)
  • elseif ($gettok(%varrr,1,09) == 101) { set %varrr $gettok(%varrr,1,13 10) | if ($window(@ $+ $gettok(%varrr,2,09) $+ !_!privé)) { echo 11 @ $+ $gettok(%varrr,2,09) $+ !_!privé $gettok(%varrr,2,09) n'est plus connecté(e) } | if ($fline(@MIRSmail!,$gettok(%varrr,2,09) $+ *,1,1) != $null) { dline -l @MIRSmail! $fline(@MIRSmail!,$gettok(%varrr,2,09) $+ *,1,1) } | if (%jkl2 == 1) { inc %jkl 1 | photox } | elseif (%jkl22 == 1) { inc %jkl 1 | photox2 } }
  • elseif ($gettok(%varrr,1,09) == 16) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @ $+ $gettok(%varrr,2,09) $+ !_!privé $gettok(%varrr,2,09) n'accepte plus les messages privés }
  • elseif ($gettok(%varrr,1,09) == 21) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @ $+ $gettok(%varrr,2,09) $+ !_!privé $gettok(%varrr,2,09) est absent, message: $gettok(%varrr,3,09) }
  • ; ## message de bienvenue + getion des contacts
  • elseif ($gettok(%varrr,1,09) == 2) && ($gettok(%varrr,2,09) == 1) { var %varrr2 $gettok(%varrr,2,10) | set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous êtes connecté(e) en tant que $gettok(%varrr,3,09) ( $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ , $+ $gettok(%varrr,6,09) $+ ) | echo 4 @MIRSmail! Statut : $str(_,66) | .timer654 1 2 mirsmailjoin %mirsmailsalon
  • if (%varrr2 != $null) {
  • var %varrr2 $gettok(%varrr2,1,13)
  • window -sSl12 @!_!contacts
  • var %toka $numtok(%varrr2,09)
  • var %tokaa 2
  • while (%tokaa <= %toka) {
  • aline $replace($gettok(%varrr2,$calc(%tokaa + 2),09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $gettok(%varrr2,$calc(%tokaa + 5),09) $+ ( $+ $gettok(%varrr2,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr2,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr2,$calc(%tokaa + 3),09) $+ ) connecté(e) en tant que $gettok(%varrr2,%tokaa,09) est dans le salon $gettok(%varrr2,$calc(%tokaa + 4),09)
  • aline $replace($gettok(%varrr2,$calc(%tokaa + 2),09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @!_!contacts $gettok(%varrr2,%tokaa,09)
  • set %nopv.contact $addtok(%nopv.contact,$gettok(%varrr2,%tokaa,09),09)
  • inc %tokaa 7
  • }
  • }
  • }
  • ; ## gestion des contacts
  • ; ## un contact se connecte ou n'est plus absent
  • elseif ($gettok(%varrr,1,09) == 75) && (0 isin $gettok(%varrr,8,09)) {
  • set %varrr $gettok(%varrr,1,13 10)
  • set %nopv.contact $addtok(%nopv.contact,$gettok(%varrr,2,09),09)
  • if ($fline(@!_!contacts,$gettok(%varrr,2,09),1,1) == $null) {
  • window -sSl12 @!_!contacts
  • aline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , pas absent
  • aline $replace($gettok(%varrr,4,09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @!_!contacts $gettok(%varrr,2,09)
  • }
  • else { rline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $fline(@!_!contacts,* $+ en tant que $gettok(%varrr,2,09) est dans le salon $+ *,1,0) $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , pas absent }
  • }
  • ; ##un contact est absent
  • elseif ($gettok(%varrr,1,09) == 75) && (1 isin $gettok(%varrr,8,09)) {
  • set %varrr $gettok(%varrr,1,13 10)
  • if ($fline(@!_!contacts,$gettok(%varrr,2,09),1,1) != $null) {
  • rline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $fline(@!_!contacts,* $+ en tant que $gettok(%varrr,2,09) est dans le salon $+ *,1,0) $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , absent
  • }
  • else {
  • window -sSl12 @!_!contacts
  • aline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , absent
  • aline $replace($gettok(%varrr,4,09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @!_!contacts $gettok(%varrr,2,09)
  • }
  • }
  • ; ## un contact est parti
  • elseif ($gettok(%varrr,1,09) == 76) { set %varrr $gettok(%varrr,1,13 10) | if ($fline(@!_!contacts,$gettok(%varrr,2,09),1,1) != $null) { dline @!_!contacts $fline(@!_!contacts,* $+ en tant que $gettok(%varrr,2,09) est dans le salon $+ *,1,0) | dline -l @!_!contacts $fline(@!_!contacts,$gettok(%varrr,2,09),1,1) } | else { echo 4 -s Un de vos contacts, $gettok(%varrr,2,09) s'est déconnecté(e) } }
  • elseif ($gettok(%varrr,1,09) == 20) && (1 isin $gettok(%varrr,3,09)) { echo 4 @MIRSmail! $gettok(%varrr,2,09) s'est absenté(e) }
  • elseif ($gettok(%varrr,1,09) == 20) && (0 isin $gettok(%varrr,3,09)) { echo 4 @MIRSmail! $gettok(%varrr,2,09) n'est plus absent(e) }
  • elseif ($gettok(%varrr,1,09) == 1) { set %varrr $gettok(%varrr,1,13 10) | echo @MIRSmail! $gettok(%varrr,2,09) | echo 4 @MIRSmail! MIRSmail client pour smail }
  • elseif ($gettok(%varrr,1,09) == 14) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: $gettok(%varrr,2,09) a été éjecté(e) par $gettok(%varrr,3,09) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 -s Statut: $gettok(%varrr,2,09) a été éjecté(e) par $gettok(%varrr,3,09) }
  • elseif ($gettok(%varrr,1,09) == 2) && ($gettok(%varrr,2,09) == 2) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous êtes banni(e) du chat pour une durée de $gettok(%varrr,3,09) secondes | echo 4 @MIRSmail! Statut : $str(_,66) }
  • elseif ($gettok(%varrr,1,09) == 2) && ($gettok(%varrr,2,09) == 2 $+ $chr(13) $+ $chr(10)) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous êtes banni(e) du chat | echo 4 @MIRSmail! Statut : $str(_,66) }
  • elseif ($gettok(%varrr,1,09) == 9) && ($gettok(%varrr,2,09) == 1) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous avez été ignoré(e) par $gettok(%varrr,3,09) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 -s Statut: Vous avez été ignoré(e) par $gettok(%varrr,3,09) }
  • elseif ($gettok(%varrr,1,09) == 9) && ($gettok(%varrr,2,09) == 0) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous avez ignoré $gettok(%varrr,3,09) | echo 4 @MIRSmail! Statut : $str(_,66) }
  • elseif ($gettok(%varrr,1,09) == 3) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: $gettok(%varrr,2,09) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 -s Statut: $gettok(%varrr,2,09) }
  • elseif ($gettok(%varrr,1,09) == 50) { sockwrite mirsmaila 50 $+ $chr(09) $+ PONG }
  • elseif ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 0) { echo 4 @MIRSmail! START LISTING }
  • elseif ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 2) { echo 4 @MIRSmail! END LISTING }
  • elseif ($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 0) { echo 4 @MIRSmail! START LISTING }
  • elseif ($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 2) { echo 4 @MIRSmail! END LISTING }
  • ; ## PING !
  • elseif ($gettok(%varrr,1,09) == 50) { sockwrite mirsmaila 50 $+ $chr(09) $+ PONG }
  • elseif ($gettok(%varrr,1,09) == 7) || (%uuutilisateur == 1) {
  • ; ## listes des connectés sur le salon
  • set %uuutilisateur 1
  • if (%uuutilisateur == 1) {
  • .timer65 -h 1 2000 set %uuutilisateur 0
  • var %toka $numtok(%varrr,09)
  • if (10 $+ $chr(09) isin %varrr) { set %varrr $gettok(%varrr,1,13 10) }
  • if ($gettok(%varrr,1,09) == 7) { var %tokaa 2 }
  • else { if ($findtok(%varrr,F,1,09) > $findtok(%varrr,H,1,09)) { var %tokaa $calc($findtok(%varrr,H,1,09) + 3) } | else { var %tokaa $calc($findtok(%varrr,F,1,09) + 3) } }
  • while (%tokaa <= %toka) {
  • if ($istok(H.F.X.B.A,$gettok(%varrr,$calc(%tokaa + 2),09),46)) { aline $replace($gettok(%varrr,$calc(%tokaa + 2),09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @MIRSmail! $gettok(%varrr,%tokaa,09) $+ ( $+ $gettok(%varrr,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 3),09) $+ ) }
  • var %tokaa $calc(%tokaa + 5)
  • }
  • .timer698 1 7 echo 4 @MIRSmail! il y a $line(@MIRSmail!,0,1) connectés sur le salon
  • }
  • }
  • elseif (($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 1)) || (%uutilisateur == 1) {
  • ; ## recherche d'utilisateurs
  • window -asSl12 @recherche.pseudo
  • set %uutilisateur 1
  • if (%uutilisateur == 1) {
  • .timer65 -h 1 1000 set %uutilisateur 0
  • var %toka $numtok(%varrr,09)
  • set %varrr $replace(%varrr,$chr(32),$chr(160))
  • if ($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 1) { var %tokaa 3 }
  • else { if ($findtok(%varrr,F,1,09) > $findtok(%varrr,H,1,09)) { var %tokaa $calc($findtok(%varrr,H,1,09) + 4) } | else { var %tokaa $calc($findtok(%varrr,F,1,09) + 4) } }
  • while (%tokaa < %toka) {
  • if ($istok(H.F.X.B.A,$gettok(%varrr,$calc(%tokaa + 2),09),46)) { aline $replace($gettok(%varrr,$calc(%tokaa + 2),09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @recherche.pseudo $gettok(%varrr,%tokaa,09) ( $+ $gettok(%varrr,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 3),09) $+ ) dans le salon : $+ $gettok(%varrr,$calc(%tokaa + 4),09) | aline -l $+ $replace($gettok(%varrr,$calc(%tokaa + 2),09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @recherche.pseudo $gettok(%varrr,%tokaa,09) }
  • var %tokaa $calc(%tokaa + 6)
  • }
  • }
  • }
  • ; ## liste des salons officiels
  • elseif (($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) && ($findtok(%varrr,Bourgogne,1,09) != $null)) || (%ssalon == 1) {
  • window -asSl12 @Salons.officiels
  • set %ssalon 1
  • if (%ssalon == 1) {
  • .timer65 -h 1 2000 set %ssalon 0
  • var %toka $numtok(%varrr,09)
  • if ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) { var %tokaa 3 }
  • else { var %tokaa $calc($findtok(%varrr,0,1,09) + 2) }
  • while (%tokaa <= %toka) {
  • aline -c2 @Salons.officiels $gettok(%varrr,%tokaa,09) $gettok(%varrr,$calc(%tokaa + 2),09) connecté(s)
  • aline -lc2 @Salons.officiels $gettok(%varrr,%tokaa,09)
  • var %tokaa $calc(%tokaa + 4)
  • }
  • }
  • }
  • ; ## liste des autres salons
  • elseif (($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) && ($findtok(%varrr,Bourgogne,1,09) == $null)) || (%sssalon == 1) {
  • window -asSl12 @Autres.salons
  • set %sssalon 1
  • if (%sssalon == 1) {
  • .timer65 -h 1 2000 set %sssalon 0
  • var %toka $numtok(%varrr,09)
  • set %varrr $replace(%varrr,$chr(32),$chr(160))
  • if ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) { var %tokaa 3 }
  • else { var %tokaa $calc($findtok(%varrr,0,1,09) + 1) }
  • while (%tokaa <= %toka) {
  • aline -c2 @Autres.salons $gettok($replace(%varrr,$chr(32),$chr(160)),%tokaa,09) Crée par $gettok(%varrr,$calc(%tokaa + 1),09) $gettok(%varrr,$calc(%tokaa + 2),09) connecté(s)
  • aline -lc2 @Autres.salons $gettok($replace(%varrr,$chr(32),$chr(160)),%tokaa,09)
  • var %tokaa $calc(%tokaa + 4)
  • }
  • }
  • }
  • ; ## l'utilisateur a une photo
  • elseif ($gettok(%varrr,1,09) == 17) && ($gettok(%varrr,3,09) != -1) {
  • set %photopseudo @ $+ $gettok(%varrr,2,09) $+ !_! $+ PHOTO
  • set %pphoto $gettok(%varrr,3,09) $+ .jpg
  • window -pf %photopseudo 710 1 200 200
  • if ($sock(mirsmailphoto) == $null) { sockopen mirsmailphoto www.smail.fr 80 }
  • else { sockclose mirsmailphoto | sockopen mirsmailphoto www.smail.fr 80 }
  • }
  • ; ## l'utilisateur n'a pas de photo
  • elseif ($gettok(%varrr,1,09) == 17) && ($gettok(%varrr,3,09) == -1) { if (%jkl2 == 1) { inc %jkl 1 | photox } | elseif (%jkl22 == 1) { inc %jkl 1 | photox2 } }
  • ; ## si commande inconnue, cette commande est redirigée sur la fenetre de status
  • else { echo -s %varrr }
  • }
  • ; ## socket pour obtenir les photos
  • on *:sockopen:mirsmailphoto:{
  • sockwrite mirsmailphoto GET /photos/ $+ %pphoto HTTP/1.1 $+ $crlf $+ Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ $crlf $+ $crlf
  • }
  • ; ## lecture sur le socket photo
  • on *:sockread:mirsmailphoto:{
  • if ($sockerr > 0) return
  • :nextphoto
  • sockread 800 &photo
  • if ($sockbr == 0) return
  • hadd -b MIRSmail photo &photo
  • pphoto
  • goto nextphoto
  • }
  • ; ## socket pour parler anglais ou autre langue
  • on *:sockopen:mirsmail.english:{
  • var %DATA.ENGLISH systran_id=Voila-fr&systran_charset=UTF-8&systran_lp= $+ %mirsmail.langue $+ &systran_text= $+ :021345: %eenglish
  • sockwrite mirsmail.english POST /voila HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* $+ $crlf $+ Referer: http://trans.voila.fr/voila $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Content-Type: application/x-www-form-urlencoded $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: trans.voila.fr $+ $crlf $+ Content-Length: $len(%DATA.ENGLISH) $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ $crlf $+ %DATA.ENGLISH
  • }
  • ; ## lecture sur le socket english
  • on *:sockread:mirsmail.english:{
  • var %englishhh
  • sockread -f %englishhh
  • if (:021345: isin %englishhh) && (%nbv2 == 1) { write fg %englishhh | set %nbv 1 | set %nbv2 }
  • elseif (%nbv == 1) { write fg %englishhh | .timer21 -h 1 50 mirsmail.langua }
  • }
  • ; ## differents evenements
  • on *:ACTIVE:*: { set %mirsmailactive $active | set %mirsmailactive2 $gettok($gettok(%mirsmailactive,1,64),1,33) }
  • on *:sockclose:mirsmaila: { echo @MIRSmail! déconnecté :( | echo 4 -s déconnecté :( | hfree MIRSmail | mirsmail.unset }
  • on *:INPUT:@MIRSmail!:{ if (%message.crypt == $null) { if (%mirsmail.english == $null) { if (%verlanxx == $null) { /message.salon $1- } | else { /message.verlanx $1- } } | else { /mirsmail.english $1- } } | else { /message.salon.crypt $1- } }
  • on *:INPUT:@*!_!privé:{ if (%message.crypt == $null) { if (%mirsmail.english == $null) { if (%verlanxx == $null) { if (%mirsmailactive != @MIRSmail!) && ($sock(mirsmaila) != $null) { /mirsmailpv $1- } | else { halt } } | else { /message.verlanx $1- } } | else { /mirsmail.english $1- } } | else { /mirsmailpv.crypt $1- } }
  • on *:CLOSE:@MIRSmail!:{ sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
  • ; ## les alias
  • alias mirsmailjoin {
  • set %mirsmailsalon $1-
  • if ($chr(160) !isin $1-) { dline -l @MIRSmail! 1- $+ $line(@MIRSmail!,0,1) | sockwrite mirsmaila 5 $+ $chr(09) $+ $1- | sockwrite mirsmaila 7 $+ $chr(09) $+ $1- }
  • else { hadd MIRSmail espace 5 $+ $chr(09) $+ $1- | hadd MIRSmail espace2 7 $+ $chr(09) $+ $1- | bset -t &as 1 1 | bset -t &as2 1 1 | $hget($null,$null,$hget(MIRSmail, espace, &as)) | $hget($null,$null,$hget(MIRSmail, espace2, &as2)) | breplace &as 160 32 | breplace &as2 160 32 | dline -l @MIRSmail! 1- $+ $line(@MIRSmail!,0,1) | sockwrite mirsmaila &as | sockwrite mirsmaila &as2 }
  • }
  • alias mirsmailpv { if ($mid($1-,1,1) != /) { sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ $1- } | else { } }
  • alias message.salon { if ($mid($1-,1,1) != /) { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ $1- } | else { } }
  • alias mirsmail.langua {
  • var %lkj 1
  • while (<br /> !isin $read(fg,%lkj)) {
  • if (%lkj == 1) { set %eenglish2 $replacecs($mid($gettok($read(fg,%lkj),1,09),10,$len($gettok($read(fg,%lkj),1,09))), $+ $chr(195) $+ $chr(173)­,ì,$chr(195) $+ $chr(169),é,$chr(195) $+ $chr(168),è,$chr(195) $+ $chr(160),à,$chr(195) $+ $chr(167),ç,$chr(195) $+ $chr(162),â,$chr(195) $+ $chr(170),ê,$chr(195) $+ $chr(164),ä,$chr(195) $+ $chr(171),ë,$chr(195) $+ $chr(177),ñ,$chr(195) $+ $chr(178),ò,$chr(195) $+ $chr(179), $+ $chr(243) $+ ,$chr(195) $+ $chr(188),ü,$chr(195) $+ $chr(161),a,$chr(194) $+ $chr(191), $+ $chr(191) $+ ,$chr(194) $+ $chr(161), $+ $chr(161) $+ ,$chr(195) $+ $chr(159), $+ $chr(223) $+ ) }
  • else { set %eenglish2 %eenglish2 $replacecs($read(fg,%lkj), $+ $chr(195) $+ $chr(173)­,ì,$chr(195) $+ $chr(169),é,$chr(195) $+ $chr(168),è,$chr(195) $+ $chr(160),à,$chr(195) $+ $chr(167),ç,$chr(195) $+ $chr(162),â,$chr(195) $+ $chr(170),ê,$chr(195) $+ $chr(164),ä,$chr(195) $+ $chr(171),ë,$chr(195) $+ $chr(177),ñ,$chr(195) $+ $chr(178),ò,$chr(195) $+ $chr(179), $+ $chr(243) $+ ,$chr(195) $+ $chr(188),ü,$chr(195) $+ $chr(161),a,$chr(194) $+ $chr(191), $+ $chr(191) $+ ,$chr(194) $+ $chr(161), $+ $chr(161) $+ ,$chr(195) $+ $chr(159), $+ $chr(223) $+ ) }
  • inc %lkj 1
  • }
  • sockclose mirsmail.english
  • if (%mirsmailactive == @MIRSmail!) {
  • if (%english.pseudo2 == $null) { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ %eenglish2 }
  • else { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ %english.pseudo $+ > %eenglish2 | set %english.pseudo2 }
  • }
  • elseif (!_!privé isin %mirsmailactive) { sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ %eenglish2 }
  • set %eenglish2 | set %nbv | .remove fg
  • }
  • alias mirsmail.english {
  • if ($mid($1-,1,1) != /) {
  • set %nbv2 1
  • if ($numtok($1-,62) > 1) {
  • if ($mid($gettok($1-,2,62),1,1) == $chr(32)) { set %eenglish $gettok($replace($1-,é, $+ $chr(37) $+ C3 $+ $chr(37) $+ A9,è, $+ $chr(37) $+ C3 $+ $chr(37) $+ A8,à, $+ $chr(37) $+ C3 $+ $chr(37) $+ A0,ç, $+ $chr(37) $+ C3 $+ $chr(37) $+ A7,â, $+ $chr(37) $+ C3 $+ $chr(37) $+ A2,ê, $+ $chr(37) $+ C3 $+ $chr(37) $+ AA,ä, $+ $chr(37) $+ C3 $+ $chr(37) $+ A4,ë, $+ $chr(37) $+ C3 $+ $chr(37) $+ AB,ñ, $+ $chr(37) $+ C3 $+ $chr(37) $+ B1),2-,32) }
  • else { set %eenglish $gettok($replace($1-,é, $+ $chr(37) $+ C3 $+ $chr(37) $+ A9,è, $+ $chr(37) $+ C3 $+ $chr(37) $+ A8,à, $+ $chr(37) $+ C3 $+ $chr(37) $+ A0,ç, $+ $chr(37) $+ C3 $+ $chr(37) $+ A7,â, $+ $chr(37) $+ C3 $+ $chr(37) $+ A2,ê, $+ $chr(37) $+ C3 $+ $chr(37) $+ AA,ä, $+ $chr(37) $+ C3 $+ $chr(37) $+ A4,ë, $+ $chr(37) $+ C3 $+ $chr(37) $+ AB,ñ, $+ $chr(37) $+ C3 $+ $chr(37) $+ B1),2-,62) }
  • set %english.pseudo $gettok($1-,1,62)
  • set %english.pseudo2 1
  • }
  • else { set %eenglish $replace($1-,é, $+ $chr(37) $+ C3 $+ $chr(37) $+ A9,è, $+ $chr(37) $+ C3 $+ $chr(37) $+ A8,à, $+ $chr(37) $+ C3 $+ $chr(37) $+ A0,ç, $+ $chr(37) $+ C3 $+ $chr(37) $+ A7,â, $+ $chr(37) $+ C3 $+ $chr(37) $+ A2,ê, $+ $chr(37) $+ C3 $+ $chr(37) $+ AA,ä, $+ $chr(37) $+ C3 $+ $chr(37) $+ A4,ë, $+ $chr(37) $+ C3 $+ $chr(37) $+ AB,ñ, $+ $chr(37) $+ C3 $+ $chr(37) $+ B1) }
  • sockclose mirsmail.english
  • sockopen mirsmail.english trans.voila.fr 80
  • }
  • }
  • alias message.verlanx {
  • if ($mid($1-,1,1) != /) {
  • if ($numtok($1-,62) > 1) { var %verlan5 $gettok($1-,1,62) $+ > | var %verlan6 $gettok($1-,2-,62) }
  • else { var %verlan6 $1- }
  • var %verlan $numtok( $+ %verlan6 $+ ,32)
  • var %verlan2 1
  • var %verlanx
  • var %verlanx2
  • while (%verlan2 <= %verlan) {
  • var %verlan3 $gettok( $+ %verlan6 $+ , $+ %verlan2 $+ ,32)
  • var %verlan4 $len(%verlan3)
  • while (%verlan4 >= 1) {
  • var %verlanx %verlanx $+ $mid( $+ %verlan3 $+ , $+ %verlan4 $+ ,1)
  • dec %verlan4 1
  • }
  • var %verlanx2 %verlanx2 %verlanx
  • var %verlanx
  • inc %verlan2 1
  • }
  • if (%mirsmailactive == @MIRSmail!) { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ %verlan5 %verlanx2 }
  • elseif (!_!privé isin %mirsmailactive) { sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ %verlanx2 }
  • }
  • }
  • alias message.salon.crypt { if ($mid($1-,1,1) != /) { var %ccrypt $replacecs($1-,a,Z,b,Y,c,X,d,W,e,V,f,U,g,T,h,S,i,R,j,Q,k,P,l,O,m,N,n,M,o,L,p,K,q,J,r,I,s,H,t,G,u,F,v,E,w,D,x,C,y,B,z,A,@,xc|,$chr(32),&,1,>>>,2,|<>,3,>c$,4,^-*,5,^>$,6,^->,7,^c>,8,^<>,9,|>>) | sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ HNZROXIBKG $+ & $+ : $+ & $+ %ccrypt } }
  • alias mirsmailpv.crypt { if ($mid($1-,1,1) != /) { var %ccrypt $replacecs($1-,a,Z,b,Y,c,X,d,W,e,V,f,U,g,T,h,S,i,R,j,Q,k,P,l,O,m,N,n,M,o,L,p,K,q,J,r,I,s,H,t,G,u,F,v,E,w,D,x,C,y,B,z,A,@,xc|,$chr(32),&,1,>>>,2,|<>,3,>c$,4,^-*,5,^>$,6,^->,7,^c>,8,^<>,9,|>>) | sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ HNZROXIBKG $+ & $+ : $+ & $+ %ccrypt } }
  • alias salon.officiels { sockwrite mirsmaila 4 $+ $chr(09) $+ 0 }
  • alias autres.salons { sockwrite mirsmaila 4 $+ $chr(09) $+ 1 }
  • alias rech.pseudo.ville { sockwrite mirsmaila 25 $+ $chr(09) $+ 0 $+ $chr(09) $+ $1- }
  • alias rech.pseudo.nom { sockwrite mirsmaila 25 $+ $chr(09) $+ 1 $+ $chr(09) $+ $1- }
  • alias vverif { if ($sock(mirsmaila) != $null) { } | else { echo -s Echec de la connexion, vérifiez que le login, le mot de passe, ou le pseudo sur le chat sont bons | sockclose mirsmail } }
  • alias pphoto {
  • $hget($null,$null,$hget(MIRSmail, photo, &photo2))
  • if ($bfind(&photo2,1,JFIF)) { write -c pphoto.jpg | bset -t &photo3 1 1 | bcopy &photo3 1 &photo2 $calc($bfind(&photo2,1,JFIF) - 6) 3000 | bwrite pphoto.jpg -1 -1 &photo3 }
  • else { bwrite pphoto.jpg -1 -1 &photo2 | .timer472 -h 1 1000 ppphoto }
  • }
  • alias ppphoto { window -pf %photopseudo 710 1 $pic(pphoto.jpg).width $pic(pphoto.jpg).height | /drawpic %photopseudo 1 1 1 1 3000 2000 pphoto.jpg | .remove pphoto.jpg | if (%jkl2 == 1) { inc %jkl 1 | photox } | elseif (%jkl22 == 1) { inc %jkl 1 | photox2 } }
  • alias photox { if (%jkl <= %jkl3) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok($line(@MIRSmail!,%jkl,1),1,40) } | else { set %jkl2 0 } }
  • alias photox2 { if (%jkl <= %jkl3) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok($line(@recherche.pseudo,%jkl,0),1,40) } | else { set %jkl22 0 } }
  • alias mirsmail.unset { unset %nopv , %pseudo.ignore , %ffoistid , %smailid1 , %tid1 , %in.out , %uuutilisateur , %uutilisateur , %ssalon , %sssalon , %varrr , %photopseudo , %pphoto , %jkl , %jkl2 , %jkl22 , %jkl3 , %ffoismirsmail , %tofo , %fotox , %force.join , %force.join2 , %nopv.contact2 , %nopv.contact , %verlanxx , %message.crypt , %eenglish , %eenglish2 , %mirsmail.english , %mirsmail.langue , %english.pseudo2 , %english.pseudo , %nbv , %nbv2 , %pseudo.crypt }
  • ; ## les menus :)
  • menu @*!_!PHOTO {
  • dclick:{ close -@ %mirsmailactive }
  • Enregistrer la photo:{ var %totopho $?="Entrer le nom du fichier (Répertoire de mirc par défaut)" | if (%totopho) { /drawsave $active %totopho $+ .jpg } }
  • Visualiser son profil:{ var %visu.profil %mirsmailactive2 | var %visu.profil2 http://www.smail.fr/rencontres/visuprofil.php?membre= $+ %visu.profil | if (%visu.profil != $null) { run %visu.profil2 } }
  • Fermer cette fenêtre:{ close -@ %mirsmailactive }
  • }
  • menu @!_!contacts {
  • dclick:{ if ($line(@!_!contacts,$1,1)) { window -ekf @ $+ $line(@!_!contacts,$1,1) $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ $line(@!_!contacts,$1,1) } }
  • Nopv
  • .Ne plus accepter les messages privés:{ set %nopv 1 | echo 4 @MIRSmail! Statut: Vous n'acceptez plus les messages privés }
  • .Réaccepter les messages privés:{ set %nopv 0 | echo 4 @MIRSmail! Statut: Vous acceptez maintenant les messages privés }
  • .Toujours autoriser mes contact à m'envoyer des messages privés:{ set %nopv.contact2 1 | echo 4 @MIRSmail! Statut: Vous autorisez vos contacts a vous envoyer des messages privés }
  • .Ne plus autoriser, même mes contacts, à m'envoyer un message privé:{ set %nopv.contact2 0 | echo 4 @MIRSmail! Statut: Vous n'autorisez plus, même vos contacts, a vous envoyer des messages privés }
  • S'absenter
  • .S'absenter:{ var %aabsence $?="Message d'absence?(si pas de message clicker juste sur ok)" | if (!%aabsence) { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 } | else { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 $+ $chr(09) $+ %aabsence } }
  • .Ne plus s'absenter:{ sockwrite mirsmaila 20 $+ $chr(09) $+ 0 }
  • }
  • menu @recherche.pseudo {
  • dclick:{ if ($line(@recherche.pseudo,$1,1)) { window -ekf @ $+ $line(@recherche.pseudo,$1,1) $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ $line(@recherche.pseudo,$1,1) } }
  • Afficher les photos de tous les utilisateurs trouvés:{ set %jkl 1 | set %jkl22 1 | set %jkl2 0 | set %jkl3 $line(@recherche.pseudo,0,0) | photox2 }
  • Rechercher un pseudo
  • .par ville:{ /rech.pseudo.ville $?="Entrer deux lettres au moins" | dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) }
  • .par pseudo:{ /rech.pseudo.nom $?="Entrer deux lettres au moins" | dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) }
  • Fermer cette fenêtre:{ close -@ %mirsmailactive }
  • }
  • menu @Salons.officiels {
  • dclick:{ mirsmailjoin $line(@Salons.officiels,$1,1) | window -a @MIRSmail! }
  • Lister tous les salons officiels:{ if ($window(@Salons.officiels)) { dline -l @Salons.officiels 1- $+ $line(@Salons.officiels,0,1) | dline @Salons.officiels 1- $+ $line(@Salons.officiels,0,0) | /salon.officiels } | else { /salon.officiels } }
  • Lister tous les salons non officiels:{ if ($window(@Autres.salons)) { dline -l @Autres.salons 1- $+ $line(@Autres.salons,0,1) | dline @Autres.salons 1- $+ $line(@Autres.salons,0,0) | /autres.salons } | else { /autres.salons } }
  • Fermer cette fenêtre:{ close -@ %mirsmailactive }
  • }
  • menu @Autres.salons {
  • dclick:{ mirsmailjoin $line(@Autres.salons,$1,1) | window -a @MIRSmail! }
  • Lister tous les salons officiels:{ if ($window(@Salons.officiels)) { dline -l @Salons.officiels 1- $+ $line(@Salons.officiels,0,1) | dline @Salons.officiels 1- $+ $line(@Salons.officiels,0,0) | /salon.officiels } | else { /salon.officiels } }
  • Lister tous les salons non officiels:{ if ($window(@Autres.salons)) { dline -l @Autres.salons 1- $+ $line(@Autres.salons,0,1) | dline @Autres.salons 1- $+ $line(@Autres.salons,0,0) | /autres.salons } | else { /autres.salons } }
  • Fermer cette fenêtre:{ close -@ %mirsmailactive }
  • }
  • menu @*!_!privé {
  • dclick:{ if ($sock(mirsmaila) != $null) { close -@ %mirsmailactive } }
  • Ignorer cette personne:{ set %pseudo.ignore $addtok(%pseudo.ignore,%mirsmailactive2,09) | sockwrite mirsmaila 9 $+ $chr(09) $+ $gettok(%pseudo.ignore,$numtok(%pseudo.ignore,09),09) | close -@ %mirsmailactive }
  • Ne plus ignorer cette personne:{ set %pseudo.ignore $deltok(%pseudo.ignore,$findtok(%pseudo.ignore,%mirsmailactive2,1,09),09) | echo 4 %mirsmailactive Vous n'ignorez plus %mirsmailactive2 }
  • Visualiser son profil:{ var %visu.profil %mirsmailactive2 | var %visu.profil2 http://www.smail.fr/rencontres/visuprofil.php?membre= $+ %visu.profil | if (%visu.profil != $null) { run %visu.profil2 } }
  • S'absenter
  • .S'absenter:{ var %aabsence $?="Message d'absence?(si pas de message clicker juste sur ok)" | if (!%aabsence) { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 } | else { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 $+ $chr(09) $+ %aabsence } }
  • .Ne plus s'absenter:{ sockwrite mirsmaila 20 $+ $chr(09) $+ 0 }
  • Nopv
  • .Ne plus accepter les messages privés:{ set %nopv 1 | echo 4 @MIRSmail! Statut: Vous n'acceptez plus les messages privés }
  • .Réaccepter les messages privés:{ set %nopv 0 | echo 4 @MIRSmail! Statut: Vous acceptez maintenant les messages privés }
  • .Toujours autoriser mes contact à m'envoyer des messages privés:{ set %nopv.contact2 1 | echo 4 @MIRSmail! Statut: Vous autorisez vos contacts a vous envoyer des messages privés }
  • .Ne plus autoriser, même mes contacts, à m'envoyer un message privé:{ set %nopv.contact2 0 | echo 4 @MIRSmail! Statut: Vous n'autorisez plus, même vos contacts, a vous envoyer des messages privés }
  • Bonus
  • .Traduire ce que j'écris en ... (peut lagger suivant la disponibilité du site)
  • ..Anglais
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_en }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Allemand
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_de }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Espagnol
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_es }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Italien
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_it }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Néerlandais
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_nl }
  • ...Désactiver:{ set %mirsmail.english }
  • .Ecrire en crypté (visible par d'autres utilisateurs de mirsmail si activé)(il faut écrire en minuscule)
  • ..Activer:{ set %message.crypt 1 | echo 4 %mirsmailactive cryptage activé }
  • ..Désactiver:{ set %message.crypt | echo 4 %mirsmailactive cryptage désactivé }
  • .Ecrire à l'envers
  • ..Activer:{ set %verlanxx 1 | set %message.crypt | set %mirsmail.english }
  • ..Désactiver:{ set %verlanxx }
  • Rejoindre un salon
  • .Rejoindre un salon:{ var %saloon $?="Entrer le nom d'un salon" | if (%saloon != $null) { mirsmailjoin %saloon } }
  • .Forcer à rejoindre un salon toutes les 2 secondes:{ set %force.join $?="Entrer le nom du salon" | if (%force.join != $null) { .timer89741 0 2 mirsmailjoin %force.join | set %force.join2 1 } }
  • .Stopper le forcing:{ timer89741 off | unset %force.join , %force.join2 }
  • Enregistrer la discussion dans un fichier:{ var %buff $?="Nom du fichier? (répertoire de mirc par défaut)" | if (%buff) { /savebuf 0 %mirsmailactive %buff $+ .txt } }
  • Fermer cette fenêtre:{ close -@ %mirsmailactive }
  • }
  • menu @MIRSmail! {
  • dclick:{ if ($gettok($line(@MIRSmail!,$1,1),1,40)) { window -ekf @ $+ $gettok($line(@MIRSmail!,$1,1),1,40) $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok($line(@MIRSmail!,$1,1),1,40) } }
  • .Se déconnecter:{ sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
  • Entrées et sorties
  • .Afficher les entrées et les sorties de salon:{ set %in.out 1 }
  • .Ne plus afficher les entrées et les sorties de salon:{ set %in.out }
  • Afficher toutes les photos des pseudos sur le salon:{ set %jkl 1 | set %jkl2 1 | set %jkl22 0 | set %jkl3 $line(@MIRSmail!,0,1) | photox }
  • Ignorage
  • .Liste des ignoré(e)s:{ if (%pseudo.ignore != $null) { echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Vous ignorez : ----> %pseudo.ignore | echo 4 @MIRSmail! Statut : $str(_,66) } | else { echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Vous ignorez personne . | echo 4 @MIRSmail! Statut : $str(_,66) } }
  • .Ignorer une personne:{ set %pseudo.ignore $addtok(%pseudo.ignore,$?="Pseudo à ignorer",09) | sockwrite mirsmaila 9 $+ $chr(09) $+ $gettok(%pseudo.ignore,$numtok(%pseudo.ignore,09),09) }
  • .Ne plus ignorer une personne:{ set %pseudo.ignore $deltok(%pseudo.ignore,$findtok(%pseudo.ignore,$?="Pseudo à ne plus ignorer",1,09),09) }
  • .Ne plus ignorer personne:{ set %pseudo.ignore }
  • S'absenter
  • .S'absenter:{ var %aabsence $?="Message d'absence?(si pas de message clicker juste sur ok)" | if (!%aabsence) { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 } | else { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 $+ $chr(09) $+ %aabsence } }
  • .Ne plus s'absenter:{ sockwrite mirsmaila 20 $+ $chr(09) $+ 0 }
  • Nopv
  • .Ne plus accepter les messages privés:{ set %nopv 1 | echo 4 @MIRSmail! Statut: Vous n'acceptez plus les messages privés }
  • .Réaccepter les messages privés:{ set %nopv 0 | echo 4 @MIRSmail! Statut: Vous acceptez maintenant les messages privés }
  • .Toujours autoriser mes contact à m'envoyer des messages privés:{ set %nopv.contact2 1 | echo 4 @MIRSmail! Statut: Vous autorisez vos contacts a vous envoyer des messages privés }
  • .Ne plus autoriser, même mes contacts, à m'envoyer un message privé:{ set %nopv.contact2 0 | echo 4 @MIRSmail! Statut: Vous n'autorisez plus, même vos contacts, a vous envoyer des messages privés }
  • Visualiser un profil:{ var %visu.profil $?="Rentrer un pseudo" | var %visu.profil2 http://www.smail.fr/rencontres/visuprofil.php?membre= $+ %visu.profil | if (%visu.profil != $null) { run %visu.profil2 } }
  • Rejoindre un salon
  • .Rejoindre un salon:{ var %saloon $?="Entrer le nom d'un salon" | if (%saloon != $null) { mirsmailjoin %saloon } }
  • .Forcer à rejoindre un salon toutes les 2 secondes:{ set %force.join $?="Entrer le nom du salon" | if (%force.join != $null) { .timer89741 0 2 mirsmailjoin %force.join | set %force.join2 1 } }
  • .Stopper le forcing:{ timer89741 off | unset %force.join , %force.join2 }
  • Salons
  • .Lister tous les salons officiels:{ if ($window(@Salons.officiels)) { dline -l @Salons.officiels 1- $+ $line(@Salons.officiels,0,1) | dline @Salons.officiels 1- $+ $line(@Salons.officiels,0,0) | /salon.officiels } | else { /salon.officiels } }
  • .Lister tous les salons non officiels:{ if ($window(@Autres.salons)) { dline -l @Autres.salons 1- $+ $line(@Autres.salons,0,1) | dline @Autres.salons 1- $+ $line(@Autres.salons,0,0) | /autres.salons } | else { /autres.salons } }
  • Rechercher un pseudo
  • .par ville:{ /rech.pseudo.ville $?="Entrer deux lettres au moins" | if ($window(@recherche.pseudo)) { dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) } }
  • .par pseudo:{ /rech.pseudo.nom $?="Entrer deux lettres au moins" | if ($window(@recherche.pseudo)) { dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) } }
  • Envoyer un message privé:{ var %pseudoooo $?="Entrer le pseudo" | if (%pseudoooo != $null) { window -ekf @ $+ %pseudoooo $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ %pseudoooo } }
  • Bonus
  • .Traduire ce que j'écris en ... (peut lagger suivant la disponibilité du site)
  • ..Anglais
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_en }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Allemand
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_de }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Espagnol
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_es }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Italien
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_it }
  • ...Désactiver:{ set %mirsmail.english }
  • ..Néerlandais
  • ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_nl }
  • ...Désactiver:{ set %mirsmail.english }
  • .Ecrire en crypté (visible par d'autres utilisateurs de mirsmail si activé)(il faut écrire en minuscule)
  • ..Activer:{ set %message.crypt 1 | echo 4 %mirsmailactive cryptage activé }
  • ..Désactiver:{ set %message.crypt | echo 4 %mirsmailactive cryptage désactivé }
  • .Ecrire à l'envers
  • ..Activer:{ set %verlanxx 1 | set %message.crypt | set %mirsmail.english }
  • ..Désactiver:{ set %verlanxx }
  • Enregistrer toute la discussion du salon dans un fichier:{ var %buff $?="Nom du fichier? (répertoire de mirc par défaut)" | if (%buff) { /savebuf 0 %mirsmailactive %buff $+ .txt } }
  • Dialogue de connexion:{ /dialog -m mirsmail mirsmail }
  • }
  • menu status,menubar,channel {
  • MIRSmail by pppaaahhh
  • .dialogue de connexion:{ /dialog -m mirsmail mirsmail }
  • .Se déconnecter:{ sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
  • }
  • ; ## le dialog :p
  • dialog mirsmail {
  • title "MIRSmail by pppaaahhh"
  • size -1 -1 293 172
  • option dbu
  • edit "", 1, 72 24 50 10, autohs
  • edit "", 2, 72 57 50 10, autohs, pass
  • combo 3, 224 9 60 116, sort, drop, size
  • combo 21, 227 110 40 60, size, sort, drop
  • text "Photo sur le chat", 22, 170 110 45 10
  • edit "", 6, 225 71 50 10, autohs
  • text "Pseudo sur le chat", 7, 169 10 49 8
  • text "Ville", 9, 198 94 25 8
  • text "Age", 10, 198 72 25 8
  • text "Login", 11, 47 25 25 8
  • text "Mot de passe", 12, 30 58 40 8
  • edit "", 13, 226 93 50 10, autohs
  • text "Salon à rejoindre", 14, 170 128 66 8
  • radio "Homme", 5, 225 27 50 10
  • radio "Femme", 4, 225 37 50 10
  • radio "Assexué", 8, 225 47 50 10
  • text "Sexe", 15, 195 38 22 8
  • edit "", 16, 226 126 50 10, autohs
  • button "Authentification", 17, 37 97 59 12
  • button "Créer un compte", 23, 37 115 59 12
  • check "Dernier profil utilisé", 18, 69 81 59 10
  • button "Se connecter au tchat ^^", 19, 188 151 85 12
  • button "Se déconnecter", 20, 32 140 77 12
  • }
  • on *:dialog:mirsmail:init:0:{
  • did -b mirsmail 3
  • did -b mirsmail 6
  • did -b mirsmail 13
  • did -b mirsmail 16
  • did -b mirsmail 5
  • did -b mirsmail 4
  • did -b mirsmail 8
  • did -b mirsmail 19
  • did -b mirsmail 21
  • }
  • on *:dialog:mirsmail:edit:*: {
  • if ($did == 1) { set %llogin $did(mirsmail,1) | set %mirsmailpseudo $did(mirsmail,1) }
  • if ($did == 2) { set %mmot.de.passe $did(mirsmail,2) }
  • if ($did == 6) { set %agee $did(mirsmail,6) }
  • if ($did == 13) { set %vville $did(mirsmail,13) }
  • if ($did == 16) { set %mirsmailsalon $did(mirsmail,16) }
  • }
  • on *:dialog:mirsmail:sclick:*: {
  • if ($did == 3) { set %mirsmailpseudo $did(mirsmail,3) }
  • if ($did == 21) {
  • if ($did(mirsmail,21) != Aucune) {
  • if ($sock(mirsmailphoto) == $null) { sockopen mirsmailphoto www.smail.fr 80 }
  • else { sockclose mirsmailphoto | sockopen mirsmailphoto www.smail.fr 80 }
  • window -pf @ $+ %llogin $+ !_! $+ PHOTO 600 1 400 400
  • set %photopseudo @ $+ %llogin $+ !_! $+ PHOTO
  • set %pphoto $did(mirsmail,21) $+ .jpg
  • set %fotox $did(mirsmail,21)
  • }
  • else { set %fotox -1 | close -@ @ $+ %llogin $+ !_! $+ PHOTO }
  • }
  • if ($did == 5) { set %ssexe H }
  • if ($did == 4) { set %ssexe F }
  • if ($did == 8) { set %ssexe X }
  • if ($did == 17) { set %llogin $did(mirsmail,1) | set %mmot.de.passe $did(mirsmail,2) | mirsmail }
  • if ($did == 19) {
  • set %agee $did(mirsmail,6)
  • set %vville $did(mirsmail,13)
  • set %mirsmailsalon $did(mirsmail,16)
  • if ($sock(mirsmail) == $null) { sockopen mirsmail www.smail.fr 80 | echo -s Etape 4/5 : Extraction du TempID ....................... | dialog -x mirsmail }
  • else { mirsmail83 | dialog -x mirsmail | echo -s Etape 4/5 : Extraction du TempID ....................... }
  • }
  • if ($did == 20) { if ($sock(mirsmail) != $null) { sockclose mirsmail } | dialog -x mirsmail | sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
  • if ($did == 18) {
  • if ($did(mirsmail,18).state == 1) { /did -a mirsmail 1 %llogin | /did -a mirsmail 2 %mmot.de.passe | /did -a mirsmail 3 %mirsmailpseudo | /did -a mirsmail 6 %agee | /did -a mirsmail 13 %vville | /did -a mirsmail 16 %mirsmailsalon | if (%ssexe == H) { did -c mirsmail 5 } | elseif (%ssexe == F) { did -c mirsmail 4 } | elseif (%ssexe == X) { did -c mirsmail 8 } }
  • else { did -r mirsmail 1,2,3,6,13,16 }
  • }
  • if ($did == 23) { run http://www.smail.fr/inscription.php }
  • }
; ## MIRSmail by pppaaahhh
; ## Merci d'utiliser le script :)))
; ## Ce script est un client pour le chat de www.smail.fr

; ## ouverture du socket html avec smail
alias mirsmail {
  sockopen mirsmail www.smail.fr 80
  echo -s Etape 1/5 : Connexion à www.smail.fr en cours .....
  window -c @MIRSmail!
  sockclose mirsmaila
  set %nopv 0
  set %pseudo.ignore
  set %ffoistid 0
  set %ffoismirsmail 1
  set %tofo 0
  set %nopv.contact2 1
  set %nopv.contact
  set %pseudo.crypt
  if ($hget(MIRSmail) == $null) { hmake MIRSmail 10 }
}
on *:sockopen:mirsmail:{ if (%ffoismirsmail == 1) { mirsmail81 } | else { mirsmail83 } }

; ## on récupère le cookie de connexion
alias mirsmail81 {
  set %ffoismirsmail 0
  sockwrite mirsmail GET / HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* $+ $crlf $+ Referer: http://www.google.fr/search?sourceid=navclient&hl=fr&ie=UTF-8&rls=GGLD,GGLD:2006-23,GGLD:fr&q=smail $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ $crlf
  echo -s Etape 2/5 : Extraction du cookie ........
}

; ## la on s'authentifie avec le login et le mot de passe
alias mirsmail82 {
  var %DATA1 SMAILID= $+ %smailid1 $+ &sid=null&authlogin= $+ %llogin $+ &authpassword= $+ %mmot.de.passe $+ &auth=Se+connecter
  sockwrite mirsmail POST /index.php HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* $+ $crlf $+ Referer: http://www.smail.fr/ $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Content-Type: application/x-www-form-urlencoded $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Content-Length: $len(%DATA1) $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ ; __utma=115165701.837772398.1156347535.1156347535.1156347535.1; __utmb=115165701; __utmc=115165701; __utmz=115165701.1156347535.1.1.utmccn=(organic)|utmcsr=google|utmctr=smail|utmcmd=organic $+ $crlf $+ $crlf $+ %DATA1
  echo -s Etape 3/5 : Authentification ................
}

; ## recupération des alias
alias mirsmail84 {
  sockwrite mirsmail GET /rencontres/dial.php HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* $+ $crlf $+ Referer: http://www.smail.fr/rencontres/dial.php $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ $crlf $+ $crlf
}

; ## récupération du TempID
alias mirsmail83 {
  var %DATAa pseudo= $+ %mirsmailpseudo $+ &age= $+ %agee $+ &sexe= $+ %ssexe $+ &ville= $+ %vville $+ &photos= $+ %fotox $+ &salon=&mychan=&submit=Chatter
  sockwrite mirsmail POST /rencontres/dial.php HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* $+ $crlf $+ Referer: http://www.smail.fr/rencontres/dial.php $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Content-Type: application/x-www-form-urlencoded $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Content-Length: $len(%DATAa) $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ $crlf $+ $crlf $+ %DATAa 
  .timer45 1 20 vverif
}

; ## connexion au chat, ouverture du deuxième socket ;)
alias mirsmaila {
  echo -s Etape 5/5 : Connexion au chat smail réussie .
  sockopen mirsmaila 213.251.132.103 9988
}

; ## lecture sur le socket mirsmail
on *:sockread:mirsmail:{
  var %smail81
  sockread %smail81
  if (Set-Cookie isin %smail81) { set %smailid1 $gettok($gettok(%smail81,2,61),1,59) | mirsmail82 }
  elseif (tid isin %smail81) && (%ffoistid == 0) { set %ffoistid 1 }
  elseif (tid isin %smail81) && (%ffoistid == 1) { set %tid1 $gettok($gettok(%smail81,4,61),1,34) | mirsmaila }
  elseif (SELECT NAME="pseudo" isin %smail81) {
    echo 4 -s Entrer le pseudo que vous voulez sur le chat, l'age, le sexe, la ville et le salon à rejoindre ^^
    did -e MIRSmail 3 | did -e MIRSmail 6 | did -e MIRSmail 13 | did -e MIRSmail 16 | did -e mirsmail 21
    did -e MIRSmail 5 | did -e MIRSmail 4 | did -e MIRSmail 8 | did -e MIRSmail 19
    did -b MIRSmail 1 | did -b MIRSmail 2 | did -b MIRSmail 17 | did -b MIRSmail 18 | did -b MIRSmail 23
    if (OPTION value= isin $gettok(%smail81,5,34)) { /did -a MIRSmail 3 $gettok(%smail81,6,34) }
    if (OPTION value= isin $gettok(%smail81,7,34)) { /did -a MIRSmail 3 $gettok(%smail81,8,34) }
    if (OPTION value= isin $gettok(%smail81,9,34)) { /did -a MIRSmail 3 $gettok(%smail81,10,34) }
    if (OPTION value= isin $gettok(%smail81,11,34)) { /did -a MIRSmail 3 $gettok(%smail81,12,34) }
    if (OPTION value= isin $gettok(%smail81,13,34)) { /did -a MIRSmail 3 $gettok(%smail81,14,34) }
    if (OPTION value= isin $gettok(%smail81,15,34)) { /did -a MIRSmail 3 $gettok(%smail81,16,34) }
  }
  elseif (Mauvais login ou mot de passe isin %smail81) { echo 4 -s Mauvais login ou mot de passe | sockclose mirsmail | hfree MIRSmail | mirsmail.unset }
  elseif (Votre compte est ferm isin %smail81) { echo 4 -s Votre compte est fermé :( | sockclose mirsmail | hfree MIRSmail | mirsmail.unset }
  elseif (Editer mes informations isin %smail81) { /mirsmail84 }
  elseif (select name="photos" isin %smail81) || (%tofo == 1) {
    set %tofo 1
    if (option value="-1" isin %smail81) { set %tofo 0 | /did -a MIRSmail 21 Aucune }
    elseif (option value=" isin %smail81) { /did -a MIRSmail 21 $gettok(%smail81,2,34) }
  }
}

; ## evenement à l'ouverture du deuxième socket mirsmaila, socket pour le chat
on *:sockopen:mirsmaila:{
  sockwrite mirsmaila 1 $+ $chr(09) $+ %tid1
  /window -ael12S @MIRSmail!
  /titlebar @MIRSmail! le client smail pour mirc
}

; ## lecture sur le socket du chat ;)
on *:sockread:mirsmaila:{
  if ($sockerr > 0) return
  :nextread
  sockread 800 &aa
  if ($sockbr == 0) return
  hadd -b MIRSmail item &aa
  set %varrr $hget(MIRSmail,item)
  ssockread
  goto nextread
}

; ## alias qui traite ce qui vient du serveur
alias ssockread {
  if ($gettok(%varrr,1,09) == 10) {
    ; ## message sur le salon
    set %varrr $gettok(%varrr,1,13)
    tokenize 09 %varrr
    var %pseudo.sexe $gettok($line(@MIRSmail!,$fline(@MIRSmail!,$2 $+ *,1,1),1),2,44)
    if ($fline(@MIRSmail!,$2 $+ *,1,1) != $null) && ($findtok(%pseudo.ignore,$2,1,09) == $null) { 
      if (%message.crypt == $null) { 
        if (%mirsmailpseudo !isin $4) { 
          if (%pseudo.sexe != $null) { echo $replace(%pseudo.sexe,H,12,F,13,X,3,B,4,A,1) @MIRSmail! $2 $+ > $4 }
          else { echo 3 @MIRSmail! $2 $+ > $4 }
          if (HNZROXIBKG isin $4) && ($findtok(%pseudo.crypt,$2,1,09) == $null) { echo 4 @MIRSmail! $2 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne | set %pseudo.crypt $addtok(%pseudo.crypt,$2,09) | echo 4 -s $2 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne }
        }
        else { echo 7 @MIRSmail! $2 $+ > $4 } 
      }
      else { echo $replace(%pseudo.sexe,H,12,F,13,X,3,B,4,A,1) @MIRSmail! $2 $+ > $replacecs($4,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) | if (HNZROXIBKG isin $4) && ($2 != %mirsmailpseudo) && ($findtok(%pseudo.crypt,$2,1,09) == $null) { echo 4 @MIRSmail! $2 est utilisateur de mirsmail et a activé le cryptage, activez le pour discuter avec lui | set %pseudo.crypt $addtok(%pseudo.crypt,$2,09) | echo 4 -s $2 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne } } 
    }
    elseif ($fline(@MIRSmail!,$2 $+ *,1,1) == $null) && ($findtok(%pseudo.ignore,$2,1,09) == $null) { if (%mirsmailpseudo !isin $4) { echo 3 @MIRSmail! $2 $+ > $4 | aline -lc3 @MIRSmail! $2 } | else { echo 7 @MIRSmail! $2 $+ > $4 | aline -lc3 @MIRSmail! $2 } }
    else { }
  }

  elseif ($gettok(%varrr,1,09) == 5) && ($gettok(%varrr,2,09) == 1) { 
    ; ## un utilisateur rejoint le salon
    tokenize 09 %varrr
    if (%in.out == $null) { aline $+(-lc,$replace($5,H,12,F,13,X,3,A,1,B,4)) @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) }
    else { aline $+(-lc,$replace($5,H,12,F,13,X,3,A,1,B,4)) @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) | echo 14 @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) a rejoint le salon }
  }

  ; ## un utilisateur a quitté le salon
  elseif ($gettok(%varrr,1,09) == 6) { 
    set %varrr $gettok(%varrr,1,13 10)
    tokenize 09 %varrr
    if (%in.out == $null) {
      if ($fline(@MIRSmail!,$2 $+ *,1,1) != $null) { dline -l @MIRSmail! $fline(@MIRSmail!,$2 $+ *,1,1) } 
    }
    else { if ($fline(@MIRSmail!,$2 $+ *,1,1) != $null) { dline -l @MIRSmail! $fline(@MIRSmail!,$2 $+ *,1,1) | echo 14 @MIRSmail! $2 a quitté le salon } | else { echo 14 @MIRSmail! $2 a quitté le salon } }
  }

  elseif ($gettok(%varrr,1,09) == 5) && ($gettok(%varrr,2,09) == 0) {
    ; ## message de bienvenue sur le salon    
    set %varrr $gettok(%varrr,1,13 10)
    tokenize 09 %varrr
    if (%force.join2 == 1) { 
      echo 4 @MIRSmail! $str(_,66)
      echo 4 @MIRSmail! VOUS ÊTES SUR LE SALON $3
      echo 4 @MIRSmail! $str(_,66) 
      if ($3 != %force.join) { } | else { .timer7845 1 5 timer89741 off | unset %force.join , %force.join2 } 
    }
    else {
      echo 4 @MIRSmail! $str(_,66)
      echo 4 @MIRSmail! VOUS ÊTES SUR LE SALON $3
      echo 4 @MIRSmail! $str(_,66) 
    }
  }

  ; ## messages privés :)
  elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 0) { if (%message.crypt == $null) { set %varrr $gettok(%varrr,1,13 10) | tokenize 09 %varrr | echo $replace(%ssexe,H,12,F,13,X,3,B,4,A,1) $active %mirsmailpseudo $+ > $5 } | else { set %varrr $gettok(%varrr,1,13 10) | tokenize 09 %varrr | echo $replace(%ssexe,H,12,F,13,X,3,B,4,A,1) $active %mirsmailpseudo $+ > $replacecs($5,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) } }
  elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 1) && ($findtok(%pseudo.ignore,$gettok(%varrr,3,09),1,09) == $null) && (%nopv == 1) { 
    if (%nopv.contact2 == 1) { 
      if ($findtok(%nopv.contact,$gettok(%varrr,3,09),1,09) == $null) { 
        sockwrite mirsmaila 16 $+ $chr(09) $+ $gettok(%varrr,3,09),1,09) 
      }
      else {
        if ($line(@ $+ $gettok(%varrr,3,09) $+ !_!privé,0,0) == $null) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok(%varrr,3,09) }
        set %varrr $gettok(%varrr,1,13 10)
        tokenize 09 %varrr
        window -ekf @ $+ $3 $+ !_!privé 10 1 673 400
        if (%message.crypt == $null) { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $8 }
        else { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $replacecs($8,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) }
        if (HNZROXIBKG isin $8) && ($findtok(%pseudo.crypt,$3,1,09) == $null) { echo 4 @ $+ $3 $+ !_!privé $3 est utilisateur de mirsmail et a activé le cryptage, activez le pour discuter avec lui | set %pseudo.crypt $addtok(%pseudo.crypt,$3,09) | echo 4 -s $3 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne }
      }
    } 
  }
  elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 1) && ($findtok(%pseudo.ignore,$gettok(%varrr,3,09),1,09) == $null) && (%nopv == 0) { 
    if ($line(@ $+ $gettok(%varrr,3,09) $+ !_!privé,0,0) == $null) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok(%varrr,3,09) }
    set %varrr $gettok(%varrr,1,13 10)
    tokenize 09 %varrr
    window -ekf @ $+ $3 $+ !_!privé 10 1 673 400
    if (%message.crypt == $null) { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $8 } | else { echo $replace($5,H,12,F,13,X,3,B,4,A,1) @ $+ $3 $+ !_!privé $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ ) $+ > $replacecs($8,Z,a,Y,b,X,c,W,d,V,e,U,f,T,g,S,h,R,i,Q,j,P,k,O,l,N,m,M,n,L,o,K,p,J,q,I,r,H,s,G,t,F,u,E,v,D,w,C,x,B,y,A,z,xc|,@,&,$chr(32),>>>,1,|<>,2,>c$,3,^-*,4,^>$,5,^->,6,^c>,7,^<>,8,|>>,9) }
    if (HNZROXIBKG isin $8) && ($findtok(%pseudo.crypt,$3,1,09) == $null) { echo 4 @ $+ $3 $+ !_!privé $3 est utilisateur de mirsmail et a activé le cryptage, activez le pour discuter avec lui | set %pseudo.crypt $addtok(%pseudo.crypt,$3,09) | echo 4 -s $3 est un utilisateur de mirsmail et a activé le cryptage, activé le pour discuter avec cette personne }
  }
  elseif ($gettok(%varrr,1,09) == 15) && ($gettok(%varrr,2,09) == 1) && ($findtok(%pseudo.ignore,$gettok(%varrr,3,09),1,09) != $null) { }

  ; ## .... autres commandes ....(jv pas tout lister non plus :s !!)
  elseif ($gettok(%varrr,1,09) == 101) { set %varrr $gettok(%varrr,1,13 10) | if ($window(@ $+ $gettok(%varrr,2,09) $+ !_!privé)) { echo 11 @ $+ $gettok(%varrr,2,09) $+ !_!privé $gettok(%varrr,2,09) n'est plus connecté(e) } | if ($fline(@MIRSmail!,$gettok(%varrr,2,09) $+ *,1,1) != $null) { dline -l @MIRSmail! $fline(@MIRSmail!,$gettok(%varrr,2,09) $+ *,1,1) } | if (%jkl2 == 1) { inc %jkl 1 | photox } | elseif (%jkl22 == 1) { inc %jkl 1 | photox2 } }
  elseif ($gettok(%varrr,1,09) == 16) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @ $+ $gettok(%varrr,2,09) $+ !_!privé $gettok(%varrr,2,09) n'accepte plus les messages privés }
  elseif ($gettok(%varrr,1,09) == 21) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @ $+ $gettok(%varrr,2,09) $+ !_!privé $gettok(%varrr,2,09) est absent, message: $gettok(%varrr,3,09) }

  ; ## message de bienvenue + getion des contacts
  elseif ($gettok(%varrr,1,09) == 2) && ($gettok(%varrr,2,09) == 1) { var %varrr2 $gettok(%varrr,2,10) | set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous êtes connecté(e) en tant que $gettok(%varrr,3,09) ( $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ , $+ $gettok(%varrr,6,09) $+ ) | echo 4 @MIRSmail! Statut : $str(_,66) | .timer654 1 2 mirsmailjoin %mirsmailsalon
    if (%varrr2 != $null) {
      var %varrr2 $gettok(%varrr2,1,13)
      window -sSl12 @!_!contacts
      var %toka $numtok(%varrr2,09)
      var %tokaa 2
      while (%tokaa <= %toka) {
        aline $replace($gettok(%varrr2,$calc(%tokaa + 2),09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $gettok(%varrr2,$calc(%tokaa + 5),09) $+ ( $+ $gettok(%varrr2,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr2,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr2,$calc(%tokaa + 3),09) $+ ) connecté(e) en tant que $gettok(%varrr2,%tokaa,09) est dans le salon $gettok(%varrr2,$calc(%tokaa + 4),09)
        aline $replace($gettok(%varrr2,$calc(%tokaa + 2),09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @!_!contacts $gettok(%varrr2,%tokaa,09)  
        set %nopv.contact $addtok(%nopv.contact,$gettok(%varrr2,%tokaa,09),09)
        inc %tokaa 7
      }
    }   
  }

  ; ## gestion des contacts
  ; ## un contact se connecte ou n'est plus absent
  elseif ($gettok(%varrr,1,09) == 75) && (0 isin $gettok(%varrr,8,09)) { 
    set %varrr $gettok(%varrr,1,13 10)
    set %nopv.contact $addtok(%nopv.contact,$gettok(%varrr,2,09),09)
    if ($fline(@!_!contacts,$gettok(%varrr,2,09),1,1) == $null) {
      window -sSl12 @!_!contacts
      aline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , pas absent
      aline $replace($gettok(%varrr,4,09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @!_!contacts $gettok(%varrr,2,09) 
    }
    else { rline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $fline(@!_!contacts,* $+ en tant que $gettok(%varrr,2,09) est dans le salon $+ *,1,0) $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , pas absent } 
  }

  ; ##un contact est absent
  elseif ($gettok(%varrr,1,09) == 75) && (1 isin $gettok(%varrr,8,09)) {
    set %varrr $gettok(%varrr,1,13 10)
    if ($fline(@!_!contacts,$gettok(%varrr,2,09),1,1) != $null) {
      rline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $fline(@!_!contacts,* $+ en tant que $gettok(%varrr,2,09) est dans le salon $+ *,1,0) $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , absent 
    }
    else { 
      window -sSl12 @!_!contacts
      aline $replace($gettok(%varrr,4,09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @!_!contacts $gettok(%varrr,7,09) $+ ( $+ $gettok(%varrr,3,09) $+ , $+ $gettok(%varrr,4,09) $+ , $+ $gettok(%varrr,5,09) $+ ) connecté(e) en tant que $gettok(%varrr,2,09) est dans le salon $gettok(%varrr,6,09) , absent
      aline $replace($gettok(%varrr,4,09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @!_!contacts $gettok(%varrr,2,09) 
    }
  }

  ; ## un contact est parti
  elseif ($gettok(%varrr,1,09) == 76) { set %varrr $gettok(%varrr,1,13 10) | if ($fline(@!_!contacts,$gettok(%varrr,2,09),1,1) != $null) { dline @!_!contacts $fline(@!_!contacts,* $+ en tant que $gettok(%varrr,2,09) est dans le salon $+ *,1,0) | dline -l @!_!contacts $fline(@!_!contacts,$gettok(%varrr,2,09),1,1) } | else { echo 4 -s Un de vos contacts, $gettok(%varrr,2,09) s'est déconnecté(e) } }

  elseif ($gettok(%varrr,1,09) == 20) && (1 isin $gettok(%varrr,3,09)) { echo 4 @MIRSmail! $gettok(%varrr,2,09) s'est absenté(e) }
  elseif ($gettok(%varrr,1,09) == 20) && (0 isin $gettok(%varrr,3,09)) { echo 4 @MIRSmail! $gettok(%varrr,2,09) n'est plus absent(e) }
  elseif ($gettok(%varrr,1,09) == 1) { set %varrr $gettok(%varrr,1,13 10) | echo @MIRSmail! $gettok(%varrr,2,09) |  echo 4 @MIRSmail! MIRSmail client pour smail }
  elseif ($gettok(%varrr,1,09) == 14) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: $gettok(%varrr,2,09) a été éjecté(e) par $gettok(%varrr,3,09) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 -s Statut: $gettok(%varrr,2,09) a été éjecté(e) par $gettok(%varrr,3,09) } 
  elseif ($gettok(%varrr,1,09) == 2) && ($gettok(%varrr,2,09) == 2) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous êtes banni(e) du chat pour une durée de $gettok(%varrr,3,09) secondes | echo 4 @MIRSmail! Statut : $str(_,66) } 
  elseif ($gettok(%varrr,1,09) == 2) && ($gettok(%varrr,2,09) == 2 $+ $chr(13) $+ $chr(10)) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous êtes banni(e) du chat | echo 4 @MIRSmail! Statut : $str(_,66) } 
  elseif ($gettok(%varrr,1,09) == 9) && ($gettok(%varrr,2,09) == 1) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous avez été ignoré(e) par $gettok(%varrr,3,09) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 -s Statut: Vous avez été ignoré(e) par $gettok(%varrr,3,09) }
  elseif ($gettok(%varrr,1,09) == 9) && ($gettok(%varrr,2,09) == 0) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: Vous avez ignoré $gettok(%varrr,3,09) | echo 4 @MIRSmail! Statut : $str(_,66) }
  elseif ($gettok(%varrr,1,09) == 3) { set %varrr $gettok(%varrr,1,13 10) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Statut: $gettok(%varrr,2,09) | echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 -s Statut: $gettok(%varrr,2,09) }
  elseif ($gettok(%varrr,1,09) == 50) { sockwrite mirsmaila 50 $+ $chr(09) $+ PONG }  
  elseif ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 0) { echo 4 @MIRSmail! START LISTING }
  elseif ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 2) { echo 4 @MIRSmail! END LISTING }
  elseif ($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 0) { echo 4 @MIRSmail! START LISTING }
  elseif ($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 2) { echo 4 @MIRSmail! END LISTING }

  ; ## PING ! 
  elseif ($gettok(%varrr,1,09) == 50) { sockwrite mirsmaila 50 $+ $chr(09) $+ PONG }  

  elseif ($gettok(%varrr,1,09) == 7) || (%uuutilisateur == 1) { 
    ; ## listes des connectés sur le salon    
    set %uuutilisateur 1
    if (%uuutilisateur == 1) {
      .timer65 -h 1 2000 set %uuutilisateur 0
      var %toka $numtok(%varrr,09)
      if (10 $+ $chr(09) isin %varrr) { set %varrr $gettok(%varrr,1,13 10) }
      if ($gettok(%varrr,1,09) == 7) { var %tokaa 2 }
      else { if ($findtok(%varrr,F,1,09) > $findtok(%varrr,H,1,09)) { var %tokaa $calc($findtok(%varrr,H,1,09) + 3) } | else { var %tokaa $calc($findtok(%varrr,F,1,09) + 3) } }
      while (%tokaa <= %toka) {
        if ($istok(H.F.X.B.A,$gettok(%varrr,$calc(%tokaa + 2),09),46)) { aline $replace($gettok(%varrr,$calc(%tokaa + 2),09),H,-lc12,F,-lc13,X,-lc3,B,-lc4,A,-lc1) @MIRSmail! $gettok(%varrr,%tokaa,09) $+ ( $+ $gettok(%varrr,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 3),09) $+ ) }
        var %tokaa $calc(%tokaa + 5)
      }
      .timer698 1 7 echo 4 @MIRSmail! il y a $line(@MIRSmail!,0,1) connectés sur le salon
    }
  }

  elseif (($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 1)) || (%uutilisateur == 1) {
    ; ## recherche d'utilisateurs  
    window -asSl12 @recherche.pseudo
    set %uutilisateur 1
    if (%uutilisateur == 1) {
      .timer65 -h 1 1000 set %uutilisateur 0
      var %toka $numtok(%varrr,09)
      set %varrr $replace(%varrr,$chr(32),$chr(160))
      if ($gettok(%varrr,1,09) == 25) && ($gettok(%varrr,2,09) == 1) { var %tokaa 3 }
      else { if ($findtok(%varrr,F,1,09) > $findtok(%varrr,H,1,09)) { var %tokaa $calc($findtok(%varrr,H,1,09) + 4) } | else { var %tokaa $calc($findtok(%varrr,F,1,09) + 4) } }
      while (%tokaa < %toka) {
        if ($istok(H.F.X.B.A,$gettok(%varrr,$calc(%tokaa + 2),09),46)) { aline $replace($gettok(%varrr,$calc(%tokaa + 2),09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @recherche.pseudo $gettok(%varrr,%tokaa,09) ( $+ $gettok(%varrr,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 3),09) $+ ) dans le salon : $+ $gettok(%varrr,$calc(%tokaa + 4),09) | aline -l $+ $replace($gettok(%varrr,$calc(%tokaa + 2),09),H,-c12,F,-c13,X,-c3,B,-c4,A,-c1) @recherche.pseudo $gettok(%varrr,%tokaa,09) }
        var %tokaa $calc(%tokaa + 6)
      }
    }
  }


  ; ## liste des salons officiels
  elseif (($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) && ($findtok(%varrr,Bourgogne,1,09) != $null)) || (%ssalon == 1) {
    window -asSl12 @Salons.officiels
    set %ssalon 1
    if (%ssalon == 1) {
      .timer65 -h 1 2000 set %ssalon 0
      var %toka $numtok(%varrr,09)
      if ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) { var %tokaa 3 }
      else { var %tokaa $calc($findtok(%varrr,0,1,09) + 2) }
      while (%tokaa <= %toka) {
        aline -c2 @Salons.officiels $gettok(%varrr,%tokaa,09) $gettok(%varrr,$calc(%tokaa + 2),09) connecté(s)
        aline -lc2 @Salons.officiels $gettok(%varrr,%tokaa,09)
        var %tokaa $calc(%tokaa + 4)
      }
    }
  }

  ; ## liste des autres salons
  elseif (($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) && ($findtok(%varrr,Bourgogne,1,09) == $null)) || (%sssalon == 1) {
    window -asSl12 @Autres.salons
    set %sssalon 1
    if (%sssalon == 1) {
      .timer65 -h 1 2000 set %sssalon 0
      var %toka $numtok(%varrr,09)
      set %varrr $replace(%varrr,$chr(32),$chr(160))
      if ($gettok(%varrr,1,09) == 4) && ($gettok(%varrr,2,09) == 1) { var %tokaa 3 }
      else { var %tokaa $calc($findtok(%varrr,0,1,09) + 1) }
      while (%tokaa <= %toka) {
        aline -c2 @Autres.salons $gettok($replace(%varrr,$chr(32),$chr(160)),%tokaa,09) Crée par $gettok(%varrr,$calc(%tokaa + 1),09) $gettok(%varrr,$calc(%tokaa + 2),09) connecté(s)
        aline -lc2 @Autres.salons $gettok($replace(%varrr,$chr(32),$chr(160)),%tokaa,09)
        var %tokaa $calc(%tokaa + 4)
      }
    }
  }

  ; ## l'utilisateur a une photo
  elseif ($gettok(%varrr,1,09) == 17) && ($gettok(%varrr,3,09) != -1) { 
    set %photopseudo @ $+ $gettok(%varrr,2,09) $+ !_! $+ PHOTO
    set %pphoto $gettok(%varrr,3,09) $+ .jpg
    window -pf %photopseudo 710 1 200 200
    if ($sock(mirsmailphoto) == $null) { sockopen mirsmailphoto www.smail.fr 80 }
    else { sockclose mirsmailphoto | sockopen mirsmailphoto www.smail.fr 80 }
  }

  ; ## l'utilisateur n'a pas de photo
  elseif ($gettok(%varrr,1,09) == 17) && ($gettok(%varrr,3,09) == -1) { if (%jkl2 == 1) { inc %jkl 1 | photox } | elseif (%jkl22 == 1) { inc %jkl 1 | photox2 } }

  ; ## si commande inconnue, cette commande est redirigée sur la fenetre de status 
  else { echo -s %varrr }
}

; ## socket pour obtenir les photos
on *:sockopen:mirsmailphoto:{
  sockwrite mirsmailphoto GET /photos/ $+ %pphoto HTTP/1.1 $+ $crlf $+ Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32) $+ $crlf $+ Host: www.smail.fr $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ Cookie: SMAILID= $+ %smailid1 $+ $crlf $+ $crlf
}

; ## lecture sur le socket photo
on *:sockread:mirsmailphoto:{
  if ($sockerr > 0) return
  :nextphoto
  sockread 800 &photo
  if ($sockbr == 0) return
  hadd -b MIRSmail photo &photo
  pphoto
  goto nextphoto
}

; ## socket pour parler anglais ou autre langue
on *:sockopen:mirsmail.english:{ 
  var %DATA.ENGLISH systran_id=Voila-fr&systran_charset=UTF-8&systran_lp= $+ %mirsmail.langue $+ &systran_text= $+ :021345: %eenglish
  sockwrite mirsmail.english POST /voila HTTP/1.1 $+ $crlf $+ Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* $+ $crlf $+ Referer: http://trans.voila.fr/voila $+ $crlf $+ Accept-Language: fr $+ $crlf $+ Content-Type: application/x-www-form-urlencoded $+ $crlf $+ Accept-Encoding: gzip, deflate $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) $+ $crlf $+ Host: trans.voila.fr $+ $crlf $+ Content-Length: $len(%DATA.ENGLISH) $+ $crlf $+ Connection: Keep-Alive $+ $crlf $+ Cache-Control: no-cache $+ $crlf $+ $crlf $+ %DATA.ENGLISH
}
; ## lecture sur le socket english
on *:sockread:mirsmail.english:{
  var %englishhh
  sockread -f %englishhh
  if (:021345: isin %englishhh) && (%nbv2 == 1) { write fg %englishhh | set %nbv 1 | set %nbv2 }
  elseif (%nbv == 1) { write fg %englishhh | .timer21 -h 1 50 mirsmail.langua }
}

; ## differents evenements
on *:ACTIVE:*: { set %mirsmailactive $active | set %mirsmailactive2 $gettok($gettok(%mirsmailactive,1,64),1,33) }
on *:sockclose:mirsmaila: { echo @MIRSmail! déconnecté :(  | echo 4 -s déconnecté :( | hfree MIRSmail | mirsmail.unset }
on *:INPUT:@MIRSmail!:{ if (%message.crypt == $null) { if (%mirsmail.english == $null) { if (%verlanxx == $null) { /message.salon $1- } | else { /message.verlanx $1- } } | else { /mirsmail.english $1- } } | else { /message.salon.crypt $1- } }
on *:INPUT:@*!_!privé:{ if (%message.crypt == $null) { if (%mirsmail.english == $null) { if (%verlanxx == $null) { if (%mirsmailactive != @MIRSmail!) && ($sock(mirsmaila) != $null) { /mirsmailpv $1- } | else { halt } } | else { /message.verlanx $1- } } | else { /mirsmail.english $1- } } | else { /mirsmailpv.crypt $1- } }
on *:CLOSE:@MIRSmail!:{ sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }

; ## les alias
alias mirsmailjoin {
  set %mirsmailsalon $1-
  if ($chr(160) !isin $1-) { dline -l @MIRSmail! 1- $+ $line(@MIRSmail!,0,1) | sockwrite mirsmaila 5 $+ $chr(09) $+ $1- | sockwrite mirsmaila 7 $+ $chr(09) $+ $1- }
  else { hadd MIRSmail espace 5 $+ $chr(09) $+ $1- | hadd MIRSmail espace2 7 $+ $chr(09) $+ $1- | bset -t &as 1 1 | bset -t &as2 1 1 | $hget($null,$null,$hget(MIRSmail, espace, &as)) | $hget($null,$null,$hget(MIRSmail, espace2, &as2)) | breplace &as 160 32 | breplace &as2 160 32 | dline -l @MIRSmail! 1- $+ $line(@MIRSmail!,0,1) | sockwrite mirsmaila &as | sockwrite mirsmaila &as2 } 
}
alias mirsmailpv { if ($mid($1-,1,1) != /) { sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ $1- } | else { } }
alias message.salon { if ($mid($1-,1,1) != /) { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ $1- } | else { } }

alias mirsmail.langua {
  var %lkj 1
  while (<br /> !isin $read(fg,%lkj)) {
    if (%lkj == 1) { set %eenglish2 $replacecs($mid($gettok($read(fg,%lkj),1,09),10,$len($gettok($read(fg,%lkj),1,09))), $+ $chr(195) $+ $chr(173)­,ì,$chr(195) $+ $chr(169),é,$chr(195) $+ $chr(168),è,$chr(195) $+ $chr(160),à,$chr(195) $+ $chr(167),ç,$chr(195) $+ $chr(162),â,$chr(195) $+ $chr(170),ê,$chr(195) $+ $chr(164),ä,$chr(195) $+ $chr(171),ë,$chr(195) $+ $chr(177),ñ,$chr(195) $+ $chr(178),ò,$chr(195) $+ $chr(179), $+ $chr(243) $+ ,$chr(195) $+ $chr(188),ü,$chr(195) $+ $chr(161),a,$chr(194) $+ $chr(191), $+ $chr(191) $+ ,$chr(194) $+ $chr(161), $+ $chr(161) $+ ,$chr(195) $+ $chr(159), $+ $chr(223) $+ ) }
    else { set %eenglish2 %eenglish2 $replacecs($read(fg,%lkj), $+ $chr(195) $+ $chr(173)­,ì,$chr(195) $+ $chr(169),é,$chr(195) $+ $chr(168),è,$chr(195) $+ $chr(160),à,$chr(195) $+ $chr(167),ç,$chr(195) $+ $chr(162),â,$chr(195) $+ $chr(170),ê,$chr(195) $+ $chr(164),ä,$chr(195) $+ $chr(171),ë,$chr(195) $+ $chr(177),ñ,$chr(195) $+ $chr(178),ò,$chr(195) $+ $chr(179), $+ $chr(243) $+ ,$chr(195) $+ $chr(188),ü,$chr(195) $+ $chr(161),a,$chr(194) $+ $chr(191), $+ $chr(191) $+ ,$chr(194) $+ $chr(161), $+ $chr(161) $+ ,$chr(195) $+ $chr(159), $+ $chr(223) $+ ) }
    inc %lkj 1
  }
  sockclose mirsmail.english
  if (%mirsmailactive == @MIRSmail!) {
    if (%english.pseudo2 == $null) { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ %eenglish2 }
    else { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ %english.pseudo $+ > %eenglish2 | set %english.pseudo2 }
  }
  elseif (!_!privé isin %mirsmailactive) { sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ %eenglish2 }
  set %eenglish2 | set %nbv | .remove fg
}

alias mirsmail.english {
  if ($mid($1-,1,1) != /) {
    set %nbv2 1
    if ($numtok($1-,62) > 1) {
      if ($mid($gettok($1-,2,62),1,1) == $chr(32)) { set %eenglish $gettok($replace($1-,é, $+ $chr(37) $+ C3 $+ $chr(37) $+ A9,è, $+ $chr(37) $+ C3 $+ $chr(37) $+ A8,à, $+ $chr(37) $+ C3 $+ $chr(37) $+ A0,ç, $+ $chr(37) $+ C3 $+ $chr(37) $+ A7,â, $+ $chr(37) $+ C3 $+ $chr(37) $+ A2,ê, $+ $chr(37) $+ C3 $+ $chr(37) $+ AA,ä, $+ $chr(37) $+ C3 $+ $chr(37) $+ A4,ë, $+ $chr(37) $+ C3 $+ $chr(37) $+ AB,ñ, $+ $chr(37) $+ C3 $+ $chr(37) $+ B1),2-,32) }
      else { set %eenglish $gettok($replace($1-,é, $+ $chr(37) $+ C3 $+ $chr(37) $+ A9,è, $+ $chr(37) $+ C3 $+ $chr(37) $+ A8,à, $+ $chr(37) $+ C3 $+ $chr(37) $+ A0,ç, $+ $chr(37) $+ C3 $+ $chr(37) $+ A7,â, $+ $chr(37) $+ C3 $+ $chr(37) $+ A2,ê, $+ $chr(37) $+ C3 $+ $chr(37) $+ AA,ä, $+ $chr(37) $+ C3 $+ $chr(37) $+ A4,ë, $+ $chr(37) $+ C3 $+ $chr(37) $+ AB,ñ, $+ $chr(37) $+ C3 $+ $chr(37) $+ B1),2-,62) }
      set %english.pseudo $gettok($1-,1,62)
      set %english.pseudo2 1
    }
    else { set %eenglish $replace($1-,é, $+ $chr(37) $+ C3 $+ $chr(37) $+ A9,è, $+ $chr(37) $+ C3 $+ $chr(37) $+ A8,à, $+ $chr(37) $+ C3 $+ $chr(37) $+ A0,ç, $+ $chr(37) $+ C3 $+ $chr(37) $+ A7,â, $+ $chr(37) $+ C3 $+ $chr(37) $+ A2,ê, $+ $chr(37) $+ C3 $+ $chr(37) $+ AA,ä, $+ $chr(37) $+ C3 $+ $chr(37) $+ A4,ë, $+ $chr(37) $+ C3 $+ $chr(37) $+ AB,ñ, $+ $chr(37) $+ C3 $+ $chr(37) $+ B1) }
    sockclose mirsmail.english
    sockopen mirsmail.english trans.voila.fr 80
  }
}
alias message.verlanx {
  if ($mid($1-,1,1) != /) {
    if ($numtok($1-,62) > 1) { var %verlan5 $gettok($1-,1,62) $+ > | var %verlan6 $gettok($1-,2-,62) }
    else { var %verlan6 $1- }
    var %verlan $numtok( $+ %verlan6 $+ ,32)
    var %verlan2 1
    var %verlanx
    var %verlanx2
    while (%verlan2 <= %verlan) {
      var %verlan3 $gettok( $+ %verlan6 $+ , $+ %verlan2 $+ ,32)
      var %verlan4 $len(%verlan3)
      while (%verlan4 >= 1) {
        var %verlanx %verlanx $+ $mid( $+ %verlan3 $+ , $+ %verlan4 $+ ,1)
        dec %verlan4 1
      }
      var %verlanx2 %verlanx2 %verlanx
      var %verlanx
      inc %verlan2 1 
    }
    if (%mirsmailactive == @MIRSmail!) { sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ %verlan5 %verlanx2 }
    elseif (!_!privé isin %mirsmailactive) { sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ %verlanx2 }
  }
}
alias message.salon.crypt { if ($mid($1-,1,1) != /) { var %ccrypt $replacecs($1-,a,Z,b,Y,c,X,d,W,e,V,f,U,g,T,h,S,i,R,j,Q,k,P,l,O,m,N,n,M,o,L,p,K,q,J,r,I,s,H,t,G,u,F,v,E,w,D,x,C,y,B,z,A,@,xc|,$chr(32),&,1,>>>,2,|<>,3,>c$,4,^-*,5,^>$,6,^->,7,^c>,8,^<>,9,|>>) | sockwrite mirsmaila 10 $+ $chr(09) $+ 0 $+ $chr(09) $+ HNZROXIBKG $+ & $+ : $+ & $+ %ccrypt } }
alias mirsmailpv.crypt { if ($mid($1-,1,1) != /) { var %ccrypt $replacecs($1-,a,Z,b,Y,c,X,d,W,e,V,f,U,g,T,h,S,i,R,j,Q,k,P,l,O,m,N,n,M,o,L,p,K,q,J,r,I,s,H,t,G,u,F,v,E,w,D,x,C,y,B,z,A,@,xc|,$chr(32),&,1,>>>,2,|<>,3,>c$,4,^-*,5,^>$,6,^->,7,^c>,8,^<>,9,|>>) | sockwrite mirsmaila 15 $+ $chr(09) $+ %mirsmailactive2 $+ $chr(09) $+ 0 $+ $chr(09) $+ HNZROXIBKG $+ & $+ : $+ & $+ %ccrypt } }
alias salon.officiels { sockwrite mirsmaila 4 $+ $chr(09) $+ 0 }
alias autres.salons { sockwrite mirsmaila 4 $+ $chr(09) $+ 1 }
alias rech.pseudo.ville { sockwrite mirsmaila 25 $+ $chr(09) $+ 0 $+ $chr(09) $+ $1- }
alias rech.pseudo.nom { sockwrite mirsmaila 25 $+ $chr(09) $+ 1 $+ $chr(09) $+ $1- }
alias vverif { if ($sock(mirsmaila) != $null) { } | else { echo -s Echec de la connexion, vérifiez que le login, le mot de passe, ou le pseudo sur le chat sont bons | sockclose mirsmail } }
alias pphoto {
  $hget($null,$null,$hget(MIRSmail, photo, &photo2))
  if ($bfind(&photo2,1,JFIF)) { write -c pphoto.jpg | bset -t &photo3 1 1 | bcopy &photo3 1 &photo2 $calc($bfind(&photo2,1,JFIF) - 6) 3000 | bwrite pphoto.jpg -1 -1 &photo3 }
  else { bwrite pphoto.jpg -1 -1 &photo2 | .timer472 -h 1 1000 ppphoto }
}
alias ppphoto { window -pf %photopseudo 710 1 $pic(pphoto.jpg).width $pic(pphoto.jpg).height | /drawpic %photopseudo 1 1 1 1 3000 2000 pphoto.jpg | .remove pphoto.jpg | if (%jkl2 == 1) { inc %jkl 1 | photox } | elseif (%jkl22 == 1) { inc %jkl 1 | photox2 } }
alias photox { if (%jkl <= %jkl3) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok($line(@MIRSmail!,%jkl,1),1,40) } | else { set %jkl2 0 } }
alias photox2 { if (%jkl <= %jkl3) { sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok($line(@recherche.pseudo,%jkl,0),1,40) } | else { set %jkl22 0 } }
alias mirsmail.unset { unset %nopv , %pseudo.ignore , %ffoistid , %smailid1 , %tid1 , %in.out , %uuutilisateur , %uutilisateur , %ssalon , %sssalon , %varrr , %photopseudo , %pphoto , %jkl , %jkl2 , %jkl22 , %jkl3 , %ffoismirsmail , %tofo , %fotox , %force.join , %force.join2 , %nopv.contact2 , %nopv.contact , %verlanxx , %message.crypt , %eenglish , %eenglish2 , %mirsmail.english , %mirsmail.langue , %english.pseudo2 , %english.pseudo , %nbv , %nbv2 , %pseudo.crypt }

; ## les menus :)
menu @*!_!PHOTO {
  dclick:{ close -@ %mirsmailactive }
  Enregistrer la photo:{ var %totopho $?="Entrer le nom du fichier (Répertoire de mirc par défaut)" | if (%totopho) { /drawsave $active %totopho $+ .jpg } }
  Visualiser son profil:{ var %visu.profil %mirsmailactive2 | var %visu.profil2 http://www.smail.fr/rencontres/visuprofil.php?membre= $+ %visu.profil | if (%visu.profil != $null) { run %visu.profil2 } }
  Fermer cette fenêtre:{ close -@ %mirsmailactive }
}
menu @!_!contacts {
  dclick:{ if ($line(@!_!contacts,$1,1)) { window -ekf @ $+ $line(@!_!contacts,$1,1) $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ $line(@!_!contacts,$1,1) } }
  Nopv
  .Ne plus accepter les messages privés:{ set %nopv 1 | echo 4 @MIRSmail! Statut: Vous n'acceptez plus les messages privés }
  .Réaccepter les messages privés:{ set %nopv 0 | echo 4 @MIRSmail! Statut: Vous acceptez maintenant les messages privés }
  .Toujours autoriser mes contact à m'envoyer des messages privés:{ set %nopv.contact2 1 | echo 4 @MIRSmail! Statut: Vous autorisez vos contacts a vous envoyer des messages privés }
  .Ne plus autoriser, même mes contacts, à m'envoyer un message privé:{ set %nopv.contact2 0 | echo 4 @MIRSmail! Statut: Vous n'autorisez plus, même vos contacts, a vous envoyer des messages privés }
  S'absenter
  .S'absenter:{ var %aabsence $?="Message d'absence?(si pas de message clicker juste sur ok)" | if (!%aabsence) { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 } | else { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 $+ $chr(09) $+ %aabsence } }
  .Ne plus s'absenter:{ sockwrite mirsmaila 20 $+ $chr(09) $+ 0 }

}
menu @recherche.pseudo { 
  dclick:{ if ($line(@recherche.pseudo,$1,1)) { window -ekf @ $+ $line(@recherche.pseudo,$1,1) $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ $line(@recherche.pseudo,$1,1) } }
  Afficher les photos de tous les utilisateurs trouvés:{ set %jkl 1 | set %jkl22 1 | set %jkl2 0 | set %jkl3 $line(@recherche.pseudo,0,0) | photox2 }
  Rechercher un pseudo
  .par ville:{ /rech.pseudo.ville $?="Entrer deux lettres au moins" | dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) }
  .par pseudo:{ /rech.pseudo.nom $?="Entrer deux lettres au moins" | dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) }
  Fermer cette fenêtre:{ close -@ %mirsmailactive }
}
menu @Salons.officiels {
  dclick:{ mirsmailjoin $line(@Salons.officiels,$1,1) | window -a @MIRSmail! }
  Lister tous les salons officiels:{ if ($window(@Salons.officiels)) { dline -l @Salons.officiels 1- $+ $line(@Salons.officiels,0,1) | dline @Salons.officiels 1- $+ $line(@Salons.officiels,0,0) | /salon.officiels } | else { /salon.officiels } }
  Lister tous les salons non officiels:{ if ($window(@Autres.salons)) { dline -l @Autres.salons 1- $+ $line(@Autres.salons,0,1) | dline @Autres.salons 1- $+ $line(@Autres.salons,0,0) | /autres.salons } | else { /autres.salons } }
  Fermer cette fenêtre:{ close -@ %mirsmailactive }
}
menu @Autres.salons {
  dclick:{ mirsmailjoin $line(@Autres.salons,$1,1) | window -a @MIRSmail! }
  Lister tous les salons officiels:{ if ($window(@Salons.officiels)) { dline -l @Salons.officiels 1- $+ $line(@Salons.officiels,0,1) | dline @Salons.officiels 1- $+ $line(@Salons.officiels,0,0) | /salon.officiels } | else { /salon.officiels } }
  Lister tous les salons non officiels:{ if ($window(@Autres.salons)) { dline -l @Autres.salons 1- $+ $line(@Autres.salons,0,1) | dline @Autres.salons 1- $+ $line(@Autres.salons,0,0) | /autres.salons } | else { /autres.salons } }
  Fermer cette fenêtre:{ close -@ %mirsmailactive }
}
menu @*!_!privé {
  dclick:{ if ($sock(mirsmaila) != $null) { close -@ %mirsmailactive } }
  Ignorer cette personne:{ set %pseudo.ignore $addtok(%pseudo.ignore,%mirsmailactive2,09) | sockwrite mirsmaila 9 $+ $chr(09) $+ $gettok(%pseudo.ignore,$numtok(%pseudo.ignore,09),09) | close -@ %mirsmailactive }
  Ne plus ignorer cette personne:{ set %pseudo.ignore $deltok(%pseudo.ignore,$findtok(%pseudo.ignore,%mirsmailactive2,1,09),09) | echo 4 %mirsmailactive Vous n'ignorez plus %mirsmailactive2 }
  Visualiser son profil:{ var %visu.profil %mirsmailactive2 | var %visu.profil2 http://www.smail.fr/rencontres/visuprofil.php?membre= $+ %visu.profil | if (%visu.profil != $null) { run %visu.profil2 } }
  S'absenter
  .S'absenter:{ var %aabsence $?="Message d'absence?(si pas de message clicker juste sur ok)" | if (!%aabsence) { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 } | else { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 $+ $chr(09) $+ %aabsence } }
  .Ne plus s'absenter:{ sockwrite mirsmaila 20 $+ $chr(09) $+ 0 }
  Nopv
  .Ne plus accepter les messages privés:{ set %nopv 1 | echo 4 @MIRSmail! Statut: Vous n'acceptez plus les messages privés }
  .Réaccepter les messages privés:{ set %nopv 0 | echo 4 @MIRSmail! Statut: Vous acceptez maintenant les messages privés }
  .Toujours autoriser mes contact à m'envoyer des messages privés:{ set %nopv.contact2 1 | echo 4 @MIRSmail! Statut: Vous autorisez vos contacts a vous envoyer des messages privés }
  .Ne plus autoriser, même mes contacts, à m'envoyer un message privé:{ set %nopv.contact2 0 | echo 4 @MIRSmail! Statut: Vous n'autorisez plus, même vos contacts, a vous envoyer des messages privés }
  Bonus
  .Traduire ce que j'écris en ... (peut lagger suivant la disponibilité du site)
  ..Anglais
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_en }
  ...Désactiver:{ set %mirsmail.english }
  ..Allemand
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_de }
  ...Désactiver:{ set %mirsmail.english }
  ..Espagnol
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_es }
  ...Désactiver:{ set %mirsmail.english }
  ..Italien
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_it }
  ...Désactiver:{ set %mirsmail.english }
  ..Néerlandais
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_nl }
  ...Désactiver:{ set %mirsmail.english }
  .Ecrire en crypté (visible par d'autres utilisateurs de mirsmail si activé)(il faut écrire en minuscule)
  ..Activer:{ set %message.crypt 1 | echo 4 %mirsmailactive cryptage activé }
  ..Désactiver:{ set %message.crypt |  echo 4 %mirsmailactive cryptage désactivé }
  .Ecrire à l'envers
  ..Activer:{ set %verlanxx 1 | set %message.crypt | set %mirsmail.english }
  ..Désactiver:{ set %verlanxx }
  Rejoindre un salon
  .Rejoindre un salon:{ var %saloon $?="Entrer le nom d'un salon" | if (%saloon != $null) { mirsmailjoin %saloon } }
  .Forcer à rejoindre un salon toutes les 2 secondes:{ set %force.join $?="Entrer le nom du salon" | if (%force.join != $null) { .timer89741 0 2 mirsmailjoin %force.join | set %force.join2 1 } }
  .Stopper le forcing:{ timer89741 off | unset %force.join , %force.join2 }
  Enregistrer la discussion dans un fichier:{ var %buff $?="Nom du fichier? (répertoire de mirc par défaut)" | if (%buff) { /savebuf 0 %mirsmailactive %buff $+ .txt } }
  Fermer cette fenêtre:{ close -@ %mirsmailactive }
}

menu @MIRSmail! {
  dclick:{ if ($gettok($line(@MIRSmail!,$1,1),1,40)) { window -ekf @ $+ $gettok($line(@MIRSmail!,$1,1),1,40) $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ $gettok($line(@MIRSmail!,$1,1),1,40) } }
  .Se déconnecter:{ sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
  Entrées et sorties
  .Afficher les entrées et les sorties de salon:{ set %in.out 1 }
  .Ne plus afficher les entrées et les sorties de salon:{ set %in.out }
  Afficher toutes les photos des pseudos sur le salon:{ set %jkl 1 | set %jkl2 1 | set %jkl22 0 | set %jkl3 $line(@MIRSmail!,0,1) | photox }
  Ignorage
  .Liste des ignoré(e)s:{ if (%pseudo.ignore != $null) { echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Vous ignorez : ---->   %pseudo.ignore | echo 4 @MIRSmail! Statut : $str(_,66) } | else { echo 4 @MIRSmail! Statut : $str(_,66) | echo 4 @MIRSmail! Vous ignorez personne . | echo 4 @MIRSmail! Statut : $str(_,66) } }
  .Ignorer une personne:{ set %pseudo.ignore $addtok(%pseudo.ignore,$?="Pseudo à ignorer",09) | sockwrite mirsmaila 9 $+ $chr(09) $+ $gettok(%pseudo.ignore,$numtok(%pseudo.ignore,09),09) }
  .Ne plus ignorer une personne:{ set %pseudo.ignore $deltok(%pseudo.ignore,$findtok(%pseudo.ignore,$?="Pseudo à ne plus ignorer",1,09),09) }
  .Ne plus ignorer personne:{ set %pseudo.ignore }
  S'absenter
  .S'absenter:{ var %aabsence $?="Message d'absence?(si pas de message clicker juste sur ok)" | if (!%aabsence) { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 } | else { sockwrite mirsmaila 20 $+ $chr(09) $+ 1 $+ $chr(09) $+ %aabsence } }
  .Ne plus s'absenter:{ sockwrite mirsmaila 20 $+ $chr(09) $+ 0 }
  Nopv
  .Ne plus accepter les messages privés:{ set %nopv 1 | echo 4 @MIRSmail! Statut: Vous n'acceptez plus les messages privés }
  .Réaccepter les messages privés:{ set %nopv 0 | echo 4 @MIRSmail! Statut: Vous acceptez maintenant les messages privés }
  .Toujours autoriser mes contact à m'envoyer des messages privés:{ set %nopv.contact2 1 | echo 4 @MIRSmail! Statut: Vous autorisez vos contacts a vous envoyer des messages privés }
  .Ne plus autoriser, même mes contacts, à m'envoyer un message privé:{ set %nopv.contact2 0 | echo 4 @MIRSmail! Statut: Vous n'autorisez plus, même vos contacts, a vous envoyer des messages privés }
  Visualiser un profil:{ var %visu.profil $?="Rentrer un pseudo" | var %visu.profil2 http://www.smail.fr/rencontres/visuprofil.php?membre= $+ %visu.profil | if (%visu.profil != $null) { run %visu.profil2 } }
  Rejoindre un salon
  .Rejoindre un salon:{ var %saloon $?="Entrer le nom d'un salon" | if (%saloon != $null) { mirsmailjoin %saloon } }
  .Forcer à rejoindre un salon toutes les 2 secondes:{ set %force.join $?="Entrer le nom du salon" | if (%force.join != $null) { .timer89741 0 2 mirsmailjoin %force.join | set %force.join2 1 } }
  .Stopper le forcing:{ timer89741 off | unset %force.join , %force.join2 }
  Salons
  .Lister tous les salons officiels:{ if ($window(@Salons.officiels)) { dline -l @Salons.officiels 1- $+ $line(@Salons.officiels,0,1) | dline @Salons.officiels 1- $+ $line(@Salons.officiels,0,0) | /salon.officiels } | else { /salon.officiels } }
  .Lister tous les salons non officiels:{ if ($window(@Autres.salons)) { dline -l @Autres.salons 1- $+ $line(@Autres.salons,0,1) | dline @Autres.salons 1- $+ $line(@Autres.salons,0,0) | /autres.salons } | else { /autres.salons } }
  Rechercher un pseudo
  .par ville:{ /rech.pseudo.ville $?="Entrer deux lettres au moins" | if ($window(@recherche.pseudo)) { dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) } }
  .par pseudo:{ /rech.pseudo.nom $?="Entrer deux lettres au moins" | if ($window(@recherche.pseudo)) { dline -l @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,1) | dline @recherche.pseudo 1- $+ $line(@recherche.pseudo,0,0) } }
  Envoyer un message privé:{ var %pseudoooo $?="Entrer le pseudo" | if (%pseudoooo != $null) { window -ekf @ $+ %pseudoooo $+ !_!privé 10 1 673 400 | sockwrite mirsmaila 17 $+ $chr(09) $+ %pseudoooo } }
  Bonus
  .Traduire ce que j'écris en ... (peut lagger suivant la disponibilité du site)
  ..Anglais
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_en }
  ...Désactiver:{ set %mirsmail.english }
  ..Allemand
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_de }
  ...Désactiver:{ set %mirsmail.english }
  ..Espagnol
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_es }
  ...Désactiver:{ set %mirsmail.english }
  ..Italien
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_it }
  ...Désactiver:{ set %mirsmail.english }
  ..Néerlandais
  ...Activer:{ set %mirsmail.english 1 | set %message.crypt | set %mirsmail.langue fr_nl }
  ...Désactiver:{ set %mirsmail.english }
  .Ecrire en crypté (visible par d'autres utilisateurs de mirsmail si activé)(il faut écrire en minuscule)
  ..Activer:{ set %message.crypt 1 | echo 4 %mirsmailactive cryptage activé }
  ..Désactiver:{ set %message.crypt |  echo 4 %mirsmailactive cryptage désactivé }
  .Ecrire à l'envers
  ..Activer:{ set %verlanxx 1 | set %message.crypt | set %mirsmail.english }
  ..Désactiver:{ set %verlanxx }

  Enregistrer toute la discussion du salon dans un fichier:{ var %buff $?="Nom du fichier? (répertoire de mirc par défaut)" | if (%buff) { /savebuf 0 %mirsmailactive %buff $+ .txt } }
  Dialogue de connexion:{ /dialog -m mirsmail mirsmail }
} 

menu status,menubar,channel { 
  MIRSmail by pppaaahhh
  .dialogue de connexion:{ /dialog -m mirsmail mirsmail }
  .Se déconnecter:{ sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
}

; ## le dialog :p
dialog mirsmail {
  title "MIRSmail by pppaaahhh"
  size -1 -1 293 172
  option dbu
  edit "", 1, 72 24 50 10, autohs
  edit "", 2, 72 57 50 10, autohs, pass
  combo 3, 224 9 60 116, sort, drop, size
  combo 21, 227 110 40 60, size, sort, drop
  text "Photo sur le chat", 22, 170 110 45 10
  edit "", 6, 225 71 50 10, autohs
  text "Pseudo sur le chat", 7, 169 10 49 8
  text "Ville", 9, 198 94 25 8
  text "Age", 10, 198 72 25 8
  text "Login", 11, 47 25 25 8
  text "Mot de passe", 12, 30 58 40 8
  edit "", 13, 226 93 50 10, autohs
  text "Salon à rejoindre", 14, 170 128 66 8
  radio "Homme", 5, 225 27 50 10
  radio "Femme", 4, 225 37 50 10
  radio "Assexué", 8, 225 47 50 10
  text "Sexe", 15, 195 38 22 8
  edit "", 16, 226 126 50 10, autohs
  button "Authentification", 17, 37 97 59 12
  button "Créer un compte", 23, 37 115 59 12
  check "Dernier profil utilisé", 18, 69 81 59 10
  button "Se connecter au tchat ^^", 19, 188 151 85 12
  button "Se déconnecter", 20, 32 140 77 12
}
on *:dialog:mirsmail:init:0:{
  did -b mirsmail 3
  did -b mirsmail 6
  did -b mirsmail 13
  did -b mirsmail 16
  did -b mirsmail 5
  did -b mirsmail 4
  did -b mirsmail 8
  did -b mirsmail 19
  did -b mirsmail 21
}
on *:dialog:mirsmail:edit:*: {
  if ($did == 1) { set %llogin $did(mirsmail,1) | set %mirsmailpseudo $did(mirsmail,1) }
  if ($did == 2) { set %mmot.de.passe $did(mirsmail,2) }
  if ($did == 6) { set %agee $did(mirsmail,6) }
  if ($did == 13) { set %vville $did(mirsmail,13) }
  if ($did == 16) { set %mirsmailsalon $did(mirsmail,16) }
}
on *:dialog:mirsmail:sclick:*: {
  if ($did == 3) { set %mirsmailpseudo $did(mirsmail,3) }
  if ($did == 21) { 
    if ($did(mirsmail,21) != Aucune) {
      if ($sock(mirsmailphoto) == $null) { sockopen mirsmailphoto www.smail.fr 80 }
      else { sockclose mirsmailphoto | sockopen mirsmailphoto www.smail.fr 80 }
      window -pf @ $+ %llogin $+ !_! $+ PHOTO 600 1 400 400
      set %photopseudo @ $+ %llogin $+ !_! $+ PHOTO
      set %pphoto $did(mirsmail,21) $+ .jpg
      set %fotox $did(mirsmail,21)
    }
    else { set %fotox -1 | close -@ @ $+ %llogin $+ !_! $+ PHOTO }
  }
  if ($did == 5) { set %ssexe H }
  if ($did == 4) { set %ssexe F }
  if ($did == 8) { set %ssexe X }
  if ($did == 17) { set %llogin $did(mirsmail,1) | set %mmot.de.passe $did(mirsmail,2) | mirsmail }
  if ($did == 19) { 
    set %agee $did(mirsmail,6)
    set %vville $did(mirsmail,13)
    set %mirsmailsalon $did(mirsmail,16)
    if ($sock(mirsmail) == $null) { sockopen mirsmail www.smail.fr 80 | echo -s Etape 4/5 : Extraction du TempID ....................... | dialog -x mirsmail }
    else { mirsmail83 | dialog -x mirsmail | echo -s Etape 4/5 : Extraction du TempID ....................... }
  }
  if ($did == 20) { if ($sock(mirsmail) != $null) { sockclose mirsmail } | dialog -x mirsmail | sockclose mirsmaila | hfree MIRSmail | window -c @MIRSmail! | mirsmail.unset }
  if ($did == 18) { 
    if ($did(mirsmail,18).state == 1) { /did -a mirsmail 1 %llogin | /did -a mirsmail 2 %mmot.de.passe | /did -a mirsmail 3 %mirsmailpseudo | /did -a mirsmail 6 %agee | /did -a mirsmail 13 %vville | /did -a mirsmail 16 %mirsmailsalon | if (%ssexe == H) { did -c mirsmail 5 } | elseif (%ssexe == F) { did -c mirsmail 4 } | elseif (%ssexe == X) { did -c mirsmail 8 } }
    else { did -r mirsmail 1,2,3,6,13,16 }
  }
  if ($did == 23) { run http://www.smail.fr/inscription.php }

}

Conclusion

faites un copier-coller du script, puis copiez le dans vos scripts de mirc .¨Pour accéder aux différentes options, faites un clic droit dans la fenetre de chat :)
 

Historique

22 janvier 2007 23:43:37 :
modification de on*:INPUT ....
22 janvier 2007 23:47:01 :
..
23 janvier 2007 17:31:07 :
message en cas d'erreur de connexion
23 janvier 2007 19:33:07 :
correction
23 janvier 2007 22:48:58 :
ajout de quelques options :)
23 janvier 2007 22:53:00 :
:)
23 janvier 2007 23:15:31 :
ajout d'options
24 janvier 2007 20:45:57 :
:!
25 janvier 2007 08:56:16 :
modofication on*:sockclose
26 janvier 2007 01:14:28 :
changement du sockread :)
26 janvier 2007 01:41:22 :
...
26 janvier 2007 01:44:45 :
:p
26 janvier 2007 10:49:47 :
.
26 janvier 2007 19:41:37 :
mise a jour
27 janvier 2007 00:07:38 :
les photos des utilisateurs sont disponibles ^^
27 janvier 2007 00:17:18 :
changement de nom de htable
27 janvier 2007 11:12:14 :
possibilité d'afficher toutes les photos des pseudos sur le salon
27 janvier 2007 12:13:24 :
redimension des fenetres de pv
27 janvier 2007 17:54:09 :
ajout d'un combo ou l'on peut choisir son alias, et un autre pour choisir sa photo sur le chat ^^
27 janvier 2007 18:24:35 :
..
27 janvier 2007 18:50:11 :
lien hypertexte vers les profils dans les messages privés
27 janvier 2007 18:54:51 :
:)
27 janvier 2007 19:52:53 :
^^
27 janvier 2007 20:21:33 :
...
27 janvier 2007 21:43:45 :
:)
27 janvier 2007 22:12:04 :
..
27 janvier 2007 23:49:06 :
redimension des photos
28 janvier 2007 14:20:59 :
utilisation de tokenize et de $replace
28 janvier 2007 17:02:56 :
:)
28 janvier 2007 19:45:56 :
optimisation des boucles, ajout d'un menu sur les fenetres de pv
28 janvier 2007 20:33:40 :
regroupement des evenements de dialog, possibilité d'enregistrer la photo d'un contact en faisant clic droit sur la photo
28 janvier 2007 20:50:10 :
correction
28 janvier 2007 21:01:16 :
...
29 janvier 2007 12:00:12 :
..
29 janvier 2007 16:24:39 :
:)
29 janvier 2007 16:43:25 :
ajout d'une liste verticale dans la fenetre de recherche de pseudos pour envoyer rapidement un message privé
29 janvier 2007 16:56:50 :
correction
29 janvier 2007 17:18:33 :
ajout d'une liste verticale dans la recherche de salons pour rejoindre rapidement un salon
29 janvier 2007 18:55:28 :
correction
29 janvier 2007 21:56:41 :
possibilité d'enregistrer les discussions dans un fichier
29 janvier 2007 22:33:40 :
ajout de quelques options, correction de bugs
30 janvier 2007 20:30:51 :
gestion des contacts ^^
30 janvier 2007 20:47:29 :
correction
06 février 2007 18:29:06 :
ajout de quelques bonus, notamment un traducteur ^^

Commentaires et avis

signaler à un administrateur
Commentaire de COOLMAN002 le 24/01/2007 19:32:32

Bonsoir,
dans ton event scokread, tu pourrais faire un "tokenize 09 %aa" et ainsi éviter tout tes $gettok...


.Se déconnecter:{ sockclose * | window -c @MIR...........

pas cool de fermer toute les sockets, ferme seulement les tiennes...

#  elseif ($gettok(%aa,1,09) == 5) && ($gettok(%aa,2,09) == 1) && (%in.out == $null) {
# if ($gettok(%aa,5,09) == H) { aline -lc12 @MIRSmail! $gettok(%aa,3,09) $+ ( $+ $gettok(%aa,4,09) $+ , $+ $gettok(%aa,5,09) $+ , $+ $gettok(%aa,6,09) $+ ) }
# elseif ($gettok(%aa,5,09) == F) { aline -lc13 @MIRSmail! $gettok(%aa,3,09) $+ ( $+ $gettok(%aa,4,09) $+ , $+ $gettok(%aa,5,09) $+ , $+ $gettok(%aa,6,09) $+ ) }
# elseif ($gettok(%aa,5,09) == X) { aline -lc3 @MIRSmail! $gettok(%aa,3,09) $+ ( $+ $gettok(%aa,4,09) $+ , $+ $gettok(%aa,5,09) $+ , $+ $gettok(%aa,6,09) $+ ) }
# else { aline -lc4 @MIRSmail! $gettok(%aa,3,09) $+ ( $+ $gettok(%aa,4,09) $+ , $+ $gettok(%aa,5,09) $+ , $+ $gettok(%aa,6,09) $+ ) }
# }
Je pense que tu pourras racourcir tout ca via un $replace... explication:
aline $+(-lc,$replace($gettok(%aa,5,09),H,12,S,13,X,3)) @MIRSmail! $gettok(%aa,3,09) $+ ( $+ $gettok(%aa,4,09) $+ , $+ $gettok(%aa,5,09) $+ , $+ $gettok(%aa,6,09) $+ ) }

(ce qui donne avec le TOKENIZE:
aline $+(-lc,$replace($5,H,12,S,13,X,3)) @MIRSmail! $3 $+ ( $+ $4 $+ , $+ $5 $+ , $+ $6 $+ )

Bonne continuation.


signaler à un administrateur
Commentaire de wims le 24/01/2007 20:05:07

A quoi sert le sockread &aa ?

signaler à un administrateur
Commentaire de pppaaahhh le 24/01/2007 20:38:06

bien vu le tokenize, mais il me retourne une erreur /tokenize: line too long :(
le sockread &aa je viens de m'en servir pour pouvoir lire tout le buffer, ce que sockread %aa ne lit pas, sockread &aa le lit .

signaler à un administrateur
Commentaire de wims le 24/01/2007 21:10:00

Oui je veux bien que tu veuille lire tout le buffer mais dans ce cas a quoi sert le sockread %aa :)

Et je vois pas comment tu dépasse les 940 char en recevant des données d'un server irc

signaler à un administrateur
Commentaire de pppaaahhh le 25/01/2007 13:40:48

je vais refaire le sockread :)

signaler à un administrateur
Commentaire de wims le 28/01/2007 17:33:37

Ligne 16, ya un $get au lieu d'un $hget je pense

else { if (%varrr != $null) { echo -s %varrr } | else { } }

lol ?

C'est encore super optimisable comme code, rien qu'un exemple :
Les lignes 216 a 219 deviennent une seul ligne :

elseif ($istok(F.X.B.A,$gettok(%varrr,$calc(%tokaa + 2),09),46)) { aline $replace($gettok(%varrr,$calc(%tokaa + 2),09),F,-c13,X,-c3,B,-c4,A,-c1) @recherche.pseudo $gettok(%varrr,%tokaa,09) ( $+ $gettok(%varrr,$calc(%tokaa + 1),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 2),09) $+ , $+ $gettok(%varrr,$calc(%tokaa + 3),09) $+ ) dans le salon : $+ $gettok(%varrr,$calc(%tokaa + 4),09) }

signaler à un administrateur
Commentaire de pppaaahhh le 28/01/2007 19:37:39

pour le else { if (%varrr != $null) { echo -s %varrr } | else { } } , je sais pas a quoi je pensais lollll
bine vu pour le $hget du debut, et merci pour l'optimisation ligne 216 à 219, et du coup aussi pour la liste des connectés sur le salon, ca marche mieux en plus j'ai l'impression ^^

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

mirc for java based chat code [ par faktor27 ] Salut from Turquie, i need some help . the problem is that: i turkish chat server which called "irc.mynet.com" closed itself nearly all mirc user exc Client Chat en VC++ (ou eVC) [ par c2c ] Bonjour,je dois développer un client Chat pour Pocket PC style Pocket Chat mais avec des messages pré-enregistrés...Est-ce que qqn aurait un exemple d Dcc Chat pour bot mIRC [ par XavSniper ] Bonjour tout le monde.J'essai de faire un système de DCC Chat pour bot mIRC, mais comme vous vous en seriez douté, celà ne marche pas, ce qui explique problemes de couleurs sur mirc 6.17 [ par torpe ] bonjour à tous ! voila je possede mirc 6.17 en francais sur mon script et quand je fais glisser mon curseur dessus un texte il met une autre couleur p suppression protocol [ par Tom_21 ] Bonjour,j'ai un soucis avec mon mIRC .comment puis je faire pour supprimer le protocol proxy et socks4 dans un mIRC ( alt+o - connect- firewall - et l comment utiliser mon serveur irc 24/7 [ par mohshow ] Bonjour,j'ai creer un serveur irc avec MIRC.Heberger sur mon ordinateur.Mais dès que je fermer le logiciel MIRC, mon serveur est "fermé" (ne fonctionn Soucis de socket [ par Fat4L ] Bonjour,Pour résumer, j'ai un problème pour me connecter via socket à irc. (Orange)Pourtant, j'ai un nickname réservé, j'utilise la fonction "PASS" po changement de pseudo avec readini [ par doob666 ] Je suis en train de créer un input pour changer de pseudo avec un input mais je rencontre un problème...En effet quand je met ²gnagnagna mon pseudo se


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.