####################################################
# by wiebe @ QuakeNet
#
# script is made to work from timezone CET(GMT +1) / CEST (GMT +2)
####################################################


####################################################
# clock:help:pubm
####################################################
bind pubm fvlomn|fvlomn "% ${botnet-nick} help clock" clock:help:pubm
proc clock:help:pubm { n u h c t } {
  if {[matchattr $h bkZ]} { return 0 }
  lappend o "clock: shows the time for various timezones and cities."
  if {[string equal [info procs cnotice] ""]} { foreach l $o { puthelp "NOTICE $n :$l" }
  } else { foreach l $o { cnotice $n $l puthelp "clock: " } }
  putloglev c $c "help: $n $u $h $c clock"
  return 1
}


####################################################
# clock:help:msgm
####################################################
bind msgm fvlomn|fvlomn "help clock" clock:help:msgm
proc clock:help:msgm { n u h t } {
  if {[matchattr $h bkZ]} { return 0 }
  lappend o "clock: shows the time for various timezones and cities."
  if {[string equal [info procs cnotice] ""]} { foreach l $o { puthelp "NOTICE $n :$l" }
  } else { foreach l $o { cnotice $n $l puthelp "clock: " } }
  putcmdlog "($n!$u) !$h! help clock"
  return 1
}


####################################################
# clock:pubm
####################################################
bind pubm fvlomn|fvlomn "% ${botnet-nick} clock" clock:pubm
proc clock:pubm { n u h c t } {
  if {[matchattr $h bkZ]} { return 0 }
  lappend o [clock:time]; set m [lindex [split [getchanmode $c]] 0]
  if {![string match *m* $m] || [botisop $c] || [botishalfop $c] || [botisvoice $c]} {
    if {[string match *c* $m] } { set o [stripcodes bcru $o] }
    if {[string equal [info procs privmsg] ""]} { foreach l $o { puthelp "PRIVMSG $c :$l" }
    } else { foreach l $o { privmsg $c $l puthelp "clock: " } }
    set o ""
  }
  if {[string equal [info procs cnotice] ""]} { foreach l $o { puthelp "NOTICE $n :$l" }
  } else { foreach l $o { cnotice $n $l puthelp "clock: " } }
  putloglev c $c "clock: $n $u $h $c"
  return 1
}


####################################################
# clock:msg
####################################################
bind msg fvlomn|fvlomn clock clock:msg
proc clock:msg { n u h t } {
  if {[matchattr $h bkZ]} { return 0 }
  lappend o [clock:time]
  if {[string equal [info procs cnotice] ""]} { foreach l $o { puthelp "NOTICE $n :$l" }
  } else { foreach l $o { cnotice $n $l puthelp "clock: " } }
  return 1
}


####################################################
# clock:dcc
####################################################
bind dcc - clock clock:dcc
proc clock:dcc { h i t } {
  lappend o [clock:time]
  foreach l $o { putidx $i $l }
  return 1
}


####################################################
# clock:time
####################################################
proc clock:time { } {
  set n [clock seconds]; set z [clock format $n -format %Z]; set h "3600"; set f "%H:%M"
# daylight saving (change CEST to whatever is your daylight saving timezone)
  if {[string equal $z "CEST"]} {
    lappend o "[clock format $n -gmt 1 -format $f] GMT/UTC"
    lappend o "[clock format [expr $n+1*$h] -gmt 1 -format $f] BST  +1 (London)"
    lappend o "[clock format [expr $n+2*$h] -gmt 1 -format $f] CEST +2 (Amsterdam)"
    lappend o "[clock format [expr $n+3*$h] -gmt 1 -format $f] EEST +3 (Helsinki)"
    lappend o "[clock format [expr $n-4*$h] -gmt 1 -format $f] EDT  -4 (New york)"
    lappend o "[clock format [expr $n-7*$h] -gmt 1 -format $f] PDT  -7 (Los Angeles)"
    lappend o "[clock format [expr $n+9*$h] -gmt 1 -format $f] JST  +9 (Tokyo)"
# normal timezone (change CET to whatever is your normal timezone)
  } elseif {[string equal $z "CET"]} {
    lappend o "[clock format $n -gmt 1 -format $f] GMT/UTC (London)"
    lappend o "[clock format [expr $n+1*$h] -gmt 1 -format $f] CET  +1 (Amsterdam)"
    lappend o "[clock format [expr $n+2*$h] -gmt 1 -format $f] EET  +2 (Helsinki)"
    lappend o "[clock format [expr $n-5*$h] -gmt 1 -format $f] EST  -5 (New York)"
    lappend o "[clock format [expr $n-8*$h] -gmt 1 -format $f] PST  -8 (Los Angeles)"
    lappend o "[clock format [expr $n+9*$h] -gmt 1 -format $f] JST  +9 (Tokyo)"
  } else { lappend o "current timezone is not CET (GMT +1) or CEST (GMT +2) - please read clock.tcl" }
  return "clock: [join $o "     "]"
}


set scriptdb(clock) {
  "provides clock command for showing the time in various timezones and city around the world"
}

