lad
Сегодня мы рассмотрим методы и свойства интерфейса 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 во всей её красе. Но это уже в следующем посте. Оставайтесь с нами.