All pastes #628257 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-07-20 20:56 UTC
rendered paste body
####################################################
####################################################
###############  User expire system ################
##################  Version 1.0  ###################
######  Made by Raymond 'Rajohan' Johannessen  #####
#####  http://www.rajohan.net/sbnc/expire.tcl  #####
####################################################
####################################################


bind time - "* * * * *" time:expired
internalbind command expire:commands
internalbind command expiredate:commands


proc expire:commands {client parameters} {
  if {[string equal -nocase [lindex $parameters 0] "help"] && [getbncuser $client "admin"]} {
    bncaddcommand expire Admin "Manage or view an bnc users expire date" "Syntax: expire <add|del|info>\n expire add <nick> <date>\n expire del <nick>\n expire info <nick>"
  }
  if {[string equal -nocase [lindex $parameters 0] "expire"] && [getbncuser $client "admin"]} {
    if {[llength $parameters] < 1} {
      bncreply "Syntax: expire <add|del|info>"
      haltoutput
    } else {
      switch [lindex $parameters 1] {
        "add" {
          expire:add [lindex $parameters 2] [lindex $parameters 3]
          haltoutput
        }
        "del" {
          expire:del [lindex $parameters 2]
          haltoutput
        }
        "info" {
          expire:info [lindex $parameters 2]
          haltoutput
        }
        default {
          bncreply "Syntax: expire <add|del|info>"
          haltoutput
        }
      }
    }
  }
}


proc expiredate:commands {client parameters} {
  if {[string equal -nocase [lindex $parameters 0] "help"]} {
    bncaddcommand expiredate User "View your bnc accounts expire date" "Syntax: expiredate"
  } elseif {[string equal -nocase [lindex $parameters 0] "expiredate"]} {
      expiredate
      haltoutput
  }
}


proc validbncuser {user} {
  if { [lsearch -exact [split [string tolower [join [bncuserlist]]]] [string tolower $user]] eq "-1" } {
    return 0
  } else {
    return 1
  }
}


proc expire:add {username date} {
  if {[string equal $username ""]} {
    bncreply "Error: requires a username."
    bncreply "Example: expire add rajohan 13.03.2008"
  } elseif {[string equal $date ""]} {
    bncreply "Error: requires a date."
    bncreply "Example: expire add rajohan 13.03.2008"
  } elseif {![validbncuser $username]} {
    bncreply "Username do not exist"
  } else {
    bncreply "Done."
    bncreply "Expire: added bnc user \"$username\" to expire \"$date\"."
    setbncuser $username tag expire $date              
  }
}


proc expire:del {username} {
  if {[string equal $username ""]} {
    bncreply "Error: requires a username."
    bncreply "Example: expire del rajohan"
  } elseif {![validbncuser $username]} {
    bncreply "Username do not exist"
  } else {
    set date "never"
    bncreply "Done."
    bncreply "Removed expire date for bnc user \"$username\"."
    setbncuser $username tag expire $date              
  }
}


proc expire:info {username} {
  if {[string equal $username ""]} {
    bncreply "Error: requires a username."
    bncreply "Example: expire info rajohan"
  } elseif {![validbncuser $username]} {
    bncreply "Username do not exist"
  } else {
    set expiredate [getbncuser $username tag expire]
    if {$expiredate == ""} {
      set expiredate "never"
    }
    bncreply "Bnc account \"$username\" expires \"$expiredate\"."          
  }
}


proc expiredate {} {
  set username [getctx]
  set expiredate [getbncuser $username tag expire]
  if {$expiredate == ""} {
    set expiredate "never"
  }
  bncreply "Your bnc account expires \"$expiredate\"."           
}


proc time:expired {min hour day month year} {
  set date [clock format [clock seconds] -format "%d.%m.%Y"]
  set username [getctx]
  set expiredate [getbncuser $username tag expire]
  if {$expiredate == "none" || $expiredate == ""} {
    return 0
  } elseif {$expiredate <= $date} {
    bncreply "Your bnc account has expired. Your account has been suspended."
    setbncuser $username suspendreason "Your bnc account has expired"
    setbncuser $username tag suspend "1"
    setbncuser $username lock "1"
    bnckill "Your bnc account has expired. Your account has been suspended."  
  } else {
    bncreply "Your bnc account will expire \"$expiredate\"."
  }
}