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 !

Sujet : Attendre que /whois se termine [ Scripting / Général ] (BreizhSpirit)

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é 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:*: 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 code [ par julie13 ] BonjourJe n'arrive pas à retirer le fond sur une partie de mon message , je vous donne ce que j'ai fait3;3°.o·o3;4.o°.°·.o3;10°o.o°.°3;13·.o°·.o3 /RAW NOTICE $*.* : [ par doob666 ] /notall /RAW NOTICE $*.* :voila je voulais faire un addons pour envoyer des notice server a tous le monde, mais le problème c'est que je n'arrive pas


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,328 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é.