DoctorD90 icon

Hosts.tcl 1.5.0

DoctorD90 | PRO | 05/03/13 06:07:52 PM UTC | 0 ⭐ | 6240 👁️ | Never ⏰ | []
TCL |

3.88 KB

|

None

|

0 👍

/

0 👎

### Hosts.tcl 1.5.0 hnyhZSUq
 
#SUGGESTED
# PBinSrc.tcl fMrtKqyq
# TCLLoader.tcl smApj15u
 
#LICENSE
# Copyright © 2013 Alberto Dietze "DoctorD90"
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Full GPLv3 Text: http://www.gnu.org/licenses/gpl.txt
 
#PATERNITY
#Coder: DoctorD90
#Network: irc.OnlineGamesNet.net
#Chan: #eHito
#Mail: [email protected]
#Script's List: www.EggTcl.tk
 
#PURPOSE
#Manage own user's hosts from publics and queries commands.
 
#USAGE
#Use commands that you set in SETTINGS section.
 
#SETTINGS
#Set public command to add host.
set hst(padd) ".host+"
#Set query command to add host.
set hst(madd) ".host+"
#Set query command to list hosts.
set hst(psee) ".hosts"
#Set query command to list hosts.
set hst(msee) ".hosts"
#Set query command to del host.
set hst(pdel) ".host-"
#Set query command to del host.
set hst(mdel) ".host-"
 
 
### DON'T EDIT ANYTHING BELOW ###
 
bind pub - $hst(psee) pub_hosts
proc pub_hosts {nick uhost hand chan text} {
  msg_hosts $nick $uhost $hand $text
}
 
bind msg - $hst(msee) msg_hosts
proc msg_hosts {nick uhost hand text} {
  if {![validuser $hand]} {
    notice $nick "You Are Not Found In User Database."
    return
  }
  set i 0
  set hsts [getuser $hand HOSTS]
  foreach mask $hsts {
    if {[string match -nocase *telnet* $mask]} {
      append mask "  \002#WARN:\002 Probably required for telnet session."
    }
    notice $nick "\002$i\002) $mask"
    incr i
  }
}
 
 
bind pub - $hst(padd) pub_hostadd
proc pub_hostadd {nick uhost hand chan text} {
  msg_hostadd $nick $uhost $hand $text
}
 
bind msg - $hst(madd) msg_hostadd
proc msg_hostadd {nick uhost hand text} {
  if {![validuser $hand]} {
    notice $nick "You Are Not Found In User Database."
    return
  }
  if {![string length [string trim $text]]} {
    notice $nick "\002AddHost:\002 HostMask Required."
    return
  }
  if {![regexp -nocase -- {([^\s]+![^\s]+@[^\s]+)} $text all mask]} {
    notice $nick "\002AddHost:\002 HostMask Not Allowed (\037nick!ident@host\037)."
    return
  }
  if {$mask == "*!*@*"} {
    notice $nick "SecuritySystem: Ignore Mask not allowed."
    return
  }
  setuser $hand HOSTS $mask
  notice $nick "\002AddHost:\002 \037$mask\037 Added."
}
 
 
bind pub - $hst(pdel) pub_delhost
proc pub_delhost {nick uhost hand chan text} {
  msg_delhost $nick $uhost $hand $text
}
 
bind msg - $hst(mdel) msg_delhost
proc msg_delhost {nick uhost hand text} {
  if {![validuser $hand]} {
    notice $nick "You Are Not Found In User Database."
    return
  }
  if {![string length [string trim $text]]} {
    notice $nick "\002DelHost:\002 HostMask Number Required."
    return
  }
  set hsts [getuser $hand HOSTS]
  if {![llength $hsts]} {
    notice $nick "\002DelHost:\002 You MUST have at least one hostmask."
    return
  }
  set nmsk [lindex $text 0]
  set lhsts [expr {[llength $hsts] - 1}]
  if {![string is integer -strict $nmsk] || $nmsk < "0" || $nmsk > $lhsts} {
    notice $nick "\002DelHost:\002 It has to be a number beetwen 0 and $lhsts"
    return
  }
  set dmsk [lindex $hsts $nmsk]
  if {[delhost $hand $dmsk]} {
    notice $nick "\002DelHost:\002 \037$dmsk\037 Deleted."
  } else {
    notice $nick "\002DelHost:\002 Fail to delete \002$dmsk\002."
  }
}
 
###
putlog "Hosts.tcl LOADED"

Comments