yainfo.tcl

Решение вопросов при работе с TCL скриптами.

Модератор: Модераторы

yainfo.tcl

Сообщение Radiosignal » 20 мар 2010 23:15

tvrsh привет, что бы не создавать дополнительную тему напишу в этой, так как скрипт аналогичен практически. Не мог бы ты подправить скрипт yandex.tcl

Код: Выделить всё
namespace eval ::yainfo {

bind pub - !инфо ::yainfo::pub
set ::yainfo::redir 0
   
proc pub {nick uhost hand chan text} {
::http::config -useragent "Opera 9.52 (Windows NT 5.1; U; ru_RU)"
set t [::http::geturl http://www.yandex.ru/ -timeout 20000]
set data [::http::data $t]
::http::cleanup $t
set a ""; set b ""; set c ""; set c1 ""

::egglib::writedata "yainfo.html" [list $data]

if {![regexp -nocase -- {.*\">Погода</a>\ (<a href.+?)</dl></div>.*Котировки(.+?)\">Нефть</a></th.*\">Пробки<i></i></a><b>(.+?)</b>.*cmr\">(.+?)</a></em></div>.*} $data - a b c c1] && $::yainfo::redir <= 2} {incr ::yainfo::redir; putlog "::yainfo:: parse error -> trying again..."; pub $nick $uhost $hand $chan $text; return}
if {$::yainfo::redir >= 2} {putserv "NOTICE $nick :Parser error!"; set ::yainfo::redir 0; return}
#putlog "$c :: $c1"
if {$a ne ""} {
regsub -nocase -- "<!.*/h2><dl><dt>" $a "° C, " a
regsub -nocase -- "<a href.*title=\"" $a "" a
set a [string map -nocase {"\">" ", температура: сейчас" "</a>" "" "<b>" "" "</b>" "" "<dd>" "" " <dt>" "° C, "} $a]
set usd ""; set eur ""; set probki ""
set b [string map {"&minus;" "-"} $b]
#putlog "::yainfo:: b=$b"
regexp -nocase -- {.*Динамика\ курса\ USD.*<td><strong(.+?)<tr><th><a href.*Динамика\ курса\ EUR.*<td><strong(.+?)<tr><th><a href.*Динамика\ индекса\ ММВБ} $b -> usd eur
regsub -all -nocase -- "<.*>" $c1 "" c1
if {$c ne ""} {append probki "$c"}
if {$c1 ne ""} {append probki " \($c1\)"}
set probki [string trim $probki]


regsub -all -nocase -- "</strong><td>" $usd " руб. \(" usd
regsub -all -nocase -- "</strong><td>" $eur " руб. \(" eur
regsub -all -nocase -- "<.*>" $usd "" usd
regsub -all -nocase -- "<.*>" $eur "" eur

set usd [regsub -all -nocase -- "class.*\>|\>" $usd ""]
set eur [regsub -all -nocase -- "class.*\>|\>" $eur ""]

set msg ""
if {$probki ne ""} {append msg "\00310\[Подольск\]\003:: \002Пробки\002: [string tolower $probki] ::"}
if {$usd ne "" && $eur ne ""} {append msg " \002Курс USD\002: $usd\; \002Курс EUR\002: $eur ::"}
if {$a ne ""} {append msg " \002За окном\002: [string tolower [string index $a 0]][string trimright [string range $a 1 end]]° C."}
putfast "NOTICE $nick :$msg"
set ::yainfo::redir 0
}
}
putlog "yainfo loaded"
}
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: yainfo.tcl

Сообщение tvrsh » 20 мар 2010 23:26

В следующий раз сообщение будет удалено.
Создаем новые темы, форум и нужен для этого. И не пишем в темах о других скриптах. То, что по функционалу они похожи ничего не значит, разные авторы и разные источники информации. Ты же не лезешь с вопросами о ВАЗах на форум иномарок, хотя и те и другие машины.

И что я должен подправить в этом скрипте? Где вопрос то?
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: yainfo.tcl

Сообщение Radiosignal » 20 мар 2010 23:30

Что то на сайте наверно изменили, выдает ошибку
::yainfo:: parse error -> trying again...
перестал выдавать информацию с сайта
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: yainfo.tcl

Сообщение Vertigo » 21 мар 2010 00:29

Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8


Вернуться в TCL скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

cron