Quiz Memorial Forum

Welcome Guest ( Log In | Register )

2 Pages V  1 2 >  
Reply to this topicStart new topic
> ipb21.1.tcl, RSS-агрегатор
Kreon
post 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, доступно чтение лент:
  • Стандарта IPBшного ssi.php (промаркировано просто как ipb, изначально было замечено в форумах IPB версий 1.3-2.0.4)
  • Стандартного вывода RSS в IPB 2.1.x.
  • Всех прочих лент, но с ограниченным функционалом
Помимо этого стало возможным раскодирование RSS, где текст новостей представлен в символах вида &#(число);, но также не оттестировано, от чего зависит такой вывод. Пока предположили, что это относится к UTF8-источникам, т.к. было замечено только на нем. %)
Относительно подробная настройка с примерами показана внутри скрипта.
С кодировками, отличными от cp1251, хотелось бы провести более широкое тестирование, этим и обусловлено выкладывание скрипта.

Команды:
!news <источник> [-число[-число2]] [маска запроса] - запрос новостей с источника, начиная с [-числа] до [-числа2], начиная с наиболее свежей новости, но не более PUBLIMIT и MSGLIMIT за раз, и с возможным указанием поиска по архивированным новостям с [маской запроса]
!feeds - вывод списка источников

Версия 1.0:
Attached File  ipb21.1.tcl ( 20.11k ) Number of downloads: 1494

Версия 1.2:
Attached File  ipb21.1.tcl ( 22.74k ) Number of downloads: 1512


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Oct 29 2006, 11:01 AM
Post #2


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Обновление.
Исправлен порядок вывода новостей по запросу, исправлена ошибка в раскодировке русских utf8-лент.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Nexor
post 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]
}


Возможно вам это пригодится.
Go to the top of the page
+Quote Post
Nexor
post Nov 13 2006, 03:43 PM
Post #4


Unregistered









Походу в egg_lib 1.55 произошли серьезные изменения - практически все rss перестали грузиться.
Облом происходит в http_on_read после Request запроса.

Буду копать.
В tcl новичек.
Go to the top of the page
+Quote Post
Kreon
post 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а, он в любом случае при отсутствии файла обязан выдавать пустой список. Исправим.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Mar 13 2007, 04:29 PM
Post #6


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Обновление до версии 1.1:
  • Исправлено декодирование utf-8.
  • Расширен функционал команды !feeds. При использовании на канале она выведет только те источники, которые разрешены для этого канала.
  • Небольшие изменения в парсинге.
Новая версия прилагается в первом сообщении темы. Вместе с ней прилагается любое количество ненайденных ошибок.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alvor
post 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> пустой во всех случаях.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post 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), - и там, как ни странно, обнаружились новые поля для автора топика и сообщения. Сооветственно также в перспективе будет добавлен новый вариант парсинга с поддержкой этих параметров.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alvor
post 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 нормально сваливаются.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Mar 16 2007, 04:20 PM
Post #10


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Обновление до версии 1.2:
  • Добавлено поле <description> в выборку ipb21. Корректная работа с доп. тегом CDATA в оном.
  • Поддержка новых версий IPB для выборки ipb21 - добавлены поля <starter> (автор темы) и <author> (автор последнего сообщения)


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xeption
post 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?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post 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-ленты здесь.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xeption
post Mar 17 2007, 05:10 AM
Post #13


Посетитель
*

Group: Members
Posts: 4
Joined: 16-March 07
Member No.: 79



Так. Вроде работает. Правда, всё в знаках вопроса, но это ведь не проблема, да? =) И, кажется, оно выводит не только новые, а все новости. Думается, что логичнее всего было бы молчать, если ничего нового не произошло с момента последней проверки, а если произошло - постить только новые. Или так и есть, просто у меня опять глючит? biggrin.gif

*** Сейчас специально сделал локальную копию rss от яндекса. Оно в cp1251, в скрипте "set ipb21(encoding_to) cp1251", в настройках ленты в скрипте "ENCODINGFROM=cp1251", locale пользователя, от имени которого запускается бот - тоже cp1251. Но выводятся вопросики. Больше того, оно во временный файл его пишет уже вопросиками... =\

Kreon, ты случайно не на windrop тестишь? =)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Mar 17 2007, 10:01 AM
Post #14


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



QUOTE(Xeption @ Mar 17 2007, 05:10 AM) *

если ничего нового не произошло с момента последней проверки, а если произошло - постить только новые. Или так и есть, просто у меня опять глючит? biggrin.gif

Так все и есть. Тестирую на 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, понятно, в чем дело. Исправление будет чуть позже.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xeption
post Mar 17 2007, 09:21 PM
Post #15


Посетитель
*

Group: Members
Posts: 4
Joined: 16-March 07
Member No.: 79



Проблема решена. Причина была в том, что в конфиге бота не было явно прописано "encoding system cp1251" - я думал, что работать он будет с той кодировкой, которую имеет его юзер. Ан нет =)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alvor
post 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. Кратко: Перед прочтением рекомендую поставить кофе/чай на стол, чтобы ненароком не облиться ) ЦитатаПозволю себе процитировать недавнее сообщение от знакомого...

там где начинается цитата, вставляет слово "Цитата" и далее сплошняком текст. Это совсем не критично, но как-то наверное можно поинтереснее сделать?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alvor
post Apr 4 2007, 01:39 PM
Post #17


Участник
***

Group: Members
Posts: 30
Joined: 9-March 07
Member No.: 76



Что-то форум заглох. Скрипт пришлось снести, ибо каждые 5 минут при обновлении RSS бот вис почти намертво. Минуты на 2-3.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Apr 4 2007, 02:52 PM
Post #18


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



В патилайне ошибок не видно? Если удалить кэш собранных данных, проблема останется?
Если так, то это наврядли проблема скрипта.
ipb21.1 для получения информации использует egglib_pub, соответственно дело должно быть в том http-клиенте. Т.к. используются стандартные запросы скачивания веб-страниц, то в таком случае бота бы стал вешать любой скрипт, скачивающий веб-данные посредством этой либы.

По поводу цитат что-нибудь посмотрю, как будет время.
А для форума такое состояние обыденно. А уж особенно когда здесь веб-сервер периодически умирает.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xeption
post Apr 19 2007, 04:27 PM
Post #19


Посетитель
*

Group: Members
Posts: 4
Joined: 16-March 07
Member No.: 79



Если в имени автора или темы есть квадратная скобка - имя не выводится совсем. Кроме того, бот почти всегда кроме тем с новыми сообщениями выводит одну тему, в которой с последней (последних) проверки ничего не изменилось, хотя это может оказаться багом форума, у ipb всегда была проблема с выводом новых тем =)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
uff
post Feb 21 2008, 07:18 PM
Post #20


Посетитель
*

Group: Members
Posts: 2
Joined: 3-February 08
Member No.: 179



хотелось бы чтобы доработали для 2.3.3 версий.. работает вроде но надо сменить немного..
был бы очень рад если будет релиз!)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

2 Pages V  1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 29th March 2024 - 03:53 PM
Design by GPF © 2006