уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Это третий пост, касающийся работы с 2Windows RSS Platform в Delphi. Предыдущие посты:

  1. Windows RSS Platform в Delphi. Интерфейс IFeedsManager.
  2. Windows RSS Platform в Delphi. Интерфейс IFeedFolder.

Сегодня мы рассмотрим методы и свойства интерфейса IFeed, который предоставляет нам всё необходимое для работы с RSS-каналом сайта.

Интерфейс IFeed предназначен в первую очередь именно для работы с каналом, а не отдельным элементом фида, соответственно сегодня не пойдет речи о том как прочитать заголовки постов и т.д. – только основа работы с каналами.

Вначале рассмотрим методы.

Методы интерфейса IFeed

Методы AsyncDownload и CancelAsyncDownload

procedure AsyncDownload; safecall;
   procedure CancelAsyncDownload; safecall;

AsyncDownload начинает, а CancelAsyncDownload прерывает асинхронную загрузку содержимого RSS-канала.

Метод Delete

procedure Delete;

Удаляет канал из списка в IFeedsManager’e.

Метод Download

procedure Download;

Начинает синхронную загрузку содержимого фида.

Метод GetItem

function GetItem(itemId: Integer): IDispatch; safecall;

Возвращает из фида отдельнй элемент (IFeedItem) по его itemId или nil, если элемент не найден.

Метод MarkAllItemsRead

procedure MarkAllItemsRead; safecall;

Отмечает все элементы фида как «прочитанные».

Метод Merge

procedure Merge(const feedXml: WideString; const feedUrl: WideString); safecall;

Объединяет указанный XML-код с указанным URL.

feedXML — XML-код, подлежащий объединению;

feedURL — URL с которого будет грузиться новый фид для объединения.

XML-должен быть составлен по всем правилам RSS 2.0., а URL должен начинаться либо с http, либо https.

Метод Move

procedure Move(const newParentPath: WideString); safecall;

Переносит канал в новую директорию newParentPath. Перед тем как воспользоваться методом необходимо проверить существование пути.

Метод Rename

procedure Rename(const Name: WideString); safecall;

Изменяет имя канала на Name. Новое имя канала не должно содержать слэшей — эти символы зарезервированы как разделители пути.

Метод XML

function Xml(Count: Integer; sortProperty: FEEDS_XML_SORT_PROPERTY; 
                 sortOrder: FEEDS_XML_SORT_ORDER; filterFlags: FEEDS_XML_FILTER_FLAGS; 
                 includeFlags: FEEDS_XML_INCLUDE_FLAGS): WideString; safecall;

Возвращает XML RSS-канала.

Count — количество элементов фида, которое должно быть загружено.

sortProperty — способ сортировки содержимого. Может принимать одно из следующих значений:

  • FXSP_NONE — не сортировать.
  • FXSP_PUBDATE — сортировать по дате публикации.
  • FXSP_DOWNLOADTIME — сортировать по времени загрузки.

sortOrder — направление сортировки элементов. Может принимать одно из следующих значений:

  • FXSO_NONE — не применять направление сортировки.
  • FXSO_ASCENDING — сортировать от первого до последнего, или от меньшего к большему.
  • FXSO_DESCENDING сортировать с последнего к первому, или в порядке убывания.

filterFlags — параметр, указывающий стоит ли включать в содержимое элементы по их метке о прочтении. Может принимать одно из следующих значений:

  • FXFF_ALL — включать все элементы.
  • FXFF_UNREAD — включать в содержимое только непрочитанные элементы.
  • FXFF_READ — включать только прочитанные элементы.

includeFlags — параметр, указывающий на то, стоит ли включать в исходник пространства имен для канала. Принимает одно из следующих значений:

  • FXIF_NONE — вернуть только XML-разметку.
  • FXIF_CF_EXTENSIONS — возвращать разметку и дополнительное содержимое канала.

Свойства интерфейса IFeed

Свойство Copyright

property Copyright: WideString read Get_Copyright;

Возвращает копирайт фида.

Свойство Description

property Description: WideString read Get_Description;

Возвращает описание RSS-канала.

Свойство DownloadEnclosuresAutomatically

property DownloadEnclosuresAutomatically: WordBool read Get_DownloadEnclosuresAutomatically
write Set_DownloadEnclosuresAutomatically;

Указывает будет ли содержимое RSS-канала обновляться автоматически.

Свойство DownloadStatus

property DownloadStatus: FEEDS_DOWNLOAD_STATUS read Get_DownloadStatus;

Возвращает текущий статус загрузки фида или его части. Может принимать одно из следующих значений:

  • FDS_NONE — попыток загрузить фид не было.
  • FDS_PENDING — скачивание поставлено в очередь.
  • FDS_DOWNLOADING — загрузка продолжается.
  • FDS_DOWNLOADED — загрузка завершена.
  • FDS_DOWNLOAD_FAILED — произошла ошибка.

Свойство DownloadUrl

property DownloadUrl: WideString read Get_DownloadUrl;

Возвращает URL с которого производится загрузка канала.

Свойство Image

property Image: WideString read Get_Image;

Возвращает URL на изображение для RSS-канала.

Свойство Interval

property Interval: Integer read Get_Interval write Set_Interval;

Возвращает или устанавливает промежуток времени (в минутах) через который будет производится автоматическое обновление фида.

Свойство IsList

property IsList: WordBool read Get_IsList;

Возвращает True, если фид является списком.

Свойство ItemCount

property ItemCount: Integer read Get_ItemCount;

Возвращает количество элементов канала.

Свойство Items

property Items: IDispatch read Get_Items;

Возвращает перечислитель (IFeedEnum) для элементов фида (IFeedItem).

Свойство Language

property Language: WideString read Get_Language;

Возвращает язык для RSS-канала.

Свойство LastBuildDate

property LastBuildDate: TDateTime read Get_LastBuildDate;

Возвращает дату последнего обновления содержимого фида. Может вернуть 0 в случае, если канал только что добавлен или он никогда не загружался.

Свойство LastDownloadError

property LastDownloadError: FEEDS_DOWNLOAD_ERROR read Get_LastDownloadError;

Возвращает последнюю ошибку загрузки фида. Может принимать одно из следующих значений:

  • FDE_NONE — канал был загружен успешно.
  • FDE_DOWNLOAD_FAILED — фид не может быть загружена. Попробуйте скачать канал позже..
  • FDE_INVALID_FEED_FORMAT — XML канала является неподдерживаемым форматом. О поддерживаемых форматах см. первый пост.
  • FDE_NORMALIZATION_FAILED — Недействительный XML, или код содержит ошибки.
  • FDE_PERSISTENCE_FAILED — фид не может быть сохранен в локальное хранилище.
  • FDE_DOWNLOAD_BLOCKED — политика безопасности не допускает загрузки с указанного URL.
  • FDE_CANCELED — скачивание было прервано.
  • FDE_UNSUPPORTED_AUTH — сервер возвращает статус 401 Unauthorized, 402, или 403 Forbidden.
  • FDE_BACKGROUND_DOWNLOAD_DISABLED Background Intelligent Transfer Service (BITS) был отключен.
  • FDE_NOT_EXIST — фид больше не существует. Сервер возвращает статус 400 Bad Request, 404 Not Found, 406, 410.
  • FDE_UNSUPPORTED_MSXML — неверная версия Microsoft XML (MSXML). Пользователю необходимо обновлять локальные версии MSXML.
  • FDE_UNSUPPORTED_DTD — Каналы с DTD-ссылками не поддерживаются.
  • FDE_DOWNLOAD_SIZE_LIMIT_EXCEEDED — источник XML превышает максимально допустимый размер. Эта ошибка также относится к фидам, которые не могут быть загружены через BITS (HTTP Range) запросы.Предел размера по умолчанию составляет 15 мегабайт (Мб). Для увеличения или уменьшения значения по умолчанию необходимо изменение значений реестра
  • FDE_ACCESS_DENIED — сервер вернул HTTP 403 Отказано в доступе ошибка.
  • FDE_AUTH_FAILED — аутентификация на сервере не удалось (сервер возвращает 401 статус три раза подряд)
  • FDE_INVALID_AUTH — запрос на аутентификацию не прошел. Windows RSS Platform не поддерживает проверку подлинности прокси.

Свойство LastDownloadTime

property LastDownloadTime: TDateTime read Get_LastDownloadTime;

Время последней успешной попытки обновления содержимого фида.

Свойство LastWriteTime

property LastWriteTime: TDateTime read Get_LastWriteTime;

Возвращает дату и время последнего изменения фида.

Свойство Link

property Link: WideString read Get_Link;

Возвращает URL фида.

Свойство LocalEnclosurePath

property LocalEnclosurePath: WideString read Get_LocalEnclosurePath;

Возвращает путь к локальному хранилищу содержимого RSS-канала.

Свойство LocalId

property LocalId: WideString read Get_LocalId;

Возвращает GUID для фида.

Свойство MaxItemCount

property MaxItemCount: Integer read Get_MaxItemCount write Set_MaxItemCount;

Возвращает или устанавливает максимальное количество элементов фида, которые будут загружены.

Свойство Name

property Name: WideString read Get_Name;

Возвращает имя RSS-канала.

Свойство Parent

property Parent: IDispatch read Get_Parent;

Возвращает интерфейс родителя RSS-канала (IFeedFolder).

Свойство Path

property Path: WideString read Get_Path;

Возвращает путь до текущего RSS-канала в Feed-менеджере.

Свойство PubDate

property PubDate: TDateTime read Get_PubDate;

Возвращает дату и время публикации фида.

Свойство SyncSetting

property SyncSetting: FEEDS_SYNC_SETTING read Get_SyncSetting write Set_SyncSetting;

Возвращает или устанавливает свойства синхронизации содержимого RSS-канала. Может принимать одно из следующих значений:

  • FSS_DEFAULT — использовать определенное системой DefaultInterval значение (24 часа).
  • FSS_INTERVAL — использовать значение интервала определенного в свойстве фида.
  • FSS_MANUAL — не использовать автоматическое обновление фида.
  • FSS_SUGGESTED — использовать значение свойства Ttl для RSS-канала.

Свойство Title

property Title: WideString read Get_Title;

Возвращает заголовок RSS-канала.

Свойство Ttl

property Ttl: Integer read Get_Ttl;

Возвращает время жизни фида, т.е. время в минутах в течение которого фид будет находиться в кэше до обновления содержимого из источника.

Свойство UnreadItemCount

property UnreadItemCount: Integer read Get_UnreadItemCount;

Возвращает количество непрочитанных элементов фида.

Вот, пожалуй основные методы и свойства интерфейса IFeed. Как видите, с помощью этого интерфейса можно вытянуть максимум информации по каналу, начиная от копирайтов и картинок для канала и, заканчивая XML-кодом, приложив к которому свои навыки по работе с NativeXML или MSXML можно на ходу проводить поиск по содержимому всего канала, определенных фраз типа “лимузины санкт-петербург”, «программирование в Delphi«, «новости» и т.д. Осталось рассмотреть работу ещё одного интерфейса – IFeedItem (элемент фида) и можно будет написать небольшой примерчик иллюстрирующий работу с Windows RSS Platform во всей её красе. Но это уже в следующем посте. Оставайтесь с нами ;)

Книжная полка

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
купить книгу delphi на ЛитРес
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
купить книгу delphi на ЛитРес
0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии