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
    наверх