begin process at 2010 03 21 06:27:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

IRC

 > 

Scripting

 > 

Général

 > 

Attendre que /whois se termine


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Attendre que /whois se termine

jeudi 30 août 2007 à 17:31:04 | Attendre que /whois se termine

BreizhSpirit

Salut,

Je souhaite attenddre la fin de l'execution du /whois dans un alias pour pouvoir exploiter les resultats toujours dans cet ealias.
J'ai commencé par faire une boucle sur le test d'une variable qui est modifiée dans raw indiquant la fin du /whois

Alias ->
; On attend la fin du /whois
:loop

if (%IsWhoisEnd != true) {

     goto loop
}

Remote ->
; Raw du /whois indiquant la fin de la commande
raw 318:*End of /WHOIS list*: {

  %IsWhoisEnd = true
}

C'est la que je me suis rendu compte que apperement le "catch" de l'evenement raw 318 ne se fait pas tant que l'alias est pas fini.
Quelqu'un aurait une idée pour gérer le probleme autrment ou pour mettre une sorte de pause dans le loop pour permettre le "catch" ?

Merci d'avance

jeudi 30 août 2007 à 23:41:21 | Re : Attendre que /whois se termine

wims

Ce n'est pas vraiment la bonne méthode, ce qu'il faut faire c'est choppé les messages, les stocker, et quand le raw se finis (318) tu affiches les infos, et n'oublie pas de mettre /haltdef pour que mirc arrête de mettre ses messages par défaut :

raw *:*:{
if ($numeric == 311) { set -u2 %raw311 $1- | haltdef }
elseif ($numeric == 319) { set -u %raw319 $1- | haltdef }
elseif ($numeric == 318) {
echo -a %raw311
echo -a %raw319
etc...
}
}

c'est un exemple, a toi de completé en formattant le texte contenus dans $1- (les différentes var) selon tes choix, rajoute les elseif a chaque fois
vendredi 31 août 2007 à 01:21:15 | Re : Attendre que /whois se termine

BreizhSpirit

Disons que ma méthode me semble plus logique pour ce que je veux faire avec les informations du whois,ce n'est pas pour les afficher mais pour les exploiter lorsque quelqu'un join le channel, mais apparement cela ne s'adapte pas au fonctionnement de mirc. Donc je vais me debrouiller avec ce que tu m'as donné et contourner le problement. Merci encore pour ton aide wims, tu es mon eternel sauveur
vendredi 31 août 2007 à 01:28:22 | Re : Attendre que /whois se termine

BreizhSpirit

Pour info mon bot entre autre kick tous les gens qui ne font pas partie d'une guest list a part les admin et les services du serveur biensur. Je le fais dans un
on 1:JOIN:%Channel ce qui me parait plus logique biensur. Seulement j'ai besoin de connaitre les admins et serveur c'est pour ca que je passe par whois, il me semblait plus logique de faire tout le traitement dans join plutot que dans raw mais bon je vais faire avec.
vendredi 31 août 2007 à 01:57:51 | Re : Attendre que /whois se termine

BreizhSpirit

En fait je pense que cela ne va pas être jouable avec ta méthode, je m'explique : Je n'aurais plus le $nick de la personne qui a join dans l'évement de raw, je pourrais le sauver dans une variable au moment du join mais je pense que si deux personnes join le channel dans un interval assez court je vais perdre l'information du premier join et du coup je ne saurais plus qui kicker ou ne pas kicker une fois dans le raw. Je sais pas si je me fais bien comprendre
vendredi 31 août 2007 à 04:07:16 | Re : Attendre que /whois se termine

wims

Réponse acceptée !
Ah bah ça oui si tu veux :

on !*:join:#salon:{
set %nwho $nick
whois $nick
}

raw *:*:{
;vérifie que $2 sois le pseudo...
if ($2 == %nwho) {
if ($numeric == CellePourNetworkAdmin) set %answ 1
elseif ($numeric == CellePourUnAutreTruc) set %answ 1
elseif ($numeric == 318) && (%answ) { ici, le nick %nwho est condidéré comme un admin ou autre donc tu fais ce que tu veux, oublie pas d'unset les variable %answ et %nwho a la fin }

Il n'y aura pas de probleme au niveau du code, même si deux nick joigne en même temps
vendredi 31 août 2007 à 12:01:20 | Re : Attendre que /whois se termine

BreizhSpirit

Le seul truc que je ne comprend pas dans ton code c'est le $2, je pensais apres avoir lu l'aide mirc que l'on ne pouvait récupérer que $numeric et $rawmsg dans un raw. Je comprend bien que ici $2 représente le nickname concerné par le whois mais il est renseigné par quoi ?

vendredi 31 août 2007 à 12:26:59 | Re : Attendre que /whois se termine

BreizhSpirit

Ok $n semble représenter le nième élément du $rawmsg et tu me confirme que le serveur ne me retournera jamais les données d'un /whois tant que le précédent /whois n'est pas terminé ?
vendredi 31 août 2007 à 16:59:14 | Re : Attendre que /whois se termine

wims

Réponse acceptée !
Oui $2 représente je crois le nick whoisé, mais a vérifié que ce sois pas $1 ou $3
Et ce n'est pas que le server attend qu'un whois sois finis, mais disons que le cas ou deux personne joigne un salon avec disons 30 milliseconde réel de différence, est vraiment très rare, faudrait testé de whois deux personne en même temps, une qui a un grade spécial et une autre normal, avec un /echo dans la raw 318 selon si le nick a un grade spécial ou non. :)
samedi 1 septembre 2007 à 01:47:31 | Re : Attendre que /whois se termine

BreizhSpirit

Bon de toute manière tu m'as expliqué largement assez de truc pour que je puisse faire mes tests tranquillou. Merci encore wims


Cette discussion est classée dans : fin, whois, raw, attendre, loop


Répondre à ce message

Sujets en rapport avec ce message

raw did a /whois on you [ par wadamuffin ] Je suis admin sur un serveur irc, et je cherche a recevoir sur une fenetre active juste se message : [22:49:07] -irc.xxxxxx.xxx- *** Cupidon (betatest Réponse au raw 319 [ par babass ] Voila je voudrais que lors d'un whois dans la reponse au raw 319 (chans où est présent $nick) soit séparés les chans où il est op, halfop, voice et au Raw ? [ par Hikage ] Y a-t-il moyen d'envoye un message au server, pour qu'il renvoie seulement une seule ligne d'un whois.Je veux en fait, recuperer seulement l'idle time Whois problème $comchan [ par itzelien ] Salut,Après inspiration sur plusieurs whois , j'ai crée ceci:raw 311:*: {   echo -a $timestamp 3;12-3;4-3;7> 3;62; Whois2; 3;7  echo -a $timest Utiiser les raw sans whois [ par Corween ] 'soirCa fait quelques temps que je cherche si on peut utiliser les raw sans passer par un whois, je m'éxplique, j'aimerais faire un alias pour voir le raw tit souci :( [ par Soprano71 ] bonsoir voila mon raw ne me dit pas si le nick est reservé! qd je whois une personne il me dit nick non reservé pour toute les pseudo meme ceux resa : Raw 319 et couleurs [ par MJ92 ] Bonjour,Je me pose une petite question. J'ai fait ma raw 319 et j'aimerai remplacé les + @ % ~ pour les mettre en couleur...Voici mon code :raw 319:*: scan users [ par sylence89 ] bonjourvoila es t'il possible de faire ressortir une partie d un whois en notice je m explique;blabla est *********@mf-5D974227.rev.gaoland.net * eMul comment kicker mineur sur $chan adultes ? [ par freenaute ] Bonjour tout le monde.,je suis OP sur un salon irc et dont le topic précise que le $chan est dédié aux adultes..voici mon petit problème :quand un use whois [ par julie13 ] bonjourje suis opératrice sur un chan et je voudrais voir qui me whois, est ce possible et si oui comment faire. Merci


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales