tvcountdown.tcl - Еще одно расписание выхода серий.

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

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

tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 09 май 2014 13:23

Название: tvcountdown.tcl
Версия: 1.4
Автор: tvrsh
Описание: Скрипт показывает расписание выхода серий популярных сериалов с сайта http://tvcountdown.com/
Поддержка Suzi: Да
Пример работы:
# Найдено несколько сериалов
<tvrsh> !tvcd big
<@bionic> По вашему запросу 'big' найдено 8 сериалов.
<@bionic> "Big Bad World (2013)", "Big Brother (US)", "Big School", "Big Time Rush", "John Bishop's Big Year", ...
<@bionic> Уточните параметры поиска.

# Найден только один сериал, показ информации о нем
<tvrsh> !tvcd big bang
<@bionic> The Big Bang Theory
<@bionic> Airtime: 20:00:00(US/Eastern) on CBS. Status: Returning Series. Country: US. Runtime: 30 min.
<@bionic> S07E23 "The Gorilla Dissolution" airs 2d 21h 16m 3s ago (08 May 2014 20:00:00)
<@bionic> S07E22 "The Proton Transmogrification" airs 9d 21h 16m 3s ago (01 May 2014 20:00:00)
<@bionic> S07E24 "The Status Quo Combustion" airs in 4d 2h 43m 57s (15 May 2014 20:00:00)

Дополнительная информация: Возможно, есть некоторое расхождение во времени до следующей серии, так как я не учитывал разницу в часовых поясах.
Ссылка на скрипт: tvcountdown.tcl

К сообщению приложена версия скрипта с правками от Vertigo.
Использование кэша позволяет ускорить работу скрипта и минимизировать обращения к сайту.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарил:
Bart (11 май 2014 14:42)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение Bart » 11 май 2014 14:42

tvrsh, спасибо за скрипт.

Некоторые недочеты есть:
1. При поиске неизвестного сериала пишет:
[20:47:15] Tcl error [::tvcountdown::tvcountdown_pub]: can't read "results": no such variable
2. Не пишет день недели, например: Tue 2014-04-22 06:00
3. И то, что долго выводит результат. Не знаю, исправимо это или нет...
Аватара пользователя
Bart
 
Сообщения: 24
Зарегистрирован: 05 фев 2014 01:35
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 11 май 2014 17:23

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

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

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 15 май 2014 22:39

Еще немного обновил по ошибкам указанным тут: http://forum.egghelp.org/viewtopic.php?p=102812#102812
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 18 май 2014 11:37

Обновил скрипт. Добавил опцию скрытия названий будущих серий. Настройки в конфиге:
        hidefuturetitles 1
        hidefuturetitlestext "\00304\002no spoilers!\00304\002"

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

За это сообщение автора tvrsh поблагодарил:
Bart (20 май 2014 22:04)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение Bart » 22 июн 2014 22:19

Да чтоб их...взяли сайт переделали.
Аватара пользователя
Bart
 
Сообщения: 24
Зарегистрирован: 05 фев 2014 01:35
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 10 июл 2014 21:44

Обновил скрипт. Только пока не разобрался со временем показа следующей серии, из-за разных часовых поясов иногда не очень корректные результаты выдает.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение Bart » 17 июл 2014 10:42

Нашлась ошибка.
[10:40] <~warlock> !tvcd Top Gear
[10:40] <&bot> По вашему запросу 'Top Gear' найдено 3 сериала.
[10:40] <&bot> Top Gear, Top Gear (US), Top Gear Australia, ...
[10:40] <&bot> Уточните параметры поиска.
[10:40] <~warlock> !tvcd Top Gear
[10:40] *bot* Запрос не чаще одного раза в 5 секунд.
[10:40] *bot* Подождите 1 секунду до следующего запроса.
[10:40] <~warlock> !tvcd Top Gear
[10:40] <&bot> По вашему запросу 'Top Gear' найдено 3 сериала.
[10:40] <&bot> Top Gear, Top Gear (US), Top Gear Australia, ...
[10:40] <&bot> Уточните параметры поиска.

[10:42] <~warlock> !с Once Upon a Time
[10:42] <&bot> По вашему запросу 'Once Upon a Time' найдено 2 сериала.
[10:42] <&bot> Once Upon a Time, Once Upon A Time In Wonderland, ...
[10:42] <&bot> Уточните параметры поиска.
[10:42] <~warlock> !с Once Upon a Time
[10:42] <&bot> По вашему запросу 'Once Upon a Time' найдено 2 сериала.
[10:42] <&bot> Once Upon a Time, Once Upon A Time In Wonderland, ...
[10:42] <&bot> Уточните параметры поиска.
Аватара пользователя
Bart
 
Сообщения: 24
Зарегистрирован: 05 фев 2014 01:35
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение Vertigo » 17 июл 2014 11:12

Bart писал(а):Нашлась ошибка.

Я бы не назвал это ошибкой. Скорее небольшая недоработка. Чтоб была возможность выбора нужного сериала, можно попробовать заменить часть процедуры в скрипте на следующую (до строчки set airtime ""; set status ""; set country ""; set runtime "";):
TCL: [ Скачать ] [ Скрыть ]
# Процедура обработки запроса.
proc ::tvcountdown::tvcountdown_proc {nick uhost hand chan text source} {
    variable tvcountdown

    if {[info exists tvcountdown(lasttime,$chan)] && [expr $tvcountdown(lasttime,$chan) + $tvcountdown(delay)] > [clock seconds]} {
        putserv "NOTICE $nick :$tvcountdown(color1)Запрос не чаще одного раза в $tvcountdown(color2)$tvcountdown(delay) $tvcountdown(color1)[lindex {. секунду секунды секунд} [::tvcountdown::tvcountdown_numgrp $tvcountdown(delay)]]."
        putserv "NOTICE $nick :$tvcountdown(color1)Подождите $tvcountdown(color3)[expr $tvcountdown(delay) - [expr [clock seconds] - $tvcountdown(lasttime,$chan)]] $tvcountdown(color1)[lindex {. секунду секунды секунд} [::tvcountdown::tvcountdown_numgrp [expr $tvcountdown(delay) - [expr [clock seconds] - $tvcountdown(lasttime,$chan)]]]] до следующего запроса."
        return 0
    }

    if {[string is space $text]} {
            putserv "PRIVMSG $chan :$tvcountdown(color2)$nick, $tvcountdown(color1)используй $tvcountdown(color3)$::lastbind $tvcountdown(color1)\[-номер\] $tvcountdown(color2)\<название сериала\>$tvcountdown(color1) для поиска.\003"
            return 0
    }

        if {[regexp -- {^\-(\d+)\s} $text - num]} {
                set text [regsub -- {^\-\d+\s} $text ""]
                set num [scan $num %d]
        } else {
                set num 0
        }

    ::http::config -urlencoding "utf-8" -useragent $tvcountdown(useragent)
    set tvcountdown_tok [::http::geturl "http://tvcountdown.com/" -timeout "15000"]
    set data [::http::data $tvcountdown_tok]
    ::http::cleanup $tvcountdown_tok
    putlog "\[tvcountdown\] $nick/$chan/$text"

    set results [list ]
    regsub -all -nocase -- {^.*?<ul id="listmenu" style="display:none;">} $data "" data
    regsub -all -nocase -- {<div id="content" class="fullcolumn">.*?$} $data "" data
    foreach {null link show} [regexp -all -inline -- {<a href="(.*?)">(.*?)</a>} $data] {
        if {[string match -nocase "*$text*" $show]} {
            lappend results $show|$link
        }
    }
   
    putlog $results
   
    if {[llength $results] == "0"} {
        putserv "PRIVMSG $chan :$tvcountdown(color1)По вашему запросу \'$tvcountdown(color2)$text$tvcountdown(color1)\' ничего не найдено.\003"
    } elseif {[llength $results] > "1" && $num == "0"} {
        set z_ 0
        foreach result $results {
            if {$z_ < $tvcountdown(searchlines)} {
                incr z_
                                lappend out "$tvcountdown(color1)\002\002${z_}. $tvcountdown(color2)[lindex [split $result "|"] 0]$tvcountdown(color1), "
            }
        }
        putserv "PRIVMSG $chan :$tvcountdown(color1)По вашему запросу \'$tvcountdown(color2)$text$tvcountdown(color1)\' [lindex {. найден найдено найдено} [::tvcountdown::tvcountdown_numgrp [llength $results]]] $tvcountdown(color2)[llength $results] $tvcountdown(color1)[lindex {. сериал сериала сериалов} [::tvcountdown::tvcountdown_numgrp [llength $results]]].\003"
        putserv "PRIVMSG $chan :[join $out ""]...\003"
        putserv "PRIVMSG $chan :$tvcountdown(color1)Уточните параметры поиска, добавив номер нужного результата.\003"
    } else {
                set total [llength $results]
                if {$num > $total || $num <= 0} {set num 1}
                if {$total > 1} {set pfx "\[$num\/$total\] :: "} else {set pfx ""}
        set tvcountdown_tok [::http::geturl "http://tvcountdown.com[lindex [split [lindex $results [expr $num - 1]] "|"] 1]" -timeout "15000"]  
        set data [::http::data $tvcountdown_tok]
        upvar #0 $tvcountdown_tok state
        foreach {name value} $state(meta) {
            if {[regexp -nocase ^location$ $name]} {
                set tvcountdown_tok [::http::geturl "$value" -timeout "15000"]  
                set data [::http::data $tvcountdown_tok]
            }
        }
        ::http::cleanup $tvcountdown_tok
        set data [string map {"&amp;" "&" "&nbsp;" " "} $data]
        set stitle ""
        regexp {<h2>(.*?)</h2>} $data "" stitle
        putserv "PRIVMSG $chan :${pfx}$tvcountdown(color3)\002$stitle\002\003"

За это сообщение автора Vertigo поблагодарили: 2
Bart (17 июл 2014 12:11), tvrsh (25 июл 2014 22:54)
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение Vertigo » 06 окт 2014 18:05

Сайт намедни снова изменил дизайн. На досуге попробовал восстановить работоспособность скрипта. Сайт теперь работает через https:// протокол, поэтому для работы необходим пакет tls.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

Re: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 11 окт 2014 17:54

Vertigo писал(а):Сайт намедни снова изменил дизайн. На досуге попробовал восстановить работоспособность скрипта. Сайт теперь работает через https:// протокол, поэтому для работы необходим пакет tls.

Если это тот, который в бионике, то работает.
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: tvcountdown.tcl - Еще одно расписание выхода серий.

Сообщение tvrsh » 27 дек 2014 19:58

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

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


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

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

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

cron