### # # Название: benzin.tcl # Версия: 1.0 # Автор: tvrsh # Оффсайт: http://egghelp.ru/ # ### # # Описание: Скрипт забирает с сайта http://benzin.golosmsk.ru/ стоимость бензина в Москве. # ### # # Установка: # 1. Скопируйте скрипт benzin.tcl в папку scripts вашего бота. # 2. В файле eggdrop.conf впишите строку source scripts/benzin.tcl # 3. Сделайте .rehash боту. # ### # # Версион хистори: # # 1.0(31.01.2010) Первая паблик версия. # ### namespace eval benzin { # Сбрасываем значения всех переменных. foreach p [array names benzin *] { catch {unset benzin($p) } } # Указываем канальный флаг(.chanset #chan +benzin для включения скрипта). setudef flag benzin ### ### # Меню настроек ниже этой линии: # # ______________________________ # ### ### variable benzin array set benzin { pref {!} binds {benzin бензин топливо} msg 1 delay 10 color1 \00314 color2 \00303 color3 \00305 version "benzin.tcl version 1.0" author "tvrsh" } ### ### # Ниже этой линии начинается код, не изменяйте его если не знаете TCL: # # ____________________________________________________________________ # ### ### # Обработка биндов. foreach bind [split $benzin(binds) " "] { bind pub -|- "$benzin(pref)$bind" ::benzin::benzin_pub if {$benzin(msg) >= 1} { bind msg -|- "$benzin(pref)$bind" ::benzin::benzin_msg } } # Процедура обработки приватных команд. proc ::benzin::benzin_msg {nick uhost hand text} { variable benzin ::benzin::benzin_proc $nick $uhost $hand $nick } # Процедура обработки паблик команд. proc ::benzin::benzin_pub {nick uhost hand chan text} { variable benzin # Проверяем наличие флага. if {![channel get $chan benzin]} { return } ::benzin::benzin_proc $nick $uhost $hand $chan } # Процедура обработки запроса. proc ::benzin::benzin_proc {nick uhost hand chan} { variable benzin if {[info exists benzin(lasttime,$chan)] && [expr $benzin(lasttime,$chan) + $benzin(delay)] > [clock seconds]} { putserv "NOTICE $nick :$benzin(color1)Запрос не чаще одного раза в $benzin(color2)$benzin(delay) $benzin(color1)[lindex {. секунду секунды секунд} [benzin_numgrp $benzin(delay)]]." putserv "NOTICE $nick :$benzin(color1)Подождите $benzin(color3)[expr $benzin(delay) - [expr [clock seconds] - $benzin(lasttime,$chan)]] $benzin(color1)[lindex {. секунду секунды секунд} [benzin_numgrp [expr $benzin(delay) - [expr [clock seconds] - $benzin(lasttime,$chan)]]]] до следующего запроса." return 0 } set benzin_tok [::http::config -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)"] set benzin_tok [::http::geturl http://benzin.golosmsk.ru/] set data [::http::data $benzin_tok] ::http::cleanup $benzin_tok putlog "\[benzin\] $nick/$chan" regexp {