Общие размышления¶
- Table of contents
- Общие размышления
RSS - это XML-based протокол распространения новостей.
- *R*ich *S*ite *S*ummary (RSS 0.9x) - обогащённая сводка сайта;
- *R*DF *S*ite *S*ummary (RSS 0.9 и 1.0) - сводка сайта с применением инфраструктуры описания ресурсов;
- *R*eally *S*imple *S*yndication (RSS 2.x) - очень простое приобретение информации.
Идеология обмена:¶
- Приложение подключается к источнику XML. Обычно это web источник с протоколом http, но возможны и другие варианты.
- Источник отдает приложению XML, содержащий 2 части - описание собственно источника и набор новостных элементов
- Описание источника содержит название, ссылку, указание языка и прочее описание.
- Каждый новостной элемент содержит одинаковый набор полей, в т.ч. обязательный уникальный идентификатор новости (произвольного вида)
- Приложение просматривает полученные ранее от данного источника новости и игнорирует те, которые у него уже есть, остальные (т.е. новые) считывает.
- Через некоторое время процедура повторяется.
Содержимое новости¶
Пример
<item>
<title>The Engine That Does More</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>
<description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. Theproposed VASIMR engine would do that.</description>
<pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid>
</item>
Основные поля:
* title - название
* link - ссылка на новость, при открытии ссылки обычно отображается страница сайта со все баннерами, меню и пр. требухой, содержащая, в т.ч. новость целиком
* description - описание новости. По стандарту - текстовый анонс. Т.е. не вся новость, а именно анонс. На практике встречается:
* нормальный анонс
* включение начала текста новости, обрезанного на Х символов. Может окончится на половине слова
* включение в этот тег части HTML потока сайта, содержащего всю новость целиком, включая описание встроенного видеоплеера, картинки и пр.
- pubdate - дата публикации
- guid - уникальный ид
Применение¶
В настоящее время поддержки у нас RSS нет. Основной причиной является особенность чтения, требующая самостоятельного выбора новых элементов (ДБ Импорт так не умеет) и необходимость хранения ссылки на основной материал (пока в МБД такого нет).
Представляется возможным написание приложения по импорту RSS потоков в МБД, аналогичное ДБИмпорту. Программа формирует обычные текстовые эл-ты МБД.
На начальном этапе содержимым элемента МБД будет текстовое представление descriprion и указание линки на всю новость, с возможностью перехода на нее из окна редактора текста.
Ориентировочно, данный этап оценивается в 3 недели работы.
Применительно к проекту Energy - неплохо бы заранее узнать, к каким именно источникам (и в каком количестве) они хотят подключаться. Если есть конкретные новостные потоки - очень желательно получить примеры. Это потому, что бывают частные отличия в формате RSS потока, отличающиеся от стандартного. Об этом лучше знать заранее.
Кроме этого, у нас до сих пор нет нормальной поддержки Юникода, без чего поддержку работы с интернациональными материалами не сделать. Но с одноязычным, типа немецким или французским - можно. С китайским - нет.