Это третий пост, касающийся работы с Windows RSS Platform в Delphi. Предыдущие посты:
- Windows RSS Platform в Delphi. Интерфейс IFeedsManager.
- 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 и др.
|