Systeme de whois

Contenu du snippet

Bon, c'est un système de whois. JE SAIS: il y en beaucoup sur ce site, mais pourquoi pas un autre. Hm.. bref, au départ c'était une source qui comportait 3 TAB, mais jlai résumé en une seul: ce whois. De plus on m'aurait engueulé pour la taille du dialog, 1050 sur 450.. :p je l'ai raccourci. C'est donc un systeme de whois avec une nicklist du canal, il suffit de cliker sur un pseudo de la nicklist pour avoir les infos a droite de celui-ci.
Rien de plus a dire, à part que sur une fenêtre QUERY mon code ne marche pas, et dans la fenêtre Status Window bien entendu non plus.
J'ai mis un emplacement pour whoiser quelqu'un qui ne fait pas parti de la nicklist.

Source / Exemple :


alias f5 /i.chan
menu channel {
  .InfoGénérale:/i.chan
}
alias i.chan dialog -mv i.chan i.chan
dialog i.chan {
  title "Info"
  size -1 -1 820 460
  list 5 , 10 10 150 465
  box "Whois" , 6 , 170 5 450 450
  text , 7 , 300 30 200 15
  text , 8 , 179 50 100 15
  text , 9 , 179 95 400 15
  text , 11 , 179 95 55 15
  text , 12 , 179 220 230 15
  list 13 , 179 235 250 100 , drop
  text , 16 , 350 50 265 15
  text , 17 , 179 72 100 15
  text , 18 , 350 72 200 15
  text , 19 , 179 330 300 15
  text , 20 , 350 330 50 15
  list 21 , 179 110 250 100
  text , 22 , 179 355 300 15
  text , 23 , 350 355 200 15
  text , 24 , 179 380 250 15
  text , 25 , 350 380 50 15
  text , 26 , 179 405 50 15
  text , 27 , 350 405 150 15
  text , 28 , 435 125 50 100
  edit "" , 31 , 642 30 145 23 , limit 19
  button "Whoiser" , 32 , 680 65 50 20
  box "Whois Indépendant" , 33 , 630 5 170 150
  text , 34 , 642 95 150 55
  ;suite whois
  text , 62 , 179 425 50 15
  text , 63 , 350 425 200 15
  button "ok" , 65 , 680 435 60 20 , ok
  text , 66 , 290 95 100 15
  text "Sys.Whois.Agora.Script" , 67 , 660 400 120 15
}
on *:dialog:i.chan:init:*:{
  %actived = $active
  list.user
  did -b i.chan 67
  did -h i.chan 13,21
  did -a i.chan 34 Cet endroit permet de whoiser un pseudo ne faisant pas parti de la liste des pseudos de %actived
}
on *:dialog:i.chan:dclick:5:{ alias dialw return { 1 } | .dialowhoiswhois1 | dialwhois | did -v i.chan 13,21 }
on *:dialog:i.chan:sclick:32:{ alias dialw return { 2 } | .dialowhoiswhois1 | dialwhois2 | n.chan.c.i }
on *:dialog:i.chan:dclick:21:{ join $did(i.chan,21).seltext }
alias dialowhoiswhois1 {
  did -a i.chan 7 ??Whois sur $iif($dialw == 1,$did(5).seltext,$did(i.chan,31)) $+ ??
  did -a i.chan 8 ?Adresse:
  did -a i.chan 11 ?Channels: 
  did -a i.chan 12 ?Canaux en communs avec $iif($dialw == 1,$did(5).seltext,$did(i.chan,31)) $+ : $iif($dialw == 1,$comchan($did(5).seltext,0),$comchan($did(i.chan,31),0))
  did -r i.chan 13 | n.chan.c
  did -a i.chan 17 ?Infos:
  did -a i.chan 19 ?Pseudo enregistré sur le server:
  did -a i.chan 22 ?Connectée via le server:
  did -a i.chan 24 ?Inactif depuis:
  did -a i.chan 26 ?Ircop:
  did -a i.chan 28 ?Cliquez sur un chan pour le joindre.
  did -a i.chan 20 Non.
  did -a $dname 25 Inconnu
  did -a $dname 27 Non, c'est un simple client.
  did -a $dname 62 ?Away:
  did -a $dname 63 N'est pas away.
}
alias list.user {
  var %a 1,%b $opnick(%actived,0) ,%c $vnick(%actived,0),%d $nick(%actived,0,r)
  while ( %a <= %b ) { did -a i.chan 5 $opnick(%actived,%a) | inc %a } | var %a 1
  while ( %a <= %c ) { did -a i.chan 5 $vnick(%actived,%a) | inc %a } | var %a 1
  while ( %a <= %d ) { did -a i.chan 5 $nick(%actived,%a,r) | inc %a } | var %a 1
}
alias n.chan.c { var %chan.c 1 , %chan.c.t $comchan($did(5).seltext,0) | while ( %chan.c <= %chan.c.t ) { did -a i.chan 13 $comchan($did(5).seltext,%chan.c) | inc %chan.c } | var %chan.c 1 }
alias n.chan.c.i { var %chan.c.2 1 , %chan.c.t.2 $comchan($did(i.chan,31),0) | while ( %chan.c.2 <= %chan.c.t.2 ) { did -a i.chan 13 $comchan($did(i.chan,31),%chan.c.2) | inc %chan.c.2 } | var %chan.c.2 1 }
alias dialwhois2 { .enable #dialwhois | whois $did(i.chan,31) }
alias dialwhois { .enable #dialwhois | whois $did(i.chan,5).seltext }
#dialwhois on
raw 301:*:{ did -a i.chan 63 ?O.u.i> $3- }
raw 307:*:{ did -a i.chan 20 Oui. }
raw 311:*:{ did -a i.chan 18 $strip($6-) | did -a i.chan 16 $3 $+ @ $+ $4 | halt }
raw 312:*:{ did -a i.chan 23 $3 | halt }
raw 313:*:{ did -a i.chan 27 Oui. | halt }
raw 317:*:{ did -a i.chan 25 $duration($3) | halt }
raw 319:*:{ .did -v i.chan 13,21 | .did -r i.chan 21 | didtok i.chan 21 32 $remove($3-,^,@,+,*,) | did -a i.chan 66 .:: $numtok($3-,32) $iif($numtok($3-,32) > 1,canaux,canal) ::. | halt }
raw 401:*:{ .did -h i.chan 13,21 | .did -r i.chan 7,8,11,12,13,16,17,18,19,21,22,24,26,28,20,25,27,29,63,62,66 | did -a i.chan 34 $crlf $+ $did(i.chan,31) n'est pas connecté(e) $+ $crlf | halt }
raw 318:*:{ haltdef }
#dialwhois end

Conclusion :


Ne faîte pas attention aux ID, elle sont grandes car comme je l'ai expliqué plus haut, il y avait 3 TAB.. mais ça fonctionne quand même.
Un merci pour MaX_62 lolll, il sera peut-être surpris, mais c'est lui qui m'a aidé sur le forum pour pouvoir faire ce dialog, du moins l'ancien dialog qui comportait 3 TAB mdr jme répète ( http://www.ircfr.com/forum.v2.aspx?ID=401466 ). Bref, il marche, et s'il est trop grand encore, bah j'essayerais de le changeais.
Pour faire marcher le code, faites soit F5, soit /i.chan ou l'option présente sur le menu Channel.
@+

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.