#informatique Bot Logged User list

Network: Zeolia
Modes: +nrt
Last Seen: 51 minutes ago
Topic: Canal d'aide informatique - Développement / Web / Windows - Pour les questions linux, rejoindre #linux
#3
Rank
11
Users

Channel Log Archive for #informatique

Prev
Next

* All times are UTC
Wednesday, June 22, 2022
[02:58:10] * Amand quit (Quit: Connection closed for inactivity)
[02:59:03] * Artus set mode +l 7
[09:42:57] * Amand joined #informatique
[09:42:57] * [Guru] set mode +h Amand
[09:43:02] * Artus set mode +l 8
[09:51:24] % Amand hello
[09:56:29] % Amand ok pour chanaccess
[10:17:19] % Amand j'ai une table https://imgur.com/nW0T3Nr.png
[10:18:05] % Amand je veux supprimer toutes les lignes qui ont un nick et username identique , je trouve pas de requête de ce type
[10:36:55] @ CrazyCat delete from table where nick=username ?
[10:42:03] % Amand c'est tout ? je voyais la condition plus complexe
[10:42:27] @ CrazyCat Pourquoi faire compliqué ?
[10:42:49] % Amand xD
[10:43:27] @ CrazyCat Pour chanaccessfilter, tu as testé tout de même de ne pas avoir d'asv et d'attendre le délai de retest ?
[10:44:07] @ CrazyCat Le principe que j'ai mis en place c'est : si pas d'asv, on informe l'utilisateur et on attends un certain délai pour qu'il puisse faire son setname
[10:44:19] @ CrazyCat Passé le délai, on recheck
[10:44:21] % Amand merci pour la requête , dès fois je réfléchis trop loin
[10:44:48] % Amand oui c'est bon
[10:45:11] % Amand j'en ai profité pour regarder comment tu as fait l'ensemble
[10:46:42] @ CrazyCat Mais il faut que je le refasse parce qu'il y a un biais quand l'utilisateur est sur plusieurs canaux où caf est actif
[10:47:15] @ CrazyCat Ma "mémoire" est gérée de manière globale et devrait l'être par canal
[10:49:50] % Amand ah oui j'avais une question
[10:50:04] % Amand tu as l'oeil aiguisé , tu pourras peut être comprendre
[10:50:17] % Amand la je connecte des users en boucle pour tester
[10:50:24] % Amand et par moment il me dit à répétition :
[10:50:39] % Amand [02:27:11] Tcl error [::checkpays::who:gestion]: can't read "::checkpays::DB(74f64dba45cba01301d8384f8d5fa98b,IP)": no such element in array
[10:50:48] % Amand même si j'ai l'impression que ça fonctionne quand même
[10:52:48] % Amand j'essaye de voir un peu le pourquoi du comment
[10:53:34] @ CrazyCat ajoute un putlog "$nick => $SESSION" après avoir fait ton set SESSION
[10:54:56] @ CrazyCat (dans les 2 proc who:co et who:gestion
[10:54:58] @ CrazyCat )
[10:58:53] % Amand c'est bon je reçois bien la bonne session dans les deux proc je vais continué à connecter pour ressortir l'erreur
[11:07:07] @ CrazyCat Tu connectes chaque fois des nicks différents ?
[11:07:26] % Amand j'ai compris , tout à l'heure j'avais une condition
[11:07:34] % Amand if {[verify:b $::checkpays::fichier(pseudo) $nick] || [verify:b $::checkpays::fichier(ip) $ip]} {
[11:07:34] % Amand putlog "exception nick ou ip"
[11:07:34] % Amand return
[11:07:34] % Amand }
[11:07:45] % Amand dans la proc de traitement
[11:08:09] % Amand du coup quand je me connectais avec mon ip , il entre dans la condition et fait un return
[11:08:19] % Amand il ne continue pas la proc pour faire les unset
[11:08:44] % Amand je vais mettre les unset aussi dans la condition
[11:09:05] @ CrazyCat Heu...
[11:09:18] % Amand non ? :x
[11:09:28] @ CrazyCat Ta condition elle est sur quoi ?
[11:09:41] @ CrazyCat le nick et l'ip ?
[11:09:44] % Amand oui
[11:10:13] @ CrazyCat Donc elle doit être dans ::checkpays::who:co juste avant le set SESSION
[11:10:36] % Amand enfaite là j'ai plus l'erreur et les putlog me retourne une session identique
[11:11:03] % Amand oui mais dans ma logique c'était :
[11:11:34] % Amand - l'user se connecte on récupère toutes ses infos , on mets ceux en mémoire qu'on ne peut pas récupérer dans le who
[11:11:38] % Amand - je fais un who
[11:11:58] % Amand - dans le bind raw du who , on récupère le realname
[11:12:15] % Amand - on envoie à la proc du traitement si il match un pays indésirable on sanctionne
[11:12:34] % Amand - et on envoie aussi à la proc monitoring qui va mettre en base de donnée les informations
[11:13:00] @ CrazyCat Et elle est où ton exeption ?
[11:13:11] % Amand donc ma condition de l'except doit se faire dans le traitement pour ne pas envoyer des users banni dans la proc monitoring
[11:14:36] % Amand ah mais attends je test un truc
[11:14:44] @ CrazyCat Hum, je ne comprends pas à quoi sert ton exception en fait. Pour moi, c'était pour des utilisateurs (pseudo ou ip) que tu ne veux pas test
[11:14:53] @ CrazyCat tester*
[11:15:39] % Amand oui c'est ça
[11:15:51] @ CrazyCat Ben si tu ne veux pas les tester:
[11:16:11] @ CrazyCat - l'user se connecte on récupère toutes ses infos, s'il est dans les exeptions, on sort
[11:16:30] @ CrazyCat - s'il n'y est pas, on fait la suite
[11:16:53] @ CrazyCat si l'utilisateur est réputé fiable, pourquoi faire un /who ?
[11:17:33] % Amand c'est vrai , je réfléchis mais tu as raison
[11:18:06] @ CrazyCat Tu as la même logique dans chanaccessfilter
[11:18:32] @ CrazyCat les 3 premières lignes de la proc whoisuser, c'est les exceptions
[11:19:35] @ CrazyCat brb
[11:24:47] % Amand oui tu as raison, j'ai mis la condition dans la connection
[11:37:10] % Amand ok donc j'aurai un problème ici
[11:37:32] % Amand quand il entre dans la condition, il fait un return , il ne va pas faire le unset
[11:37:48] % Amand même si ça fonctionne, il unset pas la variable et c'est ce qui renvoie l'erreur je pense
[11:38:32] @ CrazyCat Oki, là je comprends
[11:41:10] @ CrazyCat Après, je trouve que tu te prends bien la tête avec tes 5 lignes de (un)set
[11:42:06] @ CrazyCat C'est clairement le cas où l'utilisation d'un dict te simplifierai le code
[11:51:23] % Amand je suis entrain de faire des modif et je remets les conditions qui me posait problème dans l'algo
[11:57:44] % Amand donc là dans le else je vais faire appel à la procédure du monitoring
[11:58:15] % Amand mais en dessous j'ai une autre condition pour vérifier si pays n'est pas vide et hors liste interdit et exception
[11:59:18] @ CrazyCat Ben mets ta condition au dessus
[11:59:44] @ CrazyCat Ou bien ça n'est pas une exception
[11:59:44] % Amand j'ai pas réussi à l'intégrer dans les autres conditions
[11:59:51] % Amand problème d'algo dans ma petite tête
[11:59:59] @ CrazyCat Je crois aussi
[12:00:29] @ CrazyCat Déjà, tu as doublé ([lsearch $::checkpays::PAYSINTERDIT $codepays] != -1)
[12:01:08] @ CrazyCat C'est ta première condition de la proc et c'est aussi dans ce qui se passe après le $codepays ne ""
[12:02:13] @ CrazyCat Tu devrais écrire ton algo en bon français, et ensuite le traduire en script
[12:03:40] @ CrazyCat Petit commentaire en passant: set ::checkpays::PAYSINTERDIT [list "US" "RU"] <-- pourquoi passer par un [list ...] ?
[12:03:50] @ CrazyCat set ::checkpays::PAYSINTERDIT {"US" "RU"}
[12:04:49] % Amand j'ai crée différente liste , avec des codes pays
[12:04:54] % Amand dans ma première condition :
[12:04:55] % Amand if { [lsearch $::checkpays::PAYSINTERDIT $codepays] != -1 } {
[12:05:18] % Amand on sanctionne
[12:05:25] % Amand ( j'écris pour moi là wait )
[12:05:38] % Amand } elseif {([lsearch $::checkpays::PAYSINTERDITNWSI $codepays] != -1) && ($webirc == 0) && ($reputation < 10)} {
[12:05:53] % Amand on sanctionne
[12:06:04] % Amand } elseif {([lsearch $::checkpays::PAYSINTERDITNW $codepays] != -1) && ($webirc == 0)} {
[12:06:06] % Amand on sanctionne
[12:06:27] % Amand sinon on envoie à la proc monitoring
[12:06:46] % Amand jusqu'ici c'est bon
[12:07:00] @ CrazyCat Tu es sûre ?
[12:07:24] @ CrazyCat Tu monitores aussi ceux qui sont dans PAYSEXCEPTION ?
[12:07:33] @ CrazyCat Si oui, à quoi sert cette liste ?
[12:07:46] % Amand elle sert pour ma seconde condition
[12:08:30] % Amand pour qu'il match les pays qui ne sont pas dans les exceptions , pas vide et hors des listes interdit
[12:08:30] @ CrazyCat Ok, alors ta 2ème condition peut se réduire à ([lsearch $::checkpays::PAYSEXCEPTION $codepays] != -1)
[12:09:24] @ CrazyCat Vu que les 3 autres t'ont déjà fait sortir de la proc (en fonction de la réputation et du web)
[12:10:16] @ CrazyCat Ta dernière condition, elle ne sert qu'à dire que c'est potentiellement suspect ?
[12:10:22] % Amand oui
[12:10:45] % Amand si elle n'est pas dans la liste des exceptions et des interdits et vide
[12:11:41] @ CrazyCat Ca ne me semble pas bien logique en fait
[12:12:00] % Amand je t'explique :
[12:12:36] @ CrazyCat un BN qui ne vient pas par le webbirc est sanctionné mais s'il vient par le webirc il n'est même pas suspect ?
[12:12:36] % Amand dans ma condition du traitement, je voulais faire des conditions pour match différent cas
[12:13:04] % Amand mais aussi le cas ou justement, si il ne match rien dans les interdit et dans ma liste d'exception et que le pays n'est pas vide
[12:13:15] % Amand là il va juste avertir
[12:13:29] % Amand hm
[12:13:34] % Amand je réfléchis
[12:13:56] @ CrazyCat Essaye de poser par écrit ce que tu veux faire sans penser au code
[12:14:03] % Amand oui voila c'est ça
[12:14:21] % Amand un BN qui ne vient pas par le webirc est sanctionné parce que c'est la condition que je pose
[12:14:26] % Amand si il vient par le webirc c'est ok
[12:16:40] @ CrazyCat Bon, je reprends pour être sûr de moi
[12:16:52] @ CrazyCat Tes conditions de sanction sont ok pour moi
[12:17:19] @ CrazyCat Maintenant, qu'est ce qui est suspect ?
[12:17:46] @ CrazyCat -> un utilisateur avec un pays indiqué et qui n'est pas dans PAYSEXCEPTION
[12:17:53] % Amand quand il n'y a pas de codepays / pas dans la liste des exceptions / pas dans la liste des interdits
[12:18:42] % Amand en gro si il est présent dans aucune des listes
[12:19:09] @ CrazyCat -> un utilisateur qui n'est d'aucun pays listé dans les interdits (avec ou sans condition)
[12:20:25] % Amand oui
[12:21:16] @ CrazyCat Bon, y'a moyen d'optimiser un peu je pense
[12:28:51] @ CrazyCat Pour simplifier je crée la liste ALLEXCEPTIONS qui est la concaténation des 4 listes de pays
[12:35:56] % Amand il me retourne les pays en exception comme suspect
[12:36:10] % Amand if {$codepays ne "" && [lsearch $ALLEXCEPTIONS $codepays]!=-1} {
[12:36:28] @ CrazyCat au temps pour moi: ==-1
[13:02:08] % Amand c'est beaucoup mieux merci
[13:02:16] % Amand nettement plus clair
[13:02:57] @ CrazyCat De rien
[13:44:12] % Amand donc là si je met une condition après l'appel de ma proc traitement , elle va être traité même si il y a une sanction parce qu'il y a aucun return , je pense qu'il faut que je set une variable quand j'entre dans la condition d'une sanction
[13:44:32] % Amand et que je fasse une condition plus bas si $variable = 1 on fait un return
[13:44:52] % Amand je set une variable 1*
[13:45:51] % Amand mets* traitée*
[13:48:48] % Amand de ce style :
[13:51:27] % Amand comme ça si je mets des conditions après l'appel de la proc traitement elles ne seront pas traitée
[14:02:23] @ CrazyCat Je te conseille de faire un set sanction 0 en début de proc
[15:02:51] * CrazyCat is now known as CrazyCat[AFK]
[16:10:29] * CrazyCat[AFK] is now known as CrazyCat
[18:43:57] * CrazyCat is now known as CrazyCat[AFK]
Prev
Next