RSSReader 1.0
О модуле :
RSSReader - модуль, предназначенный для чтения заголовков новостей формата RSS.
Хотя нет, самостоятельным модулем его назвать нельзя - так как сам RSSReader показывать текст не может,
требуется какой-нибудь текстовый контейнер: Label, xLabel или xLabelLight
Системные требования :
Никаких дополнительных требований к программному и аппаратному обеспечению модуль не предъявляет. Я надеюсь, во всяком случае :)
Использование :
Каждый запрос RSS-новостей должен быть озаглавлен следующим образом:
*RSSimport [имя]
Настройки запроса имеют вид
[имя][настройка] [значение]
например:
*RSSImport MySiteNews
MySiteNewsURL http://www.mysite.ru/news/backend/rss.xml
Пример файла настройки с использованием модуля xLabelLight 2.8.3:
;===============================================
; RSS news feeds (RSSReader v1.0)
;-----------------------------------------------
*RSSimport RSS
RSSURL http://www.shellfront.org/shellfront.xml
RSSItemCount 10
RSSUpdateInterval 100
RSSInfoString ^@Description^\n(^@Link^)
RSSItemString ^@Title^\n^@Description^
RSSItemSeparator \n
RSSEnabled true
RSSInfoLabel RSSLabelTitle
RSSItemLabel RSSLabelItems
RSSOnUpdated !Execute [!LabelShow RSSLabelTitle][!LabelShow RSSLabelItems]
;RSSOnFailure !alert "RSS Update Failed"
;======================
*Label RSSLabelTitle
;----------------------
RSSLabelTitleX -300
RSSLabelTitleY 50
RSSLabelTitleWidth 224
RSSLabelTitleHeight 84
RSSLabelTitleText "Here would be the title"
RSSLabelTitleImage rss_head.png
RSSLabelTitleImageMode stretch
RSSLabelTitleStartHidden
;======================
*Label RSSLabelItems
;----------------------
RSSLabelItemsX -300
RSSLabelItemsY 135
RSSLabelItemsWidth 224
RSSLabelItemsHeight 300
RSSLabelItemsText "Here would be the dragons"
RSSLabelItemsImage rss_body.png
RSSLabelItemsImageMode stretch
RSSLabelItemsImageTopEdge 3
RSSLabelItemsImageBottomEdge 3
RSSLabelItemsLeftBorder 5
RSSLabelItemsRightBorder 5
RSSLabelItemsTopBorder 5
RSSLabelItemsBottomBorder 5
RSSLabelItemsAutoLineBreak true
RSSLabelItemsAlign left
RSSLabelItemsVertAlign top
RSSLabelItemsFontHeight 13
RSSLabelItemsStartHidden
Настройка :
ЗАМЕЧАНИЕ: Двойные кавычки мастдай.
Параметры запроса:
(имя запроса)URL [RSS-файл]
Путь к файлу XML-формата, непосредственно содержащего новости.
По умолчанию : http://www.shellfront.org/shellfront.xml
(имя запроса)Enabled [false/true]
Если настройка включена, запросы будут производиться автоматически. В противном случае требуется использовать !команду !RSSUpdate самостоятельно
По умолчанию : true
(имя запроса)UpdateInterval [число]
Интервал между запросами (в секундах!).
По умолчанию : 600 (10 минут)
(имя запроса)ItemCount [число]
Максимальное количество новостей, которое нужно взять из RSS-файла
По умолчанию : 10
(имя запроса)InfoString [форматная строка]
Форматная строка задаёт вид, по которому будет сформирован текст шапки запроса. Помимо простого текста в ней можно использовать специальные переменные
По умолчанию : ^@Title^\n(^@Link^)\n^@Description^
(имя запроса)ItemString [форматная строка]
С помощью этой настройки вы можете задать, как и какую информацию выдавать относительно новостей. Для формирования этой строки потребуются специальные переменные
По умолчанию : ^@Title^ (^@Link^)
(имя запроса)ItemSeparator [текст]
Текст разделителя, вставляемого между текстом отдельных новостей.
По умолчанию : \n
(имя запроса)OnUpdated [действие]
Действие, которое будет выполнено после успешных загрузки и разбора RSS-файла.
По умолчанию : !none
(имя запроса)OnFailure [действие]
Действие, которое будет выполнено, если не удалось загрузить или разбрать RSS-файл.
По умолчанию : !none
(имя запроса)InfoLabel [имя текстового контейнера]
Если задано и не пусто, то при обновлении RSS текст данного контейнера будет установлен по формату, заданному настройкой InfoString.
По умолчанию : пустая строка
(имя запроса)ItemLabel [имя текстового контейнера]
Если задано и не пусто, то при обновлении RSS текст данного контейнера будет сформирован из ItemCount строк, заданных настройкой ItemString и разделённых текстом, заданным ItemSeparator.
По умолчанию : пустая строка
!Команды :
Первый параметр всех команд - имя RSS-запроса.
Например, для обновления новостей, описанных запросом MySiteNews, требуется выполнить команду
!RSSUpdate MySiteNews
Полный список доступных !команд:
!RSSUpdate (имя запроса)
Произвести запрос.
!RSSEnable (имя запроса)
Включить автообновление новостей.
!RSSDisable (имя запроса)
Отключить автообновление новостей.
!RSSToggle (имя запроса)
Переключить состояние автообновления новостей.
!RSSSetURL (имя запроса) [URL]
Изменить URL RSS-файла.
!RSSSetCount (имя запроса) [число]
Изменить количество отображаемых новостей.
!RSSSetInfoString (имя запроса) [форматная строка]
Изменить форматную строку заголовка новостей.
!RSSSetItemString (имя запроса) [форматная строка]
Изменить форматную строку содержания новостей.
!RSSSetItemSeparator (имя запроса) [текст]
Изменить текст разделителя между новостями.
!RSSSetUpdateInterval (имя запроса) [время в секундах]
Изменить интервал между обновлениями.
Специальные переменные:
В форматной строке можно использовать следующие специальные переменные, aka escape-последовательности:
^@Title^
Заголовок новости/название RSS-канала
^@Link^
Основная ссылка новости/канала
^@Description^
Полный текст новости/описание канала
Эскпортируемые переменные:
После обновления новостей RSSReader эспортирует следующие переменные:
(имя запроса)_Title
Название RSS-канала
(имя запроса)_Link
Основная ссылка канала
(имя запроса)_Description
Описание канала
(имя запроса)_Info
Заголовок канала, сформированный по форматной строке (имя запроса)InfoString
(имя запроса)_Items
Текст новостей, сформированных по форматной строке (имя запроса)ItemString, размежёванный текстом (имя запроса)ItemSeparator
(имя запроса)_Item1, (имя запроса)_Item2, (имя запроса)_Item3 и т.д.
Текст отдельных новостей, сформированный по строке (имя запроса)ItemString
(имя запроса)_Item1_Title, (имя запроса)_Item1_Link, (имя запроса)_Item1_Description,
(имя запроса)_Item2_Title, (имя запроса)_Item2_Link и т.д.
Отдельные компоненты, указанные в описании новостей
Изначально предполагалось, что основную нагрузку возьмут на себя именно эти переменные, действие OnUpdated + !команда !ParseEvars - открывались воистину безграничные просторы для творчества :) К примеру, можно создать 10 текстовых контейнеров, при OnUpdated назначать им текст %#Item[номер]Title$#, а событие OnClick - %#Item[номер]Link%#. Проблема встала только одна - LiteStep ужасно работает с текстом. Точнее, вообще никак с ним не работает. В результате если ^@Title^ будет содержать двойные кавычки, текст обрежется неизвестно где и неизвестно зачем... Экранировать переменные одинарными кавычками? А вдруг в ^@Title^ окажется одинарная кавычка? В-общем, лично у меня получилась фигня... Может у вас чего дельного получится? ;)
Журнал изменений :
Версия 1.0, 04.04.2004
Младенец открыл глаза, кашлянул, задрыгал ножками и что есть мочи заорал
Автор :
Handle :
Сергей Гагарин a.k.a. Seg@
E-Mail :
inform-sega@freemail.ru
Web :
http://www.litestep.bip.ru/
ICQ : 162261148
IRC : #litestep @ freenode.net