Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Сетевые скрипты [PtokaX] _ RSS.Feed.Bot.V2.3.Final.LUA5-PtokaX_API2

Автор: Ksan 24.9.2010, 2:16

Название: RSS.Feed.Bot.V2.3.Final.LUA5-PtokaX_API2
Платформа: PtokaX 0.4.1.x
API: API 2
Версия: 2.3
Автор: S.t.0.n.e d.b
Переводчик с API 1 на API 2 (и подкорректировал html-дизайн): Ksan (г.Томск)
Прикрутил другую библиотеку (и решил проблему с UTF-8): Nickolya (г.Тула)
Дата переделки: 24-09-2010
Библиотека: для работы скрипта требуется библиотека http://mydc.ru/topic43.html

Описание:
- можно одновременно прикрутить ленты из разных сайтов,
- админ может кэшировать сразу все ленты для ускорения доступа к ним,
- можно генерировать ленты в виде html-страничек и просматривать их через сервер хаба по ссылке,
- кому не нравится дизайн, может сам переделать, используя настройки скрипта big_smile.gif
- к скрипту прилагаю папки и образцы лент со своего хаба (одна из лент чисто томская, так что с интернета не получится взглянуть на сам сайт) для наглядного примера, как создавать ленты.

Примечание: для *nix-платформ потребуется другая библиотека, а где и как её добыть - обсудите в теме.

PS: Надеюсь, что с этим скриптом тема RSS-лент хоть на какое-то время станет неактуальной.
UPD: Перезалил скрипт, исправив небольшую ошибочку.


 RSS.Feed.Bot.V2.3.Final.LUA5_PtokaX_API2.rar ( 42.57 килобайт ) : 322
 

Автор: DEN 007 25.9.2010, 17:08

Заказать новую ленту -- не работает

а в общем скрипт респек спс.

Да и потом подумал так, а почему бы не заносить данные просто в базу, то есть не генерировать хтмл странички, а заносить в базу.

Автор: Ksan 25.9.2010, 17:25

1. Сорри, при переводе на АПИ2 пропустил...в строке 670 (в скрипте из первого сообщения):

Код
toFeedSpy("Юзер: "..user.sName.." запросил новую RSS-ленту.\r\n\t\t Лента: "..feed.."\r\n\t\t Описание: "..desc);

надо user.sName заменить на user.sNick. Должно получиться так:
Код
toFeedSpy("Юзер: "..user.sNick.." запросил новую RSS-ленту.\r\n\t\t Лента: "..feed.."\r\n\t\t Описание: "..desc);

Я проверил - работает.

Файл в первом сообщении перезалит.

2. Насчёт занесения в базу - скрипт очень тяжёлый, написан старомодно и очень трудно проследить, что куда и для чего. Я лично не возьмусь, пожалуй, по крайней мере, пока нет желания big_smile.gif. К сожалению, да, при перезапуске скрипта кэш обнуляется и снова нужно перекэшировать, хотя при запросе отдельного юзера отдельной ленты кэширование конкретной ленты всё равно произведётся.

3. Я сегодня всю ночь парился с автоматизированием кэширования при запуске и через определенное время по таймеру.
Всё вроде сделал, но потом обнаружил, что если меня нет (как админа, которому нужно послать информацию о процессе кэширования) на хабе при запуске скрипта (так может случиться, когда перезапускаешь хаб или компьютер, и ты ещё не успел попасть на хаб), то скрипт валится за отсутствием табличного юзера...Пока отложил на потом, когда придумаю, как кэшировать без отсыла информациии.

PS: Если кто-то сможет эти 2 последних пункта решить положительно, я буду только рад.

Автор: DEN 007 2.10.2010, 8:43

хря се память грузится..( у меня комп повис на пару секунд после запуска хеширования)))
Не я лучше сделаю несколько rss чем так убивать))

Автор: Ksan 2.10.2010, 11:45

DEN 007, ну как знаешь, лично я не нахожу в этом ничего особенного, у меня проц загружается максимум до 60% на несколько секунд...Это естественно при одновременном открывании (или парсинге) нескольких страничек в интернете, а если ты запихал еще больше...Сомневаюсь, что твой проц жаловался тебе. big_smile.gif
Хотя можно попытаться кэшировать от имени админа каждую ленту по отдельности. Для этого есть ключ "force", то есть, можно запускать чтение ленты от имени админа с этим ключом.
Пример: !obzor force
При этом лента прокэшируется принудительно, даже если была только что перед этим кэширована, но содержание ленты тоже свалится в твой приват. big_smile.gif А проц всё равно будет так же загружен, но на более короткий срок. Это вся разница.

Автор: DEN 007 2.10.2010, 20:57

Спс попробую...

Автор: valdis73 31.10.2010, 12:07

Ksan конечно спасибо, всё работает. Жаль на никсах не пошла. Ну да ладно, тут вопрос другой:
Как сделать, что бы лента выдавала новинки портала, или хотя бы добавить адрес ленты, скажем у меня разделы распределены и RSS адреса у них разные, так вот скажем при поступлении нового релиза в определённый раздел - информация выводилась в чат хаба. Или хотя бы из интервала. Скажем бот сканировал бы раз в 20 минут или полчаса раздел портала, и выдавал бы последние 2-3 новинки в чат хаба.

Автор: Ksan 31.10.2010, 13:11

valdis73, я не возьмусь переделывать этот скрипт. Там много увязок разных, тронешь хоть одно что-то, вся цепочка становится уязвимой, кроме того, весь кэш RSS-лент держится ТОЛЬКО в памяти, это тоже создаёт дополнительные проблемы. Короче, скрипт тяжёлый для переделки. Если бы я сам писал, другое дело, я ведь только перевёл и выложил..
Может, кто другой возьмётся...

Автор: valdis73 31.10.2010, 13:43

Ну как бы там ни было, всё равно респект))))