Communauté Eggdrop

Version complète : Masques utilisateurs
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
J'ai retrouvé plus ou moins par hasard une procédure très pratique pour générer des masks (pour le ban ou pour ajouter un utilisateur dans un eggdrop) faite par MC_8.

Je la mets ici pour pense-bête, sachant que je prépare un package "cc.alltools" qui contiendra toutes les procédures très pratiques qu'on utilise fréquement.
tcl
#- masktype{} is based upon the original by MC_8
# returns a modified mask (to add user, ban user, ...)
proc masktype {uhost type} {
    # 0 = *!user@host.domain
    # 1 = *!*user@host.domain
    # 2 = *!*@host.domain
    # 3 = *!*user@*.domain
    # 4 = *!*@*.domain
    # 5 = nick!user@host.domain
    # 6 = nick!*user@host.domain
    # 7 = nick!*@host.domain
    # 8 = nick!*user@*.domain
    # 9 = nick!*@*.domain
    # 10 = nick*!*@*.domain
    # 11 = regular eggdrop mask
    set masked [maskhost $uhost]
    set nick [string range $uhost 0 [expr [string first ! $uhost] - 1]]
    switch -- $type {
      0 {set ban "*[string range $uhost [string first ! $uhost] e]"}
      1 {set ban "*!*[string trimleft [string range $uhost [expr [string first ! $uhost] + 1] e] "~"]"}
      2 {set ban "*!*[string range $uhost [string first @ $uhost] e]"}
      3 {set ident [string range $uhost [expr [string first ! $uhost] + 1] [expr [string last @ $uhost] - 1]] ; set ban "*!*[string trimleft $ident ~][string range $masked [string first @ $masked] e]"}
      4 {set ban "*!*[string range $masked [string last @ $masked] e]"}
      5 {set ban $uhost}
      6 {set ident [string range $uhost [expr [string first ! $uhost] + 1] [expr [string last @ $uhost] - 1]] ; set ban "$nick!*[string trimleft $ident ~][string range $uhost [string last @ $uhost] e]"}
      7 {set ban "$nick!*[string range $uhost [string last @ $uhost] e]"}
      8 {set ident [string range $uhost [expr [string first ! $uhost] + 1] [expr [string last @ $uhost] - 1]] ; set ban "$nick!*[string trimleft $ident ~][string range $masked [string last @ $masked] e]"}
      9 {set ban "$nick!*[string range $masked [string last @ $masked] e]"}
      10 {set ban "$nick*!*[string range $masked [string last @ $masked] e]"}
      default {set ban "*!*[string range $uhost [string first @ $uhost] e]"}
    }
    return $ban
}



Enjoy it !
Petit edit: j'ai supprimé des parties inutiles et ajouté un masque (le 10)
Et le mask (11) ?
Le masque par défaut. Mais je crois que j'ai un peu trop nettoyé le code, je revois ça très vite