ipb21.1.tcl, RSS-агрегатор |
ipb21.1.tcl, RSS-агрегатор |
Kreon |
Oct 26 2006, 10:45 PM
Post
#1
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Появилось желание выложить в паблик ipb21.1.tcl, написанный аж с месяц назад. Не смотря на достаточно странное название скрипта, это развитие идеи созданного мной в прошлом ipb2egg.tcl на базе rssnew.tcl от GHhost. В сравнении с предыдущим релизом ipb2egg.tcl исправлено громадное число недочетов, оптимизировано хранение новостей и вывод их по запросу теперь имеет нормальную функциональность. Также появилась возможность поиска в архиве сохраненных новостей и т.п.
В данной версии есть поддержка патча Suzi Project, доступно чтение лент:
Относительно подробная настройка с примерами показана внутри скрипта. С кодировками, отличными от cp1251, хотелось бы провести более широкое тестирование, этим и обусловлено выкладывание скрипта. Команды: !news <источник> [-число[-число2]] [маска запроса] - запрос новостей с источника, начиная с [-числа] до [-числа2], начиная с наиболее свежей новости, но не более PUBLIMIT и MSGLIMIT за раз, и с возможным указанием поиска по архивированным новостям с [маской запроса] !feeds - вывод списка источников Версия 1.0: ipb21.1.tcl ( 20.11k ) Number of downloads: 2028 Версия 1.2: ipb21.1.tcl ( 22.74k ) Number of downloads: 2036 -------------------- Не понял сам - не дай понять другому
|
Kreon |
Oct 29 2006, 11:01 AM
Post
#2
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Обновление.
Исправлен порядок вывода новостей по запросу, исправлена ошибка в раскодировке русских utf8-лент. -------------------- Не понял сам - не дай понять другому
|
Nexor |
Nov 13 2006, 02:14 PM
Post
#3
|
Unregistered |
Бага ?
С egg_lib 1.55, 1.53a глючит, если не находит новостей - выдает пустые поля вместо сообщения "Нет данных на этом источнике". Потому как фукнция egglib::readdata, теперь возвращает строку "file not exists" , вместо пустой строки, если не находит файла. Поправил в ::ipb21::rsspublic: CODE set data [egglib::readdata $database] на set data "" if {[file exists $database]} { set data [egglib::readdata $database] } Возможно вам это пригодится. |
Nexor |
Nov 13 2006, 03:43 PM
Post
#4
|
Unregistered |
Походу в egg_lib 1.55 произошли серьезные изменения - практически все rss перестали грузиться.
Облом происходит в http_on_read после Request запроса. Буду копать. В tcl новичек. |
Kreon |
Nov 13 2006, 10:01 PM
Post
#5
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
В egg_lib 1.55, - это, как я понимаю, разработка hunt'а - был встроен другой http-клиент, особенностей работы которого лично я не знаю. Мы работаем с официальной egglib_pub 1.5.3 c eggdrop.org.ru, либо модифицированной версией, выложенной в этом же разделе форума, которая полностью совместима со всеми скриптами, написанными ранее под использование этой библиотеки.
Насчет egglib::readdata спасибо за замечание, это ошибка egglib'а 1.5.3а, он в любом случае при отсутствии файла обязан выдавать пустой список. Исправим. -------------------- Не понял сам - не дай понять другому
|
Kreon |
Mar 13 2007, 04:29 PM
Post
#6
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Обновление до версии 1.1:
-------------------- Не понял сам - не дай понять другому
|
Alvor |
Mar 15 2007, 09:20 AM
Post
#7
|
Участник Group: Members Posts: 30 Joined: 9-March 07 Member No.: 76 |
POSTLAYOUT=\00310\002www.alvor.ru\002 :: \00310\002Новая тема:\002\00304 <title> \00310(\00303<link>\00310) Дата: \00303<date>\00310. Кратко: \00303<description>
Никак понять не могу, в некоторых случаях <description> идет пустой или непонятные символы: QUOTE <DoMoBoy> Alvor: www.alvor.ru :: Новая тема: Как переместить профиль пользователя в другое место (http://www.alvor.ru/index.php?showtopic=454) Дата: Mar 13 2007, 13:32. Кратко: Ну иногда и "Кратко: ]]>" А есть и вообще чудеса "Кратко: http://alvor.ifolder.ru/1349741]]" Хотя в посте до ссылки идет текст, почему-то он не проходит. Тип - rss, ссылка именно на RSS, если ставлю ipb21 то <description> пустой во всех случаях. |
Kreon |
Mar 15 2007, 12:53 PM
Post
#8
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
А источник RSS либо его часть в качестве образца для исследования можно приложить?
Предполагаю, что такая свистопляска с description начинается, когда данные пакуются в теги типа <![CDATA[ ... ]]>. Во всех остальных случаях все отображение предполагается корректным - взять к примеру любую ленту новостей с yandex.ru. К следующему релизу скрипта проблема вырезания данных из cdata будет исправлена. Попутно сейчас осмотрел новый формат вывода RSS средствами более современных версий форума IPB (на примере forum.zelek.ru), - и там, как ни странно, обнаружились новые поля для автора топика и сообщения. Сооветственно также в перспективе будет добавлен новый вариант парсинга с поддержкой этих параметров. -------------------- Не понял сам - не дай понять другому
|
Alvor |
Mar 15 2007, 03:53 PM
Post
#9
|
Участник Group: Members Posts: 30 Joined: 9-March 07 Member No.: 76 |
http://www.alvor.ru/index.php?act=rssout&id=1
Хотя есть подозрения что дело в криво сделанном RSS, ибо форум нелицензионный и изначально RSS-вывод там вообще отсутствовал. Хотя в опере RSS нормально сваливаются. |
Kreon |
Mar 16 2007, 04:20 PM
Post
#10
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Обновление до версии 1.2:
-------------------- Не понял сам - не дай понять другому
|
Xeption |
Mar 16 2007, 08:02 PM
Post
#11
|
Посетитель Group: Members Posts: 4 Joined: 16-March 07 Member No.: 79 |
QUOTE Какую бы версию ни ставил (что 1.0, что 1.1, выложенную на форуме автора), получаю следующее: 1. не создаётся файл базы 2. в логе постоянно "Tcl error [ipb21::rssupdate]: can't read "port": no such variable" Соответственно, в ответ всё время слышу "Нет данных на этом источнике... -.-". Всё это работает на FreeBSD 6.1, eggdrop 1.6.18 с egglib_pub 1.5.3. С правами всё ок. На том конце провода IPB 2.2.1. Естественно, рехэш и даже рестарт бота я пробовал. Порт специально в адресе прописывал. Проверить имею возможность только на этом форуме, компьютер с ботом без инета. Есть идеи? =) Попробовал 1.2. Файл базы создаётся, ошибка исчезла. Вот только вместо новостей получаю "Нет данных на этом источнике... -.-" =\ Кто-нибудь тестировал скрипт на IPB 2.2? |
Kreon |
Mar 16 2007, 08:14 PM
Post
#12
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Я тестировал %)
Правда трудно сказать, что это такое именно. Но наверн что-то типа 2.2. Пример тестируемой ленты здесь. Пример настройки под такой источник в конфиге как forum.zelek.ru. Работает корректно. Проверьте конфиги, убедитесь, что адрес ленты указан верно. Такое вполне может происходить, к примеру, если указаны прокси, выдающие ошибку вида access denied - парсинг полученной страницы вместо ожидаемой ленты новостей не отображает ошибок на патилайне, а просто приводит к пустому файлу кэша. Попробуйте поискать ошибку, проставив на пусти следования скрипта putlog'и: возможно найдется место, где происходит затык. Если ничего сделать не удастся, приведите конфиг вашего источника и часть RSS-ленты здесь. -------------------- Не понял сам - не дай понять другому
|
Xeption |
Mar 17 2007, 05:10 AM
Post
#13
|
Посетитель Group: Members Posts: 4 Joined: 16-March 07 Member No.: 79 |
Так. Вроде работает. Правда, всё в знаках вопроса, но это ведь не проблема, да? =) И, кажется, оно выводит не только новые, а все новости. Думается, что логичнее всего было бы молчать, если ничего нового не произошло с момента последней проверки, а если произошло - постить только новые. Или так и есть, просто у меня опять глючит?
*** Сейчас специально сделал локальную копию rss от яндекса. Оно в cp1251, в скрипте "set ipb21(encoding_to) cp1251", в настройках ленты в скрипте "ENCODINGFROM=cp1251", locale пользователя, от имени которого запускается бот - тоже cp1251. Но выводятся вопросики. Больше того, оно во временный файл его пишет уже вопросиками... =\ Kreon, ты случайно не на windrop тестишь? =) |
Kreon |
Mar 17 2007, 10:01 AM
Post
#14
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
если ничего нового не произошло с момента последней проверки, а если произошло - постить только новые. Или так и есть, просто у меня опять глючит? Так все и есть. Тестирую на windrop 1.6.18 + Suzi Patch, на сервере запущен eggdrop 1.6.18 + Suzi Patch, везде все нормально. В скрипте *вроде бы* была перекодировка для непропатченных ботов, - сейчас поищу, если где на винчестере старый бот с ошибающимися кодировками остался - проверю на нем. --- Тест на windrop 1.6.18 cvs без патчей -- уж какой есть. encoding system iso8859-1 Подключил выложенный выше скрипт 1.2 без каких бы то ни было изменений. Все ленты кроме с UTF-8 перекодировались нормально без '???'. Ищите ошибку у себя. С UTF-8 буду копать. Хотя в принципе там, с utf, понятно, в чем дело. Исправление будет чуть позже. -------------------- Не понял сам - не дай понять другому
|
Xeption |
Mar 17 2007, 09:21 PM
Post
#15
|
Посетитель Group: Members Posts: 4 Joined: 16-March 07 Member No.: 79 |
Проблема решена. Причина была в том, что в конфиге бота не было явно прописано "encoding system cp1251" - я думал, что работать он будет с той кодировкой, которую имеет его юзер. Ан нет =)
|
Alvor |
Mar 19 2007, 10:10 AM
Post
#16
|
Участник Group: Members Posts: 30 Joined: 9-March 07 Member No.: 76 |
Отличненько. Теперь разве чтотеги цитат не обрабатывает.
QUOTE www.alvor.ru :: Тема: Пиратский пингвин (http://www.alvor.ru/index.php?showtopic=505) Дата: 19 March 2007, 00:12. Кратко: Перед прочтением рекомендую поставить кофе/чай на стол, чтобы ненароком не облиться ) ЦитатаПозволю себе процитировать недавнее сообщение от знакомого... там где начинается цитата, вставляет слово "Цитата" и далее сплошняком текст. Это совсем не критично, но как-то наверное можно поинтереснее сделать? |
Alvor |
Apr 4 2007, 01:39 PM
Post
#17
|
Участник Group: Members Posts: 30 Joined: 9-March 07 Member No.: 76 |
Что-то форум заглох. Скрипт пришлось снести, ибо каждые 5 минут при обновлении RSS бот вис почти намертво. Минуты на 2-3.
|
Kreon |
Apr 4 2007, 02:52 PM
Post
#18
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
В патилайне ошибок не видно? Если удалить кэш собранных данных, проблема останется?
Если так, то это наврядли проблема скрипта. ipb21.1 для получения информации использует egglib_pub, соответственно дело должно быть в том http-клиенте. Т.к. используются стандартные запросы скачивания веб-страниц, то в таком случае бота бы стал вешать любой скрипт, скачивающий веб-данные посредством этой либы. По поводу цитат что-нибудь посмотрю, как будет время. А для форума такое состояние обыденно. А уж особенно когда здесь веб-сервер периодически умирает. -------------------- Не понял сам - не дай понять другому
|
Xeption |
Apr 19 2007, 04:27 PM
Post
#19
|
Посетитель Group: Members Posts: 4 Joined: 16-March 07 Member No.: 79 |
Если в имени автора или темы есть квадратная скобка - имя не выводится совсем. Кроме того, бот почти всегда кроме тем с новыми сообщениями выводит одну тему, в которой с последней (последних) проверки ничего не изменилось, хотя это может оказаться багом форума, у ipb всегда была проблема с выводом новых тем =)
|
uff |
Feb 21 2008, 07:18 PM
Post
#20
|
Посетитель Group: Members Posts: 2 Joined: 3-February 08 Member No.: 179 |
хотелось бы чтобы доработали для 2.3.3 версий.. работает вроде но надо сменить немного..
был бы очень рад если будет релиз!) |
Lo-Fi Version | Time is now: 1st June 2024 - 08:42 AM |