Описание
Скрипт каждый час выводит текущее время и сообщения в канал в указанное время.
Скрипт
namespace eval tontime {
# Сбрасываем значения всех переменных.
foreach p [array names tontime *] { catch {unset tontime($p) } }# Указываем канальный флаг(.chanset #chan +tontime для включения скрипта).
setudef flag tontime### ###
# Меню настроек ниже этой линии: #
# ______________________________ #
### ###
variable tontime
array set tontime {
channels "#erotic #ololo"
color1 \00314
color2 \00310
color3 \00305
phrases {06:00 Доброе утро $chan
13:00 Доброго дня $chan
21:00 Добрый вечер $chan
00:00 Доброй ночи $chan}
version "tontime.tcl version 1.0"
author "tvrsh"
}### ###
# Ниже этой линии начинается код, не изменяйте его если не знаете TCL: #
# ____________________________________________________________________ #
### #### Обработка биндов.
bind time -|- "* * * * *" ::tontime::tontime_proc# Процедура обработки запроса.
proc ::tontime::tontime_proc {min hour day month year} {
variable tontimeset day [string map {Monday Понедельник Tuesday Вторник Wednesday Среда Thursday Четверг Friday Пятница Saturday Суббота Sunday Воскресенье} [clock format [unixtime] -format "%A"]]
if {$min == "00"} {
foreach chan [split $tontime(channels)] {
putserv "PRIVMSG $chan :$tontime(color1)$day - $tontime(color2)$hour:$min$tontime(color1)."
}
}
foreach chan [split $tontime(channels)] {
foreach phrase [split $tontime(phrases) "\n"] {
if {[llength $phrase]} {
if {$hour == [lindex [split [lindex $phrase 0] ":"] 0] && $min == [lindex [split [lindex $phrase 0] ":"] 1]} {
putserv "PRIVMSG $chan :$tontime(color3)[subst -nocommands [join [lrange $phrase 1 end]]]$tontime(color1)."
}
}
}
}
}# Выводим сообщение о том, что скрипт удачно загружен.
putlog "\[tontime\] $tontime(version) by $tontime(author) loaded"
}