twitter читалка

Просьбы о написании новых скриптов или поиске уже существующих.

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

twitter читалка

Сообщение Knodek » 27 сен 2012 23:21

Всем привет. Просьба помочь с реализацией.
Требуется сохранять твиты определенного аккаунта.
ТЗ: Бот висит на канале и ждёт команды (например !запись RidusNews )
По команде он заходит по адресу https://twitter.com/RidusNews , начинает ждать новых твитов, и каждый из новых скидывает в ирц канал.
Подскажите, с чего начинать? Что делать? Авторизация не требуется.
Нашел пару ссылок на забугорных сайтах:
http://forum.egghelp.org/viewtopic.php?t=17780
http://forum.egghelp.org/viewtopic.php?t=17556
Но мне бы маленькую читалочку, без больших настроек.
EggDrop1.6.20-sp0010-handlen32
Knodek
 
Сообщения: 4
Зарегистрирован: 27 сен 2012 21:33
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: twitter читалка

Сообщение tvrsh » 28 сен 2012 08:05

Ну если совсем маленький нужен, то делаешь так.
Создаешь процедуру, которая будет по таймеру через промежутки времени проверять страницу твитера. Там между тэгами
HTML4STRICT: [ Скачать ] [ Скрыть ]
<p class="js-tweet-text"> Текст твита </p>
она будет забирать последний твит в переменную last. Как парсить страничку написано тут: Как взять данные с web-страницы?
Ну так вот. Каждый раз она забирает последний твит и сравнивает его с предыдущим. То есть, забрал твит в переменную last, и переменной old присвоил такое же значение:
set old $last

В следующий раз опять забрал твит в переменную last и сравниваешь его с переменной old, если они разные, то забранный твит - новый, пишешь его в канал и присваешь переменной old новое значение:
if {$last != $old} {
    putserv "PRIVMSG $chan : Текст твита из $last."
    set old $last
}


А чтобы скрипт начинал работать по команде, надо сделать так, чтобы парсилась страничка только при наличии флага на канале. Команда и будет устанавливать этот флаг. Другая команда может его снимать. Также в команде можно указать канал куда постить результаты.
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: twitter читалка

Сообщение Knodek » 01 окт 2012 03:17

Проблемы появились при отображении русс. букв в неправильной кодировке. Не смогли решить.
Люди подсказали способ чтения из rss лент. Стандартный запрос нашли такой:
!feed http://twitter.com/statuses/user_timeline/nick.rss +auto
Но теперь вопрос в другом. Можно ли делать запрос по короче? Например с мобилы набрать !feed twi nick +auto а бот сам поймёт, что нужно переделать в полную команду (см. выше)?

Или возможно ли заранее подготовить штук 10-20 разных пользователей, но чтоб их рсс-ленты находились в режиме ожидания? Дело в том, что часто придётся некоторых включать на запись, а в конце дня их выключать. Сейчас приходится на каждого писать полную команду на добавление рассылки или удаления из рассылки.
EggDrop1.6.20-sp0010-handlen32
Knodek
 
Сообщения: 4
Зарегистрирован: 27 сен 2012 21:33
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: twitter читалка

Сообщение tvrsh » 01 окт 2012 14:26

Ну это не стандартный запрос, а скрипт feed.tcl, с его автором можно пообщаться на этом форуме.
Простой способ укоротить команду это хардкодом для каждого твитера прописать в скрипт примерно такие конструкции:
if {$text=twinick} {
    set url http://twitter.com/statuses/user_timeline/nick.rss
}

где, $text это текст воодимый пользователем, а $url это урл передаваемый скрипту. Названия переменных не точные, в скрипте другие, этот код работать не будет.
Укажи в профиле какая у тебя версия бота.
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: twitter читалка

Сообщение Knodek » 01 окт 2012 14:54

Тогда придётся в скрипт писать замену текста на каждый из ников, а охота универсально. Чтоб добавлялся любой человек.
после слова twi бот понимает, что нужно подставить ссылку http://twitter.com/statuses/user_timeline/???????.rss а вот после уже разные ники nick подставляются внутрь ссылки в место знаков вопросов.
Чтобы абсолютно любого человека можно было читать.
(EggDrop1.6.20-sp0010-handlen32)
EggDrop1.6.20-sp0010-handlen32
Knodek
 
Сообщения: 4
Зарегистрирован: 27 сен 2012 21:33
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: twitter читалка

Сообщение Knodek » 14 окт 2012 22:53

Недавно твиттер перестал читаться. Стали разбираться. В итоге оказалось что нужно сменить формат команды
!feed http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=ник +auto
EggDrop1.6.20-sp0010-handlen32
Knodek
 
Сообщения: 4
Зарегистрирован: 27 сен 2012 21:33
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


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

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

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

cron