апдейт get vsetv.awk + epg2xml.awk + epg2tex.awk

  • Уважаемые любетели vdr!


    Представляю вашему вниманию новую версию скрипта
    vsetv.awk & friends. Features:


    1. автоматическая синхронизация всётв идентов


    2. программа для конвертирования из vdr epg в xmltv (beta)


    3. программа для конвертирования из vdr epg в TeX


    Для тестирования достаточно набрать make и подождать
    от 4 до 20 минут, в зависимости от количества
    законфигурированных в channels.conf.vsetv каналов и скорости
    процессора.


    Вырезку из результат работы epg2tex прилагаю в dvi
    формате.

    Файлы

    • vsetv.tar.gz

      (9.04 kB, скачали 49 раз, последнее скачивание: )
  • При запуске скрипта вылетает ошибка:


    arvdr:/etc/vdr/vsetv# ./getvsetv
    220 arvdr.free-x.de SVDRP VideoDiskRecorder 1.4.4; Mon Dec 4 17:10:02 2006
    250 EPG data cleared
    354 Enter EPG data, end with "." on a line by itself
    451 Error while processing EPG data
    221 arvdr.free-x.de closing connection


    В err так же выскивает ошибка:
    cat: /tmp/cookies.13457: No such file or directory


    В /tmp/ создается файл но с названием all -
    arvdr:/etc/vdr/vsetv# ls -l /tmp
    total 672
    -rw-r--r-- 1 root root 324501 Dec 4 17:10 all.13457


    Что я делаю неправильно...
    err прилагается.

    Файлы

    • err.tar.gz

      (1.02 kB, скачали 5 раз, последнее скачивание: )
  • Не используете ли вы старую версию скрипта? (см. выше). В новой
    версии cookies не используется для выбора пользователя, и его
    отсутствие не должно быть проблемой.


    Так же, проверьте что введена информация о login и password.
    Без нее автоматика не работает...


    Проверьте так-же что вот эти программы существуют:
    date="/bin/date"
    sed="/bin/sed"
    awk="/usr/bin/awk"
    fmt="/usr/bin/fmt"
    tr="/usr/bin/tr"
    seq="/usr/bin/seq"
    tee="/usr/bin/tee"
    lynx='/usr/bin/lynx -dump -cookies -accept_all_cookies -cookie_file="$cookies" -cookie_save_file="$cookies" -display_charset="$charset" -useragent="$agent"'
    wget='/usr/bin/wget -O- -U "$agent" --keep-session-cookies --load-cookies "$cookies"'
    recode='/usr/bin/recode -f cp1251.."$charset"


    Я так-же заметил что иногда информация из ВсёТв по объему
    превышает 10 килобайт на один event.
    Что ессно является проблемой для vdr...


    В качестве быстрого фикса используйте пока не обновил главный
    скрипт вот такой фильтр после ./vsetv:


    # cat epgfix
    #!/usr/bin/awk -f
    {print substr($0,1,10*1024-1)}


    all.XXXX это всего-лишь временный файл для отладки транслятора. его генерацию
    можно вполне убрать из vsetv (ищите команду tee).

    Сообщение было отредактировано 2 раз, последнее редактирование пользователем avichi ().

  • Скрипт последней версии.


    Информация login passwd в скрипте прописана. Кстати, в последней версии скрипта файл "post" в директории /tmp не создается.
    Хотя, как я понял, это не мешает работе.


    Программы и утилиты date, sed, awk, fmt, tr, seq, tee, lynx, wget, recode установлены.


    Ошибка происходит на моменте передачи данных в EPG...


    ... Мда.. В общем запустил я в работу скрипт :)
    После chmod a+rw epg.data в файл нормально пошла запись.


    Но теперь другой нюанс. :(
    Все что выводится на экран в EPG в сплошных квадратах. Т.е. вместо
    букв - квадраты. Аналогично если смотреть через веб, только через веб - EPG в вопросах. Понятно что проблема в charset. У меня в environment стоит - LANG=ru_RU.KOI8-R.
    Пытался выставить - LANG=ru_RU.UTF-8, но в этом случае в терминале вместо русского кракозябры.


    Запустил скрипт твграб - xmltv2vdr.pl -a +180 -c /etc/vdr/channels.conf.rusepg -x /etc/vdr/tvgrabru.xml - все отображается нормально и на экране и через веб. ?(

    Сообщение было отредактировано 2 раз, последнее редактирование пользователем andrewtit ().

  • В старой, первой версии, программа передач скачивалась с анонсами:


    ' '|' Таинственная гостья
    getting 2006-12-05177 /usr/bin/lynx -dump -cookies -accept_all_cookies -cookie_file=cookies -cookie_save_file=cookies -display_charset=iso-8859-5 -useragent=Lynx 'http://www.vsetv.com/series_882.html'| ./vsetv.awk -vkeyword='Счастливы вместе' | /usr/bin/fmt -w 52 | /usr/bin/tr '
    ' '|' Счастливы вместе
    using cached 2006-12-05179 Счастливы вместе Счастливы вместе Россия, 2006||Режиссер(ы): Александр Ануров||Актеры: Виктор Логинов, Наталья Бочкарёва, Юлия|Захарова, Даша Сагалова, Саша Якин Когда Гена|Букин женился, он обещал Даше жизнь принцессы. ......


    А в новой версии анансы отсутствуют :(


    ' | ./vsetv.awk -vkeyword='Счастливы вместе' | /usr/bin/fmt -w 52 | /usr/bin/tr
    '
    ' '|' Счастливы вместе
    using keyword ^Счастливы.*вместе
    getting 2006-12-05126 /usr/bin/wget -O- -U "$agent" keep-session-cookies --load-cookies "$cookies" 'http://www.vsetv.com/film_516862.html' 2>/dev/null| /bin/sed -e эs,<br>,&\n,g;s,<[^>]*>,,g;s,&quot;,",g;s,&nbsp;,,g' | /usr/bin/recode -f
    ' | ./vsetv.awk -vkeyword='Бэтмен' | /usr/bin/fmt -w 52 | /usr/bin/tr '
    ' '|' Бэтмен
    using keyword ^Бэтмен
    using cached 2006-12-05127 | Счастливы вместе
    using cached 2006-12-05128 | Счастливы вместе
    getting 2006-12-05129 /usr/bin/wget -O- -U "$agent" .....

  • Насчет квадратов я думаю проблема в том что у вас скорее всего
    стоит UTF8 версия vdr. Пока я к сожалению не имел возможности
    протестировать работу vsetv.awk с этой версией vdr (до сих пользуюсь
    старой версией из Debian более чем годичной давности). Могу
    порекомендовать заменить charset=iso-8859-5 и
    LC_ALL=ru_RU.ISO-8859-5 на соответственно charset=utf8 и
    LC_ALL=ru_RU.UTF-8. В принципе должно заработать...


    Насчет анонсов проблем может быть две:


    1. ВсёТВ продолжает апдейт базы и после понедельника.
    Попробуйте обновить сегодня.


    2. Проблема в скрипте. В высланном логе используются разные
    event'ы... Вышлите мне информацию о используемом канале и я
    попробую найти ошибку...

  • Огромное спасибо за помощь!


    С квадратами справились. :)
    iso-8859-5 заменил на UTF-8, замена на UTF8 дает ошибку.
    LC_ALL=ru_RU.ISO-8859-5 заменил на LC_ALL=ru_RU.UTF-8
    После замены квадратов не наблюдаем...


    Анонсы после понедельника не появились... Сегодня уже поздно. :) Завтра с утра, ради интереса, проверю со скриптом первой версии...


    Информация о каналах... Если не ошибаюсь это то чтонужно?
    TNT:3645:h:S90.0E:28000:401:402,403:0:0:14:1:7:0:vsetv=ch14
    DTV +7:3645:h:S90.0E:28000:501+503:502:0:0:15:1:7:0:vsetv=ch304


    Или нужно что то другое?


    PS: Вместо анасов выдает такую инфо, относительно ко всем програмам..


    Криминальная Россия
    "Криминальная Россия". (+1 day 02:00 +0200)

    Сообщение было отредактировано 2 раз, последнее редактирование пользователем andrewtit ().

  • Да не за что...


    У меня ch304 кстати регистрируется как "Теленяня", а не
    как DTV+7. На нее у ВсёТВ нет программ, как я вижу через
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. В новой версии скрипта файл vsetv.channels.$charset
    генерится автоматом, там и хранится мэппинг идентов на имена...


    Только что проверил - на ch14 (TNT) все генерится как положено,
    включая анонсы. Вот так:


    # tar xzvf vsetv.tar.gz
    # cat > channels.conf.vsetv
    TNT:3645:h:S90.0E:28000:401:402,403:0:0:14:1:7:0:vsetv=ch14
    DTV:3645:h:S90.0E:28000:501+503:502:0:0:15:1:7:0:vsetv=ch304
    # make distclean all

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем avichi ().

  • Да номера channels я брал с первой или второй версии, для тестов какая разница.
    Я не заметил чтобы они были жестко привязана к чему либо кроме
    vsetv.channels.iso-8859-5, или в моем случае vsetv.channels.UTF-8... Или я не прав?


    У меня по анонсам вопрос все таки остался... ungluecklich
    Вот что у меня в epg.data, допустим по ТНТ:


    e
    E 15 1165404000 9600 0 FF
    T Бэтмен возвращается
    D [f.gif] [188]Комедия "Бэтмен возвращается". (+0 day 13:20 +0200)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    e
    E 16 1165413600 3600 0 FF
    T Дом 2. Про Любовь
    D Реалити-шоу "Дом 2. Про Любовь". (+0 day 16:00 +0200)
    e
    E 17 1165417200 1800 0 FF
    T Счастливы вместе
    S Теле-сериал
    D Т/с "Счастливы вместе". (+0 day 17:00 +0200)||
    e


    А вот анонс на бэтмена на Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. :


    США, 1992, фэнтэзи
    Режиссер: Тим Бертон
    Актеры: Майкл Китон, Мишель Пфайффер, Дэнни ДеВито, Кристофер Уокен, Майкл Гоу,
    Пэт Хингл, Майкл Мерфи, Винсент Скьявелли, Эндрю Бринярски, Кристи Конуэй


    Продолжение истории о похождениях легендарного Бэтмэна.... и т.д.


    По сути не срастается. ungluecklich


    И еще тут один нюанс вырисовывается....
    Вот что у меня скачивается с сайта


    > [1px.gif] Первый канал (Украина) / Эра
    > [1px.gif]
    >
    > 05:55 "Служба розыска детей".
    > 06:00 "Доброе утро, Украина!"


    Это набор программ по умолчанию, т.е. если зарегистрированый пользователь
    не сделал выбора каналов. Что к стати можно увидеть и в err :


    S0.0W-100-100-2500 ch257
    NO ID FOR Внимание! Возможность персонального выбора каналов, любые
    NO ID FOR Первый канал (Украина) / Эра


    Мой набор для зарегистрированного пользователя совсем другой.
    Login, password в vsetv пробиты.... ungluecklich


    В чем может быть проблема?

  • К сожалению ВсёТВ иногда меняет ID каналов, как я заметил;-)
    Сейчас, корректная информация появляется автоматом в vsetv.channels.*
    Для контроля за синхронизацией информации из channels.conf и vsetv.channels
    я использую такой скрипт (будет включен в следующую версию архива):


    grep vsetv channels.conf > channels.conf.vsetv
    sed -e 's,^\([^:]*\):.*vsetv=ch\([0-9]*\).*,\2:\1,g;s,\<[0-9][0-9]\>,0&,g' channels.conf.vsetv | sort -t: -k1 > sat.ch
    sed -e 's,^ch\([0-9]*\) \(.*\),\1:\2,g;s,\<[0-9][0-9]\>,0&,g' vsetv.channels.iso-8859-5 | sort -t: -k1 > vsetv.ch
    join -t: vsetv.ch sat.ch


    echo ==== UNPAIRABLE from sat: ====
    join -v1 -t: sat.ch vsetv.ch


    echo ==== UNPAIRABLE from vsetv: ====
    join -v2 -t: sat.ch vsetv.ch


    Опять-таки, я пробовал еще вчера сгрузить epg на ТНТ и там всё пучком, в err
    не появляется никакого "NO ID FOR Внимание! Возможность персонального выбора каналов, любые...". А сегодня появилась и Теленяня ch304 кстати ;-)


    Проблема с NO ID FOR Первый канал (Украина) / Эра в том что ВсёТВ выставляет
    несовпадающие имена каналов в списке каналов. В самой программе используются другие имена:-( Что будет исправлено в следующей версии скрипта...


    Прилагаю мой лог после выполнения make distclean all...


    Попробуйте настроить установки для юзера в ВсёТВ (у меня настроены все каналы, и все работает). В channels.conf может быть настроен и один канал...

    Файлы

    • log.gz

      (5.92 kB, скачали 5 раз, последнее скачивание: )

    Сообщение было отредактировано 3 раз, последнее редактирование пользователем avichi ().

  • У меня при выполнении make distclean all
    система висит на строчке
    ./epg2tex < epg > epg.tex


    Видимо чего-то недоустановлено...
    Что нужно установить не подскажете?
    И вообще, какие пакеты и утилиты должны быть установлены дополнительно с основной системой?


    И снова ... Я смотрю и сравниваю Ваш лог -
    ./vsetv >epg
    Setting up...
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. fa05e0eec193f282531b069333887861
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    S90.0E-1-7-14 ch14



    И мой -


    ./vsetv >epg
    Setting up...
    cat: /tmp/cookies.9127: No such file or directory
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    S0.0W-177-176-1 ch125


    У меня опять же видно ошибку. Из-за чего она может вылазить?
    Что можете посоветовать?

    Сообщение было отредактировано 2 раз, последнее редактирование пользователем andrewtit ().

  • это проблема.


    может ваш lynx не поддерживает cookies? у меня:
    $ lynx -version
    Lynx Version 2.8.5rel.1 (04 Feb 2004)
    libwww-FM 2.14, SSL-MM 1.4.1, GNUTLS 1.4.4
    Built on linux-gnu Sep 13 2006 23:25:27


    или не разрешает cookies:


    $ grep ^[^#] ~/.lynxrc |grep -i cookie
    accept_all_cookies=on
    cookie_accept_domains=
    cookie_file=/home/avichi/.lynx_cookies
    cookie_loose_invalid_domains=
    cookie_query_invalid_domains=
    cookie_reject_domains=
    cookie_strict_invalid_domains=


    epg2tex может выполнятся и 20 минут (как у меня, с 421 каналами)...

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем avichi ().

  • Нет, где-то что-то у меня не правильно.
    Весь день сегодня висело на строчке
    ./epg2tex < epg > epg.tex , практически с 08.00 до 16.45
    Попытаюсь разобраться.


    С куками на Lynx вроде как все нормально. Включены:


    Security and Privacy
    Cookie (!) : [accept all]
    Invalid-Cookie Prompting (!) : [prompt normally___]
    SSL Prompting (!) : [prompt normally___]

  • Вот список пакетов установленных из tetex:


    ii latex-xcolor 2.09-1 Easy driver-independent TeX class for color
    ii libkpathsea3 2.1-1 path search library for teTeX (runtime part)
    ii libkpathsea4 3.0-24 path search library for teTeX (runtime part)
    ii pgf 1.09-1 TeX Portable Graphic Format
    ii scalable-cyrfonts-tex 4.10 Scalable Cyrillic fonts for TeX
    ii tetex-base 3.0.dfsg.3-1 Basic TeX input files of teTeX
    ii tetex-bin 3.0-24 The teTeX programs
    ii tetex-doc 3.0.dfsg.3-1 The documentation component of the Debian teTeX packages
    ii tetex-extra 3.0.dfsg.3-1 Additional TeX input files of teTeX
    ii tex-common 0.38 Common infrastructure for using and building TeX in Debian


    ничем другим я вроде не пользуюсь...


    кстати только что проверил, epg2tex сработал с пустым epg, сгенерировав только заглавную страницу...


    насчет lynx: как насчет $ lynx -version и $ grep ^[^#] ~/.lynxrc |grep -i cookie? Совпадает ли с моим выводом?


    Можете ли вы зайти на vsetv.com с lynx? Попробуйте такую последовательность:
    $ rm ~/.lynx_cookies
    $ lynx 'http://www.vsetv.com/login.php?inlogin=ЛОГИН&inpassword=ПАРОЛЬ'
    $ cat ~/.lynx_cookies
    $ lynx 'http://www.vsetv.com'

  • ~$ lynx -version
    Lynx Version 2.8.5rel.1 (04 Feb 2004)
    libwww-FM 2.14, SSL-MM 1.4.1, GNUTLS 1.0.16
    Собрано linux-gnu May 13 2006 08:12:44


    $ grep ^[^#] ~/.lynxrc |grep -i cookie
    accept_all_cookies=on
    cookie_accept_domains=
    cookie_file=/home/andy/.lynx_cookies
    cookie_loose_invalid_domains=
    cookie_query_invalid_domains=
    cookie_reject_domains=
    cookie_strict_invalid_domains=


    ~$ lynx 'http://www.vsetv.com/login.php?inlogin=andrewtit&inpassword=XXX'
    Все нормально логинится как положено. А вот
    ~$ cat ~/.lynx_cookies
    ~$
    Ничего не выдает. :(


    Запуститил make distclean all , снова вылезла строчка -
    cat: /tmp/cookies.13457: No such file or directory
    Видимо связано с тем, что cat ~/.lynx_cookies выдает пустую строку.

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем andrewtit ().

  • Так, вот и разница:
    мой:
    GNUTLS 1.4.4
    Built on linux-gnu Sep 13 2006 23:25:27


    ваш:
    GNUTLS 1.0.16
    Собрано linux-gnu May 13 2006 08:12:44


    попробуйте обновится.


    после удаления .lynx_cookies и команды lynx 'http://www.vsetv.com/login.php?inlogin=andrewtit&inpassword=XXX'
    должно быть выдано сообщение "andrewtit, добро пожаловать на сайт"

  • И так... пробуем дальше :)


    Lynx Version 2.8.5rel.1 (04 Feb 2004)
    libwww-FM 2.14, SSL-MM 1.4.1, GNUTLS 1.4.4
    Собрано linux-gnu Nov 27 2006 06:49:18


    ~$ grep ^[^#] ~/.lynxrc |grep -i cookie
    accept_all_cookies=on
    cookie_accept_domains=
    cookie_file=/home/andy/.lynx_cookies
    cookie_loose_invalid_domains=
    cookie_query_invalid_domains=
    cookie_reject_domains=
    cookie_strict_invalid_domains=


    ~$ rm ~/.lynx_cookies
    ~$ lynx 'http://www.vsetv.com/login.php?inlogin=andrewtit&inpassword=XXX'


    [1px.gif]
    Andrew,
    добро пожаловать на сайт ВсёТВ!
    [str.gif] Личные настройки
    [str.gif] Профайл
    [exit.gif] выйти


    файл ~/.lynx_cookies в домашней директории не создался...


    А в остальном вроде как все ОК. Lynx заходит на мою персональную страничку


    И опят же все по кругу -
    в err
    cat: /tmp/cookies.4100: No such file or directory
    S90.0E-1-7-14 ch14
    ...
    NO ID FOR Внимание! Возможность персонального выбора каналов, любые ....


    Из списка каналов заданных в channels.conf.vsetv
    программу выдает на :
    C S90.0E-1-7-15 DTV +7
    C S90.0E-2-2-5 MTV
    C S90.0E-1-7-13 NTV
    C S90.0E-1-7-14 TNT
    C S90.0E-2-2-7 TV-3 PLUS 7


    Отсутствует на программы:
    CNL:3577:...vsetv=ch125
    FASHION TV;....vsetv=ch86
    O2TV;Scopus ...... vsetv=ch257
    TV ZVEZDA; ...... vsetv=ch232
    SGU TV; ..... vsetv=ch215
    SPAS;PRVDR: ..... vsetv=ch238


    Вот такие вот пироги... :(
    Есть еще мысли?