Подписка

Проекты

Сборник идей для разработок в Delphi и использования их в Интернет. Участвуй в работе коллективного разума!

Google API в Delphi - проект с открытым исходным кодом.


А тут я коплю на лицензию Delphi 2011. Сумма пожертвования не фиксирована.

Друзья блога

Блоги и сообщества

DelphiFeeds.ru - Все Delphi-блоги Рунета О раскрутке блога по программированию Сообщество умных людей VR-Online.RU Бесплатный журнал для программистов и всех, кто интересуется IT Статьи и уроки по Delphi Статьи по Delphi

Счётчики


Анализ веб сайтов

Рейтинг блогов




Система Orphus

  • 06Jan

    Сам по себе модуль разрабатывался для одной цели – выбрать и правильно представить информацию по отдельному элементу фида (записи).

    Думаю, что этот модуль пригодится тем, кто разрабатывает или планирует разрабатывать приложения так или иначе взаимодействующие с FeedBurner’ом. Простым примером такого приложения может быть программа для работы с пинг-сервисами. В ней модуль используется как раз для того, чтобы правильно заполнить необходимые поля формы.

    Кстати, тот факт, что модуль написан в Lazarus не говорит о то, что Вы не сможете применять его в разработках в Delphi. Думаю, что при незначительных поправках в коде он легко интегрируется в Ваше приложение написанное на Delphi.

    Итак, рассмотрим, что представляет из себя модуль и как с ним работать. ' ' В модуле определен класс TFeedChanel. Для того, чтобы класс был готов к работе достаточно его создать, используя конструктор:

    constructor TFeedChanel.Create(cURL: string);
    begin
      inherited Create;
      GetDocument(cURL);
    end;

    где cURL – это URL вашего фида. При этом URL может описан либо так:

    http://feeds.feedburner.com/myDelphi

    либо так:

    http://feeds.feedburner.com/myDelphi?format=xml

    После того, как объект создан в поле FDocument будет содержаться весь XML фида, что избавит нас от лишнего расхода трафика.

    Далее можно приступать к использованию свойств.

    property ItemsCount: integer read GetItemsCount;

    Содержит общее количество записей фида. Количество записей подсчитывается по количеству узлов item в XML-документе.

    property FeedAddress: string read FFeedAdress write SetFeedAdress;

    URL обрабатываемого фида. При этом, если вы меняете адрес фида, то автоматически пересоздается FDocument, избавляя нас от лишних проверок тот ли фид мы обрабатываем.

    property Title[i:integer]:string read GetTitle;

    Читает заголовок i-го элемента фида:

    function TFeedChanel.GetTitle(const i: integer): string;
    begin
    if i>ItemsCount then Exit;
    Result:=TDOMElement(FDocument.DocumentElement.GetElementsByTagName('item').Item[i]).GetElementsByTagName('title').Item[0].TextContent;
    {$IFDEF win32}
    Result:=UTF8Encode(Result);
    {$ENDIF}
    end;

    Если i>ItemsCount то возвращается пустая строка.

    property Description[i:integer]:string read GetDescr;

    Описание для элемента фида. При этом выводится всё содержимое тега description. Если Вам необходимо выводить, например, только 255 первых символов, то это свойство необходимо немного доработать.

    property Tags[i:integer]:TstringList read GetTags;

    Выводит содержимое тегов category каждого элемента фида. Слудует отметить, что у FeedBurner’а нет различий между названием категории и тегов записи – все они оформляются одинаково.

    property DirectLink[i:integer]: string read GetDirectLink;

    Ссылка назапись в блоге для выбранного элемента фида. Здесь следует отразить следующий момент. Не знаю как у Вас, а у меня в фиде ссылки на посты выглядят следующим образом:

    А в блоге все ссылки с ЧПУ, т.е. вида:

    Поэтому, чтобы не было разночтений между тем, что содержится в фиде и тем, что есть на самом деле в методе GetDirectLink проводится следующая дополнительная обработка:

    [...]
    with (THTTPSend.Create) do
    begin
      HTTPMethod('get',result);
      case ResultCode of
      301,302:begin
                    for j:=0 to Headers.Count-1 do
                      begin
                        if pos('Location: ',Headers.Strings[j])>0 then
                          begin
                             Result:=copy(Headers.Strings[j],11, length(Headers.Strings[j])-10);
                             break;
                          end;
                      end;
              end;
      400:Result:='';
      end;
    end;

    т.е, идёт проверка возвращаемого результата. Если есть редирект, то соответственно выбираем ссылку из заголовка (Location), если вернулся код 404 – страницы недоступна и, соответственно ссылку не показываем. Здесь проводится проверка только на редиректы и отсутствие страницы, вы моете доработать проверку под свои нужды, например добавить проверку на код 500 и т.д., но в общем случае, думаю это не потребуется.

    property BlogTitle: string read GetBlogTitle;

    Выводит название блога (первый тег title в XML-документе)

    property BlogURL: string read GetBlogURL;

    Выводит URL блога.

    Вот пожалуй всй, что можно получить из фида, используя модуль. Кстати, дополниельно можете использовать модуль для работы с API FeedBurner’а (разработан в Delphi)

    Скачать модуль можно, как всегда, здесь либо со страницы исходников.

    -----------------------------
    Хотите сделать пластическую операцию своему четвероногому другу? Обращаётес в ветеринарную клинику "Биоконтроль".

    Устали от забот и хлопот? Всё надоело и хочется уехать из этого города? Отдых в Доминикане - лучший выбор.

    Негде разместить комутационное оборудование? Используйте центр обработки данных от компании msm.ru
    А если у Вас нет необходимой техники, то загляните в интернет магазин компьютерной техники - здесь найдётся любая техника, на любой вкус и кошелек.

    Оборудование установлено, фирма работает, но никто о ней не знает. Лучший вариант - обратиться в рекламмно-производственную компанию "Лазерстиль" и закажите pos материалы для своей организации
    -----------------------------

    Related posts:

    1. Модуль FeedBurner API для Delphi 2010.
    2. Delphi. Как получить количество подписчиков блога в FeedBurner?
    3. Работа с таблицами OpenOffice в Lazarus
    4. Ubuntu + Lazarus + OpenOffice = “Hello World!”
    5. Lazarus. Кроссплатформенный документооборот.

    Автор Vlad в 4:37 pm

    Метки: , ,

Ваш ответ

Внимание: Все комментарии модерируются, и это может вызвать задержку их публикации. Отправлять комментарий заново не требуется.

Пожалуйста, заключайте исходный код в тэги [code][/code].