Страница 1 из 1

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

СообщениеДобавлено: 09 июл 2011 14:10
tvrsh
Название: 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

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

СообщениеДобавлено: 10 июл 2011 12:41
wr`
а если бот без 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
.....

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

СообщениеДобавлено: 10 июл 2011 12:51
tvrsh
Попробуй поменять строку
        set data [encoding convertto utf-8 [encoding convertfrom cp1251 $data]]
на
        set data [encoding convertto cp1251 [encoding convertfrom koi8-r $data]]

или совсем закомментируй ее.

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

СообщениеДобавлено: 10 июл 2011 12:56
wr`
попробовал и заменить,и закомментировать,все также осталось :(

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

СообщениеДобавлено: 10 июл 2011 13:29
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 своему боту.

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

СообщениеДобавлено: 10 июл 2011 13:36
wr`
сделал,всеравно тоже самое....

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

СообщениеДобавлено: 10 июл 2011 14:19
Radiosignal
А не пробовал на новом сюзи боте?

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

СообщениеДобавлено: 10 июл 2011 14:23
wr`
я же написал,бот у меня без Suzi

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

СообщениеДобавлено: 10 июл 2011 15:58
tvrsh
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 секунд:
Обновил скрипт. Подправил таблицу. На моем непатченном боте работает также хорошо, как и на патченном. Кстати, чтобы заработал на боте без патча надо было закомментировать строку, как я и говорил об этом.

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

СообщениеДобавлено: 10 июл 2011 18:39
Radiosignal
Строки. Просто на сюзи иногда так помогало. Может быть у него викторина еще установлена на боте и требуется иногда два раза это сделать.

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

СообщениеДобавлено: 11 июл 2011 10:57
wr`
tvrsh писал(а):Обновил скрипт. Подправил таблицу. На моем непатченном боте работает также хорошо, как и на патченном. Кстати, чтобы заработал на боте без патча надо было закомментировать строку, как я и говорил об этом.


я не знаю что у меня,но всеравно в непонятной кодировке выдает,хотя бота стандартного качал.... :(

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

СообщениеДобавлено: 11 июл 2011 14:15
DmitRex
Попробуй вот этот скрипт, тоже берёт с сайта таблицу, но только с РПЛ:
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       
}
 

Так же можно эту ссылку на таблицу поменять на таблицу зарубежных чемпионатов.

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

СообщениеДобавлено: 12 июл 2011 09:50
wr`
у меня твой скрипт тоже показывает в непонятной кодировке,плюс таблицу выдает пустую,где 0 очков,0 игр итд

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

СообщениеДобавлено: 12 июл 2011 11:24
tvrsh
Обнови ты уже своего бота. Сделай хотя бы так faq-howto/eggdrop-utf-t204.html

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

СообщениеДобавлено: 12 апр 2012 16:49
wr`
Доброго времени суток.Помогите пожалуйста,что нужно поменять в скрипте чтоб бот показывал таблицы только в приват а не на канал?

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

СообщениеДобавлено: 13 апр 2012 09:14
tvrsh
Меняй
putserv "PRIVMSG $chan
на
putserv "PRIVMSG $nick

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

СообщениеДобавлено: 15 июн 2012 12:47
Jake
скрипт теперь не работает ? =(

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

СообщениеДобавлено: 20 июн 2012 17:31
tvrsh
Jake писал(а):скрипт теперь не работает ? =(

Почему? У меня работает. Покажи какая у тебя ошибка.