IrX
Messages postés77Date d'inscriptionmardi 17 mars 2009StatutMembreDernière intervention19 février 2011
-
26 nov. 2009 à 17:25
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 2012
-
19 mars 2010 à 00:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 19 mars 2010 à 00:39
ok pas de brobleme bro :D
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 19 mars 2010 à 00:37
Non mais lol.
je comprend le français, si tu ne parles pas français, je ne comprend pas... ou du moins comme c'est du français mal écrit, je dois me forcer a comprendre, c'est pas fluide, je dois relire tes phrases etc, c'est ça qui est chiant.
Ce n'est pas a cause d'un manque d'explication ou que je n'ai pas compris techniquement quoi
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 19 mars 2010 à 00:16
t'es chian mec :D
t'es le seul a ne rien comprendre de ce que j'ecris :D
ok quand tu ne comprend pas grand chose demande moi je t'expliquerai encore plus pas de prob :p
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 19 mars 2010 à 00:11
Comme je te l'ai dit, je te disais ça en général, pas par rapport a ce que tu as dis sur $read.
Fait quand même l'effort de bien écrire alors, parce que c'est chiant de se forcer a lire.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 19 mars 2010 à 00:05
non Ga c'est pas ça c'est que je parle vite et je m'exprime mal des fois c'est tout :p
regarde mon 2eme post c'est de ça que je parlais tout a l'heure a propos de $read(fichier,w,qqchose)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 18 mars 2010 à 23:59
Non, je te disais ça en général...
Sinon, je veux bien accepter que tu est un anglais pas terrible (oui je te lis sur le forum de mirc :p) mais je sais pas si j'ai plus de mal a te lire en anglais ou en français ! fais un effort quoi stp !
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 18 mars 2010 à 23:38
Après presque 3 mois :)
j'ai jamais dis qu'un code plus court est plus efficace mais esque une loop "while" est mieux que $read(fichier,w,qqchose)?
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 18 mars 2010 à 22:45
WoldDMT : un code plus court n'est pas toujours plus efficace, tu sembles faire une fixette sur le fait d'avoir les codes les plus court possible.En revanche il est vrai qu'ici le code peut être raccourci...
Pour l'auteur :
Attention a l'utilisation de $$.
Dans tes boucle, il y a par ex des trucs comme :
mode # -e+b $$ini(configuration.ini,bliste,%k) $$ini(configuration.ini,bliste,%k)
Si $ini renvoi null, /halt est executer et ta boucle ne se finis pas (il y a plusieurs boucle ou tu fais ça) et tu bloques les autres evenements on join qui voudrait bien etre executer eux aussi
il est également completement débile de faire une gestion d'affichage en passant par le server (/notice, /msg), que se passe t-il si on conf l'addon sans être connecté, et dans l'autre sens, pourquoi faire passer la gestion d'erreur par le server ?
ça ne fera qu'afficher les erreurs en retard si on lag, et ça fait laguer le server
et je déconseille d'utiliser le file handling (/fopen etc) pour écrire dans un .ini, ce n'est pas pour rien qu'il y a des commandes prévus pour les .ini, la routine de /writeini n'est pas d'écrire betement ou de lire betement ($readini ou $ini), c'est plus complexe.
on !@*:join:#:{
comment on fait si on est halfop ?
j'ai regardé vite fait tes methodes de detection de #salon par ex, c'est a revoir il me semble, je crois que si je dis un simple #, je vais me faire ban.
Sinon, regarde du coté de /help /tokenize
qui va grandement amélioré la clarté de tes codes
Sinon quelque détail, quand il n'y a qu'une seul command après une condition, tu n'est pas obligé d'utiliser de { }, ceci augmente la vitesse d'execution
et quand tu fait une boucle, tu peux également augmenter la vitesse d'execution en ne ré-évaluant pas a chaque fois un $ident dans la boucle
du style
var %a 1
while (%a <= $numtok($1-,32)) { ... | inc %a }
deviens
var %a 1 ,%b $numtok($1-,32)
while (%a <= %b) { ... | inc %a }
et pour finir, on ne poste pas un code ici pour avoir un avis dessus, on le met sur le forum.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 28 déc. 2009 à 20:12
j'ai pas dis le contraire Vin
j'ai juste dis que c'est trop ptit pas si lourd quand meme
en tout cas je vois bien ce que tu dis
usurpateur
Messages postés9Date d'inscriptionjeudi 26 juin 2008StatutMembreDernière intervention24 janvier 2011 28 déc. 2009 à 16:02
Merci pour vos commentaires UAIP & WorldDMT
@Alfortville ce que tu demandes (de manière plus ou moins claire) peut se résoudre en utilisant une blacklist, mais de manière plus simple et sur le même principe tu peux créer un alias qui ajoute un mask dans un simple fichier (/write), un autre qui supprime le mask quand tu le désire et pour finir un "on unban" qui permet de récupérer le mask dé-banni et de le comparer avec $read à ceux que ton fichier contient... et remettre le ban avec les commandes spécifiques du bot dans ce cas là.
Bonne journée à tous
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 28 déc. 2009 à 14:39
Tu n'as pas compris.
Là tu as fait exactement ce que j'ai dit : 4 writeini, ce qui représente 4 ouvertures/fermetures du fichier. C'est extrêmement lourd. Alors qu'avec sa méthode /fopen, il n'ouvre le fichier qu'une fois, écrit TOUT, et referme le fichier, donc beaucoup plus rapide.
Pour faire simple, avec sa méthode :
- ouverture du fichier
- écriture des données
- fermeture du fichier
Avec ta méthode /writeini
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
Donc je maintiens mon "Non, il ne faut pas utiliser /writeini".
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 28 déc. 2009 à 13:43
oups j'ai fais une betise :p
alias clearbl {
.remini configuration.ini bliste
.write configuration.ini $+([,bliste,])
.writeini configuration.ini blackliste status on
.writeini configuration.ini blackliste masks $chr(160)
.writeini configuration.ini blackliste mode pv
.notice $me Blackliste effacée (et sur "activée", liste en "pv"), fichier réinitialisé.
unset %noticebl
}
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 28 déc. 2009 à 13:32
wé t'a raison j'ai dis UN SIMPLE WRITEINI pas qu un en tant que tel mais une façon de dire qu'il pouvait utiliser la methode stendar puisque c'est un fichier ini par exp:
alias clearbl {
.remini configuration.ini bliste
.writeini configuration.ini bliste
.writeini configuration.ini blackliste status on
.writeini configuration.ini blackliste masks $chr(160)
.writeini configuration.ini blackliste mode pv
.notice $me Blackliste effacée (et sur "activée", liste en "pv"), fichier réinitialisé.
unset %noticebl
}
mais bon c'est juste un avis il peut faire ce qui lui plai
@+
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 27 déc. 2009 à 22:18
Non,
Là avec une seule ouverture/fermeture du fichier, il écrit 2 sections et 3 items.
Il aurait donc fallut utiliser (si je ne dis pas de bêtise) 4 fois /writeini, et donc ouvrir/fermer 4 fois le fichier.
Si khaled offre la possibilité de manipuler les fichiers à un assez bas niveau, c'est pour éviter ce genre de chose.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 27 déc. 2009 à 22:10
d'ailleur il pouvait utilisé un simple writeini sans passé par tout ça mais bon il fait ce qu'il veux :)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 27 déc. 2009 à 02:53
Salut,
Pas grand chose à dire, j'aime bien ton alias clearbl. Mais qui a t-il de plus avantageux dans ce cas d'utiliser une suite de /fwrite plutôt qu'un /write (qui est aussi, je crois, adapté aux .ini) ? Surtout que tu ne contrôles pas le succès de /fopen.
Dans un esprit puriste, "taper" prend un 'p', et c'est mieux d'éviter le franglais ("BlackList" ou "Liste Noire", mais pas "BlackListe")
cs_Alfortville
Messages postés6Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 2009 5 déc. 2009 à 22:53
Bonjour
Pas mal les BL mais moi ce qui m'interesserais sur les Niubot de Orange.
Serais une remotte qui ban auto apres le debande Niubot.
je sais il en existe une mais sa reban tous les pseudos, moi j'aimerais savois sil existe une remote par pseudo, ou on bannerais derriere Niubot mais que un pseudo et pas les trois bannis par exemple
merci
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 3 déc. 2009 à 11:51
"si tu as une solution miracle je suis preneur :)"
pas besoin de miracle c'est juste a regarder les ptit truc de plus comme au passage de ce sujet regarde la condition dans la ligne 50 "if ( %noticebl == on )" tu set la variable ensuite tu met une condition qui est tjr $true !!
pour "le fichier peut très bien contenir *pseudo*"
ça c'est dejà un anti-badnicks, le ban est (normalement) sur le host pas sur le pseudo mais bon j'ai pas mIRC ici je vais te montré que ça peut se reduire sans miracle
@+
usurpateur
Messages postés9Date d'inscriptionjeudi 26 juin 2008StatutMembreDernière intervention24 janvier 2011 30 nov. 2009 à 18:57
Ok pour les "!$1", "!= $false", "== $true" et "!= 0" en trop.
Pour l'utilisation d'alias, c'est plus lent et pénible de tapper "/addbl" plutôt que "!addbl" mais le code autorise les 2 (à peu près)
"ça peut etre plus simple et plus court": si tu as une solution miracle je suis preneur :)
$wildsite = *!*@hôte
le fichier peut très bien contenir *pseudo*
Toute la suite de ton commentaire permet de simplifier le code mais ne donne pas le même résultat donc je ne change pas, merci quand même
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 29 nov. 2009 à 22:57
oups dsl je retire l'ajout de du 2eme %mask
laisse comme elle est et le code est:
on !@*:join:#:{
if ($readini(configuration.ini,blackliste,status) == on) && ($ini(configuration.ini,bliste,0)) {
if ($readini(configuration.ini,bliste,$wildsite)) ban -k # $nick $v1
}
}
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 29 nov. 2009 à 22:53
Salut
j'ai vite regarder et je pense que ça peut etre plus simple et plus court et pour le niveau inité je pense pas
au passage "&& $ini(configuration.ini,bliste,0) != 0" tu peut retirer le "!= 0" je pense
pourquoi utiliser ON INPUT tan que c'est toi meme qui posede le code tu peux faire une alias
au passage je pense que "if ( $isfile(configuration.ini) == $false ) { clearbl }" peut devenir "if (!$isfile(configuration.ini)) { clearbl }"
et je vois "if ( !$1 || !$2 || $chr(35) isin $2 )" a ton avis si $1 n'existe pas, $2 existerait? sauf si $1 = 0 dans ce cas
bref tu peux bien utilisé les ini files sans une loop while comme par exp pour le ON JOIN:
pour le addbl tu ajoute un %mask qui devient writeini configuration.ini bliste %mask %mask %raison $asctime(HH:nn-dd/mm/yy) ensuite pour le code:
on !@*:join:#:{
if ($readini(configuration.ini,blackliste,status) == on) && ($ini(configuration.ini,bliste,0)) {
if ($readini(configuration.ini,bliste,$wildsite)) ban -k $v1
}
}
a toi de voir le reste
usurpateur
Messages postés9Date d'inscriptionjeudi 26 juin 2008StatutMembreDernière intervention24 janvier 2011 27 nov. 2009 à 12:32
Bonjour,
pour le principe, 'le dialogue ou non' est un choix personnel, je préfère les raccourcis clavier pour gérer ce genre de choses :)
Je me suis inspiré du fonctionnement d'une black liste d'egg et avec très peu de modifications, ce script pourrait être intégré à un bot de gestion de salon sous mirc.
IrX
Messages postés77Date d'inscriptionmardi 17 mars 2009StatutMembreDernière intervention19 février 2011 26 nov. 2009 à 17:25
bonsoir,
j'aime beaucoup même si c'est du vue et revue comme blackliste.Pourquoi pas faire un système de dialogue ou fenêtre @blackliste pour géré les blacklister ect.. sa serais une idée ?
19 mars 2010 à 00:39
19 mars 2010 à 00:37
je comprend le français, si tu ne parles pas français, je ne comprend pas... ou du moins comme c'est du français mal écrit, je dois me forcer a comprendre, c'est pas fluide, je dois relire tes phrases etc, c'est ça qui est chiant.
Ce n'est pas a cause d'un manque d'explication ou que je n'ai pas compris techniquement quoi
19 mars 2010 à 00:16
t'es le seul a ne rien comprendre de ce que j'ecris :D
ok quand tu ne comprend pas grand chose demande moi je t'expliquerai encore plus pas de prob :p
19 mars 2010 à 00:11
Fait quand même l'effort de bien écrire alors, parce que c'est chiant de se forcer a lire.
19 mars 2010 à 00:05
regarde mon 2eme post c'est de ça que je parlais tout a l'heure a propos de $read(fichier,w,qqchose)
18 mars 2010 à 23:59
Sinon, je veux bien accepter que tu est un anglais pas terrible (oui je te lis sur le forum de mirc :p) mais je sais pas si j'ai plus de mal a te lire en anglais ou en français ! fais un effort quoi stp !
18 mars 2010 à 23:38
j'ai jamais dis qu'un code plus court est plus efficace mais esque une loop "while" est mieux que $read(fichier,w,qqchose)?
18 mars 2010 à 22:45
Pour l'auteur :
Attention a l'utilisation de $$.
Dans tes boucle, il y a par ex des trucs comme :
mode # -e+b $$ini(configuration.ini,bliste,%k) $$ini(configuration.ini,bliste,%k)
Si $ini renvoi null, /halt est executer et ta boucle ne se finis pas (il y a plusieurs boucle ou tu fais ça) et tu bloques les autres evenements on join qui voudrait bien etre executer eux aussi
il est également completement débile de faire une gestion d'affichage en passant par le server (/notice, /msg), que se passe t-il si on conf l'addon sans être connecté, et dans l'autre sens, pourquoi faire passer la gestion d'erreur par le server ?
ça ne fera qu'afficher les erreurs en retard si on lag, et ça fait laguer le server
et je déconseille d'utiliser le file handling (/fopen etc) pour écrire dans un .ini, ce n'est pas pour rien qu'il y a des commandes prévus pour les .ini, la routine de /writeini n'est pas d'écrire betement ou de lire betement ($readini ou $ini), c'est plus complexe.
on !@*:join:#:{
comment on fait si on est halfop ?
j'ai regardé vite fait tes methodes de detection de #salon par ex, c'est a revoir il me semble, je crois que si je dis un simple #, je vais me faire ban.
Sinon, regarde du coté de /help /tokenize
qui va grandement amélioré la clarté de tes codes
Sinon quelque détail, quand il n'y a qu'une seul command après une condition, tu n'est pas obligé d'utiliser de { }, ceci augmente la vitesse d'execution
et quand tu fait une boucle, tu peux également augmenter la vitesse d'execution en ne ré-évaluant pas a chaque fois un $ident dans la boucle
du style
var %a 1
while (%a <= $numtok($1-,32)) { ... | inc %a }
deviens
var %a 1 ,%b $numtok($1-,32)
while (%a <= %b) { ... | inc %a }
et pour finir, on ne poste pas un code ici pour avoir un avis dessus, on le met sur le forum.
28 déc. 2009 à 20:12
j'ai juste dis que c'est trop ptit pas si lourd quand meme
en tout cas je vois bien ce que tu dis
28 déc. 2009 à 16:02
@Alfortville ce que tu demandes (de manière plus ou moins claire) peut se résoudre en utilisant une blacklist, mais de manière plus simple et sur le même principe tu peux créer un alias qui ajoute un mask dans un simple fichier (/write), un autre qui supprime le mask quand tu le désire et pour finir un "on unban" qui permet de récupérer le mask dé-banni et de le comparer avec $read à ceux que ton fichier contient... et remettre le ban avec les commandes spécifiques du bot dans ce cas là.
Bonne journée à tous
28 déc. 2009 à 14:39
Là tu as fait exactement ce que j'ai dit : 4 writeini, ce qui représente 4 ouvertures/fermetures du fichier. C'est extrêmement lourd. Alors qu'avec sa méthode /fopen, il n'ouvre le fichier qu'une fois, écrit TOUT, et referme le fichier, donc beaucoup plus rapide.
Pour faire simple, avec sa méthode :
- ouverture du fichier
- écriture des données
- fermeture du fichier
Avec ta méthode /writeini
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
- ouverture du fichier
- écriture d'une donnée
- fermeture du fichier
Donc je maintiens mon "Non, il ne faut pas utiliser /writeini".
28 déc. 2009 à 13:43
alias clearbl {
.remini configuration.ini bliste
.write configuration.ini $+([,bliste,])
.writeini configuration.ini blackliste status on
.writeini configuration.ini blackliste masks $chr(160)
.writeini configuration.ini blackliste mode pv
.notice $me Blackliste effacée (et sur "activée", liste en "pv"), fichier réinitialisé.
unset %noticebl
}
28 déc. 2009 à 13:32
alias clearbl {
.remini configuration.ini bliste
.writeini configuration.ini bliste
.writeini configuration.ini blackliste status on
.writeini configuration.ini blackliste masks $chr(160)
.writeini configuration.ini blackliste mode pv
.notice $me Blackliste effacée (et sur "activée", liste en "pv"), fichier réinitialisé.
unset %noticebl
}
mais bon c'est juste un avis il peut faire ce qui lui plai
@+
27 déc. 2009 à 22:18
Là avec une seule ouverture/fermeture du fichier, il écrit 2 sections et 3 items.
Il aurait donc fallut utiliser (si je ne dis pas de bêtise) 4 fois /writeini, et donc ouvrir/fermer 4 fois le fichier.
Si khaled offre la possibilité de manipuler les fichiers à un assez bas niveau, c'est pour éviter ce genre de chose.
27 déc. 2009 à 22:10
27 déc. 2009 à 02:53
Pas grand chose à dire, j'aime bien ton alias clearbl. Mais qui a t-il de plus avantageux dans ce cas d'utiliser une suite de /fwrite plutôt qu'un /write (qui est aussi, je crois, adapté aux .ini) ? Surtout que tu ne contrôles pas le succès de /fopen.
Dans un esprit puriste, "taper" prend un 'p', et c'est mieux d'éviter le franglais ("BlackList" ou "Liste Noire", mais pas "BlackListe")
5 déc. 2009 à 22:53
Pas mal les BL mais moi ce qui m'interesserais sur les Niubot de Orange.
Serais une remotte qui ban auto apres le debande Niubot.
je sais il en existe une mais sa reban tous les pseudos, moi j'aimerais savois sil existe une remote par pseudo, ou on bannerais derriere Niubot mais que un pseudo et pas les trois bannis par exemple
merci
3 déc. 2009 à 11:51
pas besoin de miracle c'est juste a regarder les ptit truc de plus comme au passage de ce sujet regarde la condition dans la ligne 50 "if ( %noticebl == on )" tu set la variable ensuite tu met une condition qui est tjr $true !!
pour "le fichier peut très bien contenir *pseudo*"
ça c'est dejà un anti-badnicks, le ban est (normalement) sur le host pas sur le pseudo mais bon j'ai pas mIRC ici je vais te montré que ça peut se reduire sans miracle
@+
30 nov. 2009 à 18:57
Pour l'utilisation d'alias, c'est plus lent et pénible de tapper "/addbl" plutôt que "!addbl" mais le code autorise les 2 (à peu près)
"ça peut etre plus simple et plus court": si tu as une solution miracle je suis preneur :)
$wildsite = *!*@hôte
le fichier peut très bien contenir *pseudo*
Toute la suite de ton commentaire permet de simplifier le code mais ne donne pas le même résultat donc je ne change pas, merci quand même
29 nov. 2009 à 22:57
laisse comme elle est et le code est:
on !@*:join:#:{
if ($readini(configuration.ini,blackliste,status) == on) && ($ini(configuration.ini,bliste,0)) {
if ($readini(configuration.ini,bliste,$wildsite)) ban -k # $nick $v1
}
}
29 nov. 2009 à 22:53
j'ai vite regarder et je pense que ça peut etre plus simple et plus court et pour le niveau inité je pense pas
au passage "&& $ini(configuration.ini,bliste,0) != 0" tu peut retirer le "!= 0" je pense
pourquoi utiliser ON INPUT tan que c'est toi meme qui posede le code tu peux faire une alias
au passage je pense que "if ( $isfile(configuration.ini) == $false ) { clearbl }" peut devenir "if (!$isfile(configuration.ini)) { clearbl }"
et je vois "if ( !$1 || !$2 || $chr(35) isin $2 )" a ton avis si $1 n'existe pas, $2 existerait? sauf si $1 = 0 dans ce cas
bref tu peux bien utilisé les ini files sans une loop while comme par exp pour le ON JOIN:
pour le addbl tu ajoute un %mask qui devient writeini configuration.ini bliste %mask %mask %raison $asctime(HH:nn-dd/mm/yy) ensuite pour le code:
on !@*:join:#:{
if ($readini(configuration.ini,blackliste,status) == on) && ($ini(configuration.ini,bliste,0)) {
if ($readini(configuration.ini,bliste,$wildsite)) ban -k $v1
}
}
a toi de voir le reste
27 nov. 2009 à 12:32
pour le principe, 'le dialogue ou non' est un choix personnel, je préfère les raccourcis clavier pour gérer ce genre de choses :)
Je me suis inspiré du fonctionnement d'une black liste d'egg et avec très peu de modifications, ce script pourrait être intégré à un bot de gestion de salon sous mirc.
26 nov. 2009 à 17:25
j'aime beaucoup même si c'est du vue et revue comme blackliste.Pourquoi pas faire un système de dialogue ou fenêtre @blackliste pour géré les blacklister ect.. sa serais une idée ?