Описание
Скрипт каждый час выводит текущее время и сообщения в канал в указанное время.

Скрипт

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 tontime

    set 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"
}