RSSReader 1.1
О модуле :
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.1)
;-----------------------------------------------
*RSSimport RSS
RSSURL http://www.shellfront.org/shellfront.xml
RSSItemCount 10
RSSUpdateInterval 100
RSSInfoString ^@Description^\n(^@Link^)
RSSItemString ^@Title^
RSSItemSeparator \n
RSSEnabled true
RSSInfoLabel RSSLabelTitle
RSSItemLabel RSSLabelItems
RSSOnUpdated !Execute [!LabelShow RSSLabelTitle][!LabelShow RSSLabelItems][!RSSSetUpdateInterval RSS 900]
RSSOnFailure !RSSSetUpdateInterval RSS 100
RSSLocalFile "$MiscDir$rss.xml"
RSSOnNewsUpdated !alert "There are news available!"
;======================
*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 170
RSSLabelItemsText "Here would be the dragons"
RSSLabelItemsImage rss_body.png
RSSLabelItemsImageMode stretch
RSSLabelItemsImageTopEdge 3
RSSLabelItemsImageBottomEdge 3
RSSLabelItemsLeftBorder 5
RSSLabelItemsRightBorder 5
RSSLabelItemsTopBorder 10
RSSLabelItemsBottomBorder 5
RSSLabelItemsAutoLineBreak true
RSSLabelItemsAlign left
RSSLabelItemsVertAlign top
RSSLabelItemsStartHidden
Настройка :
ЗАМЕЧАНИЕ: Двойные кавычки мастдай.
Параметры запроса:
(имя запроса)URL [RSS-файл]
Путь к файлу XML-формата, непосредственно содержащего новости.
По умолчанию : http://www.shellfront.org/shellfront.xml
(имя запроса)LocalFile [файл]
Если указано, то этот файл будет использоваться для отслеживания изменений в XML-файле на сервере (то есть появились ли новости с момента последнего запроса). В противном случае будет использоваться временный файл, и настройка OnNewsUpdated будет недоступна.
По умолчанию : пустая строка, слежение отключено
(имя запроса)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
(имя запроса)OnNewsUpdated [действие]
Действие, которое будет выполнено, если RSS-файл на сервере изменился (появились "новые новости"). Не будет работать, если не указан LocalFile
По умолчанию : !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.1, 06.04.2004
Добавил возможность отслеживания изменений в новостях (LocalFile и OnNewsUpdated)
Сообщения об ошибках содержали внутреннее имя модуля - Kapitoshka. Глюк :)
Добавил Version Info для файла. Зачем? А просто так...
Версия 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