rssnews.tcl

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

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

rssnews.tcl

Сообщение wr` » 05 июл 2011 15:49

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

Re: rssnews.tcl

Сообщение tvrsh » 05 июл 2011 16:53

Перед строкой
proc rssparse {content} {
добавь код
TCL: [ Скачать ] [ Скрыть ]
# TinyURL shortening.
proc rsstinyurl {url} {
    set http [::http::config -useragent "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"]
    set token [http::geturl "http://tinyurl.com/api-create.php?[http::formatQuery url $url]" -timeout 3000]
    upvar #0 $token state
    if {[string length $state(body)]} {
        return $state(body)
    }
    return $url
}

Далее в процедуре rssparse после строки
regexp -nocase -- {<link>(.+?)</link>} $value tmp link
допиши строку
set link [rsstinyurl $link]

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

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

Re: rssnews.tcl

Сообщение Spoofing » 05 июл 2011 19:13

offtopic
зависть. вызвал функцию и получил результат, не зависимо от времени выполнения.
в мирочке на тех же сокетах приходится обрабатывать события и все "программирование" сводится к callback'ам %(((
Spoofing
 
Сообщения: 51
Зарегистрирован: 10 июн 2009 12:55
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Версия бота:

Re: rssnews.tcl

Сообщение wr` » 05 июл 2011 23:28

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

Re: rssnews.tcl

Сообщение tvrsh » 06 июл 2011 09:41

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

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

Re: rssnews.tcl

Сообщение wr` » 06 июл 2011 11:37

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

Re: rssnews.tcl

Сообщение wr` » 06 июл 2011 19:39

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

Re: rssnews.tcl

Сообщение tvrsh » 07 июл 2011 10:08

В процедуре rssparse после строки
        regexp -nocase -- {<link>(.+?)</link>} $value tmp link
добавь
        set desc {n/a}
        regexp -nocase -- {<description>(.+?)</description>} $value tmp desc

Потом замени
        set rssnews($item) "{$link} {$title}"
на
        set rssnews($item) "{$link} {$title} {$desc}"

В процедуре rssnews_on_data после строки
        regsub -all -- {<publisher>} $output $publisher output
добавь
        regsub -all -- {<desc>} $output [lindex $rssnews($id) 2] output

Тоже самое и в процедуре rsscheck_on_data
Ну и в настройку фидов в POSTLAYOUT и TRIGLAYOUT добавь <desc>. И в строках
        set postlayout   "<publisher> <news> <link>"
и
    set triglayout   "<id> <news> <link>"
тоже.
Не проверял.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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

Re: rssnews.tcl

Сообщение DmitRex » 07 июл 2011 10:16

А нечегче использовать скрипт feed.tcl ?
[10:09:33] <DmitRex> !новость http://bash.org.ru/rss/ +auto
[10:09:35] <DoMoBeHoK> URL http://bash.org.ru/rss/ добавлен в список проверки обновлений успешно.
[10:12:17] <DoMoBeHoK> [ Bash.Org.Ru ] :: Цитата #412165 :: Айвенго: от нашей девятиэтажки столько проводов протянуто, что я уже боюсь, как бы не оказалось, что она только на них и держится... @ http://bash.org.ru/quote/412165
Аватара пользователя
DmitRex
 
Сообщения: 50
Зарегистрирован: 14 июл 2010 10:39
Откуда: Владимир
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Версия бота: Eggdrop 1.6.21

Re: rssnews.tcl

Сообщение tvrsh » 07 июл 2011 10:42

Проще, но если человеку хочется почему бы и не помочь. К тому же, этим улучшается конкурентоспособность скрипта, и в итоге, скриптов становится больше и они становятся лучше. А в случае монополизма на скриптовой арене ничего хорошего не выйдет.
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: rssnews.tcl

Сообщение wr` » 07 июл 2011 22:39

все работает отлично,спасибо большое.Была еще одна мысль,она писалась и ранее,но вот раз начали дополнять этот скрипт,попрошу еще разок.А можно сделать это описание новости сделать так чтоб она выдавалась юзверю при запросе.
например бот выдает ленту
bot:news:убийсто в москве http://источник.ру [!news 1]
и вот как раз при этом запросе !news 1 он будет выдавать описание ленты в приват.
соответственно следущая лента становится опять !news 1,а предыдущая уже станет !news 2.
Думаю ясно объяснил,если это возможно заранее огромное спасибо,если нет ,ничего страшного буду пользоваться что получилось уже

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

Re: rssnews.tcl

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

Чтобы дискрипшн выдавался только в запросе убери его из POSTLAYOUT.
Фраза "не работает" мне не говорит ни о чем. Показывай конкретные ошибки.
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: rssnews.tcl

Сообщение Blans » 14 сен 2012 21:59

wr` писал(а):А можно сделать это описание новости сделать так чтоб она выдавалась юзверю при запросе.
например бот выдает ленту
bot:news:убийсто в москве http://источник.ру [!news 1]
и вот как раз при этом запросе !news 1 он будет выдавать описание ленты в приват.
соответственно следущая лента становится опять !news 1,а предыдущая уже станет !news 2.

А можно подобное реализовать? :)
Blans
 
Сообщения: 10
Зарегистрирован: 07 май 2009 21:59
Откуда: Irkutsk
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: rssnews.tcl

Сообщение tvrsh » 15 сен 2012 15:37

А в чем смысл изменения номеров новостей? Зачем такие сложности?
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 скрипты

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

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

cron