ufootball.tcl - турнирные таблицы по футболу.

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

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

ufootball.tcl - турнирные таблицы по футболу.

Сообщение tvrsh » 09 июл 2011 14:10

Название: ufootball.tcl
Версия: 1.1
Автор: tvrsh
Описание: Скрипт забирает турнирные таблицы по футболу с сайта http://www.readfootball.com/
Поддержка Suzi: Да
Пример работы:
# Смотрим помощь по скрипту.
<tvrsh> !ufoot help
<@bionic> Используйте !ufoot <страна> для просмотра турнирной таблицы.
<@bionic> Доступные страны: Россия, Украина, Англия, Испания, Италия, Германия.
<@bionic> Чтобы посмотреть отдельное место в таблице используйте !ufoot <страна> <место>.

# Сморим таблицу.
<tvrsh> !ufoot англия
<@bionic> Новости футбола. Чемпионат Англии по футболу 2010-2011. Премьер Лига
<@bionic> Место Клуб И В Н П Мячи Очки
<@bionic> 1) МАНЧЕСТЕР ЮНАЙТЕД 38 23 11 4 78-37 80
...

Дополнительная информация: В скрипте версии 1.1 таблица намного лучше чем в примере. Она на столько хороша, что я не стал ее перерисоввывать сюда.
Ссылка на скрипт: ufootball.tcl
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: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 10 июл 2011 12:41

а если бот без Suzi с кодировкой можно что нибудь сделать,а то получается

!ufoot англия
•(12:39:35)• <botik> >2>AB8 DCB1>;0. '5<?8>=0B =3;88 ?> DCB1>;C 2010-2011. @5<L5@ 830
•(12:39:35)• <botik> Место Клуб И В Н П Мячи Очки
•(12:39:35)• <botik> 1) '!" ." 38 23 11 4 78-37 80
•(12:39:35)• <botik> 2) '! 38 21 8 9 69-33 71
•(12:39:35)• <botik> 3) '!" !" 38 21 8 9 60-33 71
•(12:39:35)• <botik> 4)  ! 38 19 11 8 72-43 68
.....
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение tvrsh » 10 июл 2011 12:51

Попробуй поменять строку
        set data [encoding convertto utf-8 [encoding convertfrom cp1251 $data]]
на
        set data [encoding convertto cp1251 [encoding convertfrom koi8-r $data]]

или совсем закомментируй ее.
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: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 10 июл 2011 12:56

попробовал и заменить,и закомментировать,все также осталось :(
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение Radiosignal » 10 июл 2011 13:29

TCL: [ Скачать ] [ Скрыть ]
if {[info exists ::sp_version]} {
        #set data [encoding convertfrom utf-8 $data]
    } else {
        set data [encoding convertto cp1251 [encoding convertfrom utf-8 $data]]
    }


После того, как добавишь эти строки, сделай два раза !rehash своему боту.
Последний раз редактировалось Radiosignal 10 июл 2011 18:37, всего редактировалось 1 раз.
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 10 июл 2011 13:36

сделал,всеравно тоже самое....
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение Radiosignal » 10 июл 2011 14:19

А не пробовал на новом сюзи боте?
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 10 июл 2011 14:23

я же написал,бот у меня без Suzi
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение tvrsh » 10 июл 2011 15:58

Radiosignal писал(а):
TCL: [ Скачать ] [ Скрыть ]
if {[info exists ::sp_version]} {
        #set data [encoding convertfrom utf-8 $data]
    } else {
        set data [encoding convertto cp1251 [encoding convertfrom utf-8 $data]]
    }


После того, как добавишь эту строку, сделай два раза !rehash своему боту.

Какую "эту" строку? В показанном тобой коде "этих" строк пять. И почему рехашить надо два раза а не семь?

Добавлено спустя 28 минут 12 секунд:
Обновил скрипт. Подправил таблицу. На моем непатченном боте работает также хорошо, как и на патченном. Кстати, чтобы заработал на боте без патча надо было закомментировать строку, как я и говорил об этом.
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: ufootball.tcl - турнирные таблицы по футболу.

Сообщение Radiosignal » 10 июл 2011 18:39

Строки. Просто на сюзи иногда так помогало. Может быть у него викторина еще установлена на боте и требуется иногда два раза это сделать.
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 11 июл 2011 10:57

tvrsh писал(а):Обновил скрипт. Подправил таблицу. На моем непатченном боте работает также хорошо, как и на патченном. Кстати, чтобы заработал на боте без патча надо было закомментировать строку, как я и говорил об этом.


я не знаю что у меня,но всеравно в непонятной кодировке выдает,хотя бота стандартного качал.... :(
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение DmitRex » 11 июл 2011 14:15

Попробуй вот этот скрипт, тоже берёт с сайта таблицу, но только с РПЛ:
TCL: [ Скачать ] [ Скрыть ]
namespace eval soccer {
array set conf {
timer         {60}
msg             {1}
output  {$chan}
timeout     {20}
url             {http://www.sports.ru/tags/1048214.html?type=table}
binds   {"soccer" "футбол"}
}
         
foreach bind [binds "[namespace current]::*"] {catch {unbind [lindex $bind 0] [lindex $bind 1] [lindex $bind 2] [lindex $bind 4]}}
foreach bind $conf(binds) {
bind pub -|- !${bind} [namespace current]::pub
if {$conf(msg)} {bind msg -|- !${bind} [namespace current]::msg}
}
setudef flag nosoccer
}

proc ::soccer::pub {nick host hand chan text} {
if {[channel get $chan nosoccer]} { return }
main $nick $host $hand $chan $text
return 0
}

proc ::soccer::msg {nick host hand text} {
variable conf;
if {$conf(msg) && [onchan $nick]} {
main $nick $host $hand $nick $text
return 0
} else { return 0 }
}

proc ::soccer::main {nick host hand chan text} {
variable conf; variable timers; global lastbind;
if {[info exists timers($host)]} {
set timewait [expr {$timers($host) + $conf(timer) - [unixtime]}]
if {$timewait > 0} { putserv "NOTICE $nick :Команда $lastbind будет доступна через $timewait сек."; return 0; }
}
set timers($host) [unixtime]
foreach {id} [array names timers] {if {[expr {$timers($id) + $conf(timer) - [unixtime]}] < 0} {array unset timers $id}}
::http::config -urlencoding utf-8 -accept "text/html" -useragent "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10"
if {[catch {set token [::http::geturl $conf(url) -timeout [expr {$conf(timeout) * 1000}]]} error]} {return $error}
regsub -all -- {[\n]+} [::http::data $token] {} data
regexp -nocase -- {<tbody>(.+?)</tbody>} $data -> table
regsub -all -- {([A-Za-zА-Яа-я]{1,30})\s([A-Za-zА-Яа-я]{1,30})} $table {\1_\2} table
putserv "PRIVMSG [subst $conf(output)] :\037#\037 $::gcolor(14)| \037команда\037 | \037м\037 | \037в\037 | \037н\037 | \037п\037 | \037заб\037 | \037проп\037 | \037о\037"
set count 0
foreach i $table {
if {[regexp -nocase -- {href=".*?">(.*?)</a>.*?<td>(.+)</td><td>(.+)</td><td>(.+)</td><td>(.+)</td><td>(.+)</td><td>(.+)</td><td>(.+)</td></tr>} $i -> rowname row1 row2 row3 row4 row5 row6 row7]} {
incr count
putserv "PRIVMSG [subst $conf(output)] :$count | [string map {"_" " "} $rowname] | $row1 | $row2 | $row3 | $row4 | $row5 | $row6 | $row7"
}
}
::http::cleanup $token
return 0       
}
 

Так же можно эту ссылку на таблицу поменять на таблицу зарубежных чемпионатов.
Аватара пользователя
DmitRex
 
Сообщения: 50
Зарегистрирован: 14 июл 2010 10:39
Откуда: Владимир
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Версия бота: Eggdrop 1.6.21

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 12 июл 2011 09:50

у меня твой скрипт тоже показывает в непонятной кодировке,плюс таблицу выдает пустую,где 0 очков,0 игр итд
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение tvrsh » 12 июл 2011 11:24

Обнови ты уже своего бота. Сделай хотя бы так faq-howto/eggdrop-utf-t204.html
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: ufootball.tcl - турнирные таблицы по футболу.

Сообщение wr` » 12 апр 2012 16:49

Доброго времени суток.Помогите пожалуйста,что нужно поменять в скрипте чтоб бот показывал таблицы только в приват а не на канал?
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение tvrsh » 13 апр 2012 09:14

Меняй
putserv "PRIVMSG $chan
на
putserv "PRIVMSG $nick
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарил:
wr` (13 апр 2012 10:46)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение Jake » 15 июн 2012 12:47

скрипт теперь не работает ? =(
Jake
 
Сообщения: 26
Зарегистрирован: 21 май 2012 11:17
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: ufootball.tcl - турнирные таблицы по футболу.

Сообщение tvrsh » 20 июн 2012 17:31

Jake писал(а):скрипт теперь не работает ? =(

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


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

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

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

cron