Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Service Bot
#31
oui j'ai bien effectuer un rehash du serveur:

Loading IRCd configuration.. à 15:59:44 le 25/09/2020
Configuration loaded without any problems. à 15:59:44 le 25/09/2020

ensuite niveau Log Server:

[Fri Sep 25 15:56:48 2020] - Connect - Bot!Service@******.fr [VHOST 1702062C.43C37351.B8EDA72D.IP]
[Fri Sep 25 15:59:40 2020] - Loading IRCd configuration..
[Fri Sep 25 15:59:40 2020] - Configuration loaded without any problems.

je n'est aucune trace du Link dans les logs
Sa sert à rien d'avoir un bon PC, si y'a un âne devant.
#32
Je termine d'ici 30 minutes, peut-tu joindre ton serveur irc par mp.

Sa sera plus rapide, et je ferait un c/c de la conversation plus tard ici
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#33
aliasangelius a atteint son quota de messages privés donc votre message ne peut lui être délivré.
Sa sert à rien d'avoir un bon PC, si y'a un âne devant.
#34
Oui j'avais oublier trop de mp lol

C'est bon tu peut envoyé désoler :)
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#35
Yop Kikouu,

Pour résumé: Tu veux créer avec un eggdrop et du TCL un Service IRC pour la gestion des salons sur ton serveur IRC ? (SANS ANOPE)
L'eggdrop doit ce connecté -avec un socket- comme LINK SERVICE au IRC et permettre plusieurs choses :

1.1) L'utilisateur -enregistrer- peut créer un salon où il sera operateur/owner via une commande
1.2) Lors de la demande de création d'un salon, celle-ci doit être approuver par un operateur irc (ircop) via une commande.

2.1) Un robot rejoindra le salon de l'utilisateur
2.2) L'utilisateur peut demander un nom spécifique pour le robot qui ce trouvera sur son salon ?
2.3.1) le robot repondra aux "fantasy" commandes telles que : !op, !halfop, !kick, etc
2.3.2) Certaines commandes seront restrient seulement au créateur du salon, seul lui pourra l'utiliser (vérifier par son enregistrement)


Comme dit par CrazyCat il semblerai que quelques chose de similaire existe déjà nommé Eva/Léa .. script sans MySQL serveur.

Si toute fois, le but est réinventé quelques choses existant :

-Base SQL sans installation serveur :'SQLITE'
Il s'agit d'une bibliothèque de logiciels qui implémente un moteur de base de données SQL transactionnel autonome , sans serveur et sans configuration

- un connexion d'un robot via un link sur un serveur de Type UnrealIRCd : http://www.ircz.fr/viewtopic.php?id=1417
- une connexion LINK avec un serveur InspIRCd 1.2.x/ 2.0.x : http://www.ircz.fr/viewtopic.php?id=1474

- Manipulation avec des fichier https://wiki.eggdrop.fr/Utilisation_des_fichiers

Apres tout, peut-être que ceci t'etre utile : http://pkzm62.free.fr/tcl/dl.htm


J'espère avoir fais avancé la chose
Retrouvez les dernières modifications de mes scripts TCL (versions Alpha/Bêta) ainsi que d'autres de mes réalisations sur ma page GitHub et les versions stables dans la section scripts de ce site  8-)
#36
Bonjour,

@ZarTek Non c'est pas un Service IRC, comme il la dit au début "Service prêt de Bot", c'est différent.

Un utilisateur ne peut pas créer de salon et poser le bot dessus, exemple ya des personnes etc.. tu débarque et tu pose le bot comme ça.. Niveau sécu c'est pas ouf.

En effet une commande pourra être tapez et sera validez par un Responsable du Robot.

Demander un nom de robot spécifique non..

Quote:Comme dit par CrazyCat il semblerai que quelques chose de similaire existe déjà nommé Eva/Léa .. script sans MySQL serveur.

Si toute fois, le but est réinventé quelques choses existant :

Depuis quand Eva/Lea et un Service pour les utilisateurs sans accès propre au server ?
Petit Rappel tout de même :

Eva Est un complément des service irc, Il sert notamment pour les Géofront/Ircorp/Admin. Mais en aucun cas c'est pour des utilisateur.
Les commandes op/deop etc dedans sont juste futile et ils se sont perdus dans le but principal de ceci.

Lea et aussi de base un complément de Eva.

Quote:Apres tout, peut-être que ceci t'etre utile : http://pkzm62.free.fr/tcl/dl.htm

Oui c'est dans ce but là, mais dans un premier temps sans Link.
Ce sera un Service Bot, avec un owner de salon puis des personnes moins gradé.
Bien évidamment des admins du bot etc, le tout par gestion de fichier dans l'exemple de ce qui sera mis en place, mais pas terminé donne ceci :


tcl
putlog "Chargement de IriX Version Eggdrop ..."
set cs::time [time {
namespace eval cs {
  source [file join scripts CSconfig.tcl]
  source [file join scripts CSoutils.tcl]
}
 
########################################################
 
bind msg - csauth cs::csauth
bind msg - auth cs::auth
bind msg - adminreg cs::adminreg
bind msg - delchan cs::delchan
bind msg - adduser cs::adduser
bind msg - deluser cs::deluser
bind msg - addadmin cs::addadmin
bind msg - deladmin cs::deladmin
bind msg - version cs::version
bind msg - csadmin cs::csadmin
bind msg - rehash cs::rehash
bind msg - restart cs::restart
bind msg - chanlist cs::chanlist
bind msg - newpass cs::newpass
 
bind pub - [set cs::char]delchan cs::Pdelchan
bind pub - [set cs::char]deluser cs::Pdeluser
bind pub - [set cs::char]deladmin cs::Pdeladmin
bind pub - [set cs::char]version cs::Pversion
bind pub - [set cs::char]csadmin cs::Pcsadmin
bind pub - [set cs::char]rehash cs::Prehash
bind pub - [set cs::char]restart cs::Prestart
bind pub - [set cs::char]chanlist cs::Pchanlist
 
autobind - op cs::op
autobind - deop cs::deop
autobind - voice cs::voice
autobind - devoice cs::devoice
autobind - access cs::access
autobind - alist cs::alist
autobind - kick cs::kick
autobind - info cs::infoline
autobind - ban cs::ban
autobind - kickban cs::kickban
autobind - unban cs::unban
autobind - clearbans cs::clearbans
autobind - banlist cs::banlist
autobind - strictop cs::strictop
autobind - strictmodes cs::strictmodes
autobind - lockmodes cs::lockmodes
autobind - locktopic cs::locktopic
autobind - autoops cs::autoops
autobind - setvoice cs::setvoice
autobind - noop cs::noop
autobind - noban cs::noban
autobind - voiceall cs::voiceall
autobind - devoiceall cs::devoiceall
autobind - opall cs::opall
autobind - deopall cs::deopall
autobind - mode cs::mode
autobind - defmodes cs::defmodes
autobind - rdefmodes cs::rdefmodes
autobind - clearmodes cs::clearmodes
autobind - say cs::say
autobind - do cs::do
autobind - topic cs::topic
autobind - deftopic cs::deftopic
autobind - rdeftopic cs::rdeftopic
autobind - rdefaults cs::rdefaults
autobind - moderate cs::moderate
autobind - chaninfo cs::chaninfo
autobind - showcommands cs::showcommands
autobind - bantimeout cs::bantimeout
autobind - banlevel cs::banlevel
autobind - chmodeslevel cs::chmodeslevel
autobind - addmask cs::addmask
autobind - delmask cs::delmask
 
 
########################################################
 
proc cs::newpass {nick host hand arg} {
 variable level
 variable chan-data
  set chan [string tolower [lindex $arg 0]]
  if {[getlevel [nick2hand $nick $chan] $chan]<$level(newpass)} {
    putquick "NOTICE $nick :Accès refusé."
    dolog 0 newpass "$nick@[nick2hand $nick $chan] $chan"
    return
  }
  if {[llength $arg]!=3} {
    putquick "NOTICE $nick :Syntaxe: /msg $::botnick NEWPASS <#salon> <ancien mot de passe> <nouveau mot de passe>"
    return
  }
  set hpass [lindex $arg 1]
  set npass [lindex $arg 2]
  if {[string length $npass]<6} {
    putserv "NOTICE $nick :Le mot de passe doit contenir au moin 6 caractères."
    return
  }
  set x 0
  foreach d [set chan-data($chan)] {
    if {[lindex $d 0]=="ACCESS" && [stgcomp [lindex $d 1] [nick2hand $nick $chan]]} {
      if {[lindex $d 2]!=$hpass} {
        putserv "NOTICE $nick :Ancien mot de passe incorect."
        return
      }
      lset chan-data($chan) $x [join [lreplace [lindex [set chan-data($chan)] $x] 2 2 $npass]]
      putserv "NOTICE $nick :Votre mot de passe a été changé."
      dolog 1 newpass "$nick@[nick2hand $nick $chan] $chan"
      return
    }
    incr x
  }
  putserv "NOTICE $nick :Utilisateur inconnu."
}
 
proc cs::delmask {nick host hand chan arg} {
 variable level
 variable chan-data
  set chan [string tolower $chan]
  if {[getlevel [nick2hand $nick $chan] $chan]<$level(delmask)} {
    putquick "NOTICE $nick :Accès refusé."
    dolog 0 delmask "$nick@[nick2hand $nick $chan] $chan $arg"
    return
  }
  if {[llength $arg]!=2} {
    putquick "NOTICE $nick :Syntaxe: /msg $::botnick DELMASK <#salon> <pseudo> <host/mask>"
    return
  }
  set n [lindex $arg 0]
  set h [lindex $arg 1]
  if ![string match *!*@* $h] {
    putserv "NOTICE $nick :Mask invalide."
    return
  }
  set x 0
  set z 1
  foreach d [set chan-data($chan)] {
    if {[lindex $d 0]=="ACCESS" && [stgcomp $n [lindex $d 1]]} {
      set z 0
      set y 0
      foreach m $d {
        if [stgcomp $m $h] {
          lset chan-data($chan) $x [join [lreplace [lindex [set chan-data($chan)] $x] $y $y]]
          putserv "NOTICE $nick :Mask supprimé."
          dolog 1 delmask "$nick@[nick2hand $nick $chan] $chan $arg"
          return
        }
        incr y
      }
    }
    incr x
  }
  if $z {
    putserv "NOTICE $nick :Utilisateur inconnu."
  } else {
    putserv "NOTICE $nick :Mask inconnu."
  }
}
 
proc cs::addmask {nick host hand chan arg} {
 variable level
 variable chan-data
  set chan [string tolower $chan]
  if {[getlevel [nick2hand $nick $chan] $chan]<$level(addmask)} {
    putquick "NOTICE $nick :Accès refusé."
    dolog 0 addmask "$nick@[nick2hand $nick $chan] $chan $arg"
    return
  }
  if {[llength $arg]!=2} {
    putquick "NOTICE $nick :Syntaxe: /msg $::botnick ADDMASK <#salon> <pseudo> <host/mask>"
    return
  }
  set n [lindex $arg 0]
  set h [lindex $arg 1]
  if ![string match *!*@* $h] {
    putserv "NOTICE $nick :Mask invalide."
    return
  }
  if {[string length $h]<8} {
    putserv "NOTICE $nick :le mask est trop imprécis, minimum 8 caratères."
    return
  }
  set x 0
  foreach d [set chan-data($chan)] {
    if {[lindex $d 0]=="ACCESS" && [stgcomp $n [lindex $d 1]]} {
      foreach m [lrange $d 8 end] {
        if [hostcomp $m $h] {
          putserv "NOTICE $nick :Ce mask éxiste déjà."
          return
        }
      }
      lset chan-data($chan) $x [join [linsert [lindex [set chan-data($chan)] $x] end $h]]
      putserv "NOTICE $nick :Mask ajouté."
      dolog 1 addmask "$nick@[nick2hand $nick $chan] $chan $arg"
      return
    }
    incr x
  }
  putserv "NOTICE $nick :Utilisateur inconnu."
}
 
proc cs::chmodeslevel {nick host hand chan arg} {
 variable level
 variable chan-data
  set chan [string tolower $chan]
  if {[getlevel [nick2hand $nick $chan] $chan]<$level(chmodeslevel)} {
    putquick "NOTICE $nick :Accès refusé."
    dolog 0 chmodeslevel "$nick@[nick2hand $nick $chan] $chan $arg"
    return
  }
  if {[llength $arg]!=1 || ![string is digit $arg]} {
    putquick "NOTICE $nick :Syntaxe: /msg $::botnick CHMODESLEVEL <#salon> <level>"
    return
  }
  set x -1
  set a [set chan-data($chan)]
  while {$x<[llength $a]} {
    incr x
    if {[lindex $a $x 0]=="CHMODESLEVEL"} {
      lset chan-data($chan) $x 1 $arg
      putserv "NOTICE $nick :L'option à été modifiée."
      dolog 1 chmodeslevel "$nick@[nick2hand $nick $chan] $chan $arg"
      return
    }
  }
  lappend chan-data($chan) [list CHMODESLEVEL $arg]
  putserv "NOTICE $nick :L'option à été modifiée."
  dolog 1 chmodeslevel "$nick@[nick2hand $nick $chan] $chan $arg"
}
 
proc cs::banlevel {nick host hand chan arg} {
 variable level
 variable chan-data
  set chan [string tolower $chan]
  if {[getlevel [nick2hand $nick $chan] $chan]<$level(banlevel)} {
    putquick "NOTICE $nick :Accès refusé."
    dolog 0 banlevel "$nick@[nick2hand $nick $chan] $chan $arg"
    return
  }
  if {[llength $arg]!=1 || ![string is digit $arg]} {
    putquick "NOTICE $nick :Syntaxe: /msg $::botnick BANLEVEL <#salon> <level>"
    return
  }
  set x -1
  set a [set chan-data($chan)]
  while {$x<[llength $a]} {
    incr x
    if {[lindex $a $x 0]=="BANLEVEL"} {
      lset chan-data($chan) $x 1 $arg
      putserv "NOTICE $nick :L'option à été modifiée."
      dolog 1 banlevel "$nick@[nick2hand $nick $chan] $chan $arg"
      return
    }
  }
  lappend chan-data($chan) [list BANLEVEL $arg]
  putserv "NOTICE $nick :L'option à été modifiée."
  dolog 1 banlevel "$nick@[nick2hand $nick $chan] $chan $arg"
}
 
proc cs::bantimeout {nick host hand chan arg} {
 variable level
  set chan [string tolower $chan]
  if {[getlevel [nick2hand $nick $chan] $chan]<$level(bantimeout)} {
    putquick "NOTICE $nick :Accès refusé."
    dolog 0 bantimeout "$nick@[nick2hand $nick $chan] $chan $arg"
    return
  }
  if {$arg=="" || (![string is digit [lindex $arg 0]] && ![stgcomp [lindex $arg 0] "off"])} {
    putquick "NOTICE $nick :Syntaxe: /msg $::botnick BANTIMEOUT <#salon> <durée/off>"
    return
  }
  if {[lindex $arg 0]=="off"} {set arg 0}
  channel set $chan ban-time [lindex $arg 0]
  dolog 1 bantimeout "$nick@[nick2hand $nick $chan] $chan $arg"
  if {[lindex $arg 0]==0} {
    putserv "NOTICE $nick :Le mode bantimeout est désactivé."
  } else {
    putserv "NOTICE $nick :Le mode bantimeout à été modifié ([lindex $arg 0] minutes)."
  }
}


Etc..

Je me suis permis de te répondre ayant eut une conversation avec la personne concerner hier.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#37
Irix ... ça me rajeuni de 15 ans lol.
Par contre à moins que le « locataire » du robot puisse charger des scripts dans l’egg qu’on lui prête, ça reste un CS. Anope ferait aussi bien l’affaire et il me semble plus sécurisé.
#38
Ahah oui ça date !
Plus sécurisé je ne c'est pas, suffit d'être @ surble canal pour l'enregistrer à son nom.
Sinon je t'aurais dit oui, la avec un système comme ça tu as une intervention humaine xD
Mais après à voir au fil du temps :)

Envoyé de mon Redmi Note 8T en utilisant Tapatalk
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#39
bonsoir,

pas de soucis la dessus
Sa sert à rien d'avoir un bon PC, si y'a un âne devant.


Possibly Related Threads…
Thread Author Replies Views Last Post
  TCL Service fedora 10 5,763 15/12/2013, 00:32
Last Post: aliasangelius

Forum Jump:


Users browsing this thread: 1 Guest(s)