Rss Канали

Визначення

RSS — це один з форматів, що використовуються для передачі інформації по Мережі, який розшифровується Really Simple Syndication або Дуже Просте синдикування (поширення по підписці).

Зазвичай за допомогою RSS дається короткий опис нової інформації, що з’явилася на сайті, і посилання на її повну версію.Інтернет-ресурс в форматі RSS називається RSS-каналом або RSS-стрічкою.Для читання такого каналу потрібна спеціальна програма — RSS-агрегатор.Всі сучасні браузери вже мають модулі агрегації інформації з RSS-каналів, тому ніяких труднощів читання інформаційних стрічок виникнути не повинно.

На сайтах новинні стрічки зазвичай позначаються оранжевим значком з трьома білими дугами.

Структура RSS-файлу

Обов’язкова структура RSS

RSS-файл являє собою документ у форматі XML, які відповідає специфікації XML 1.0, опублікованій на веб-сайті консорціуму WWW (W3C).

Отже обов’язкова структура RSS виглядає наступному чином:

<? Xml version = 1.0 encoding = UTF-8?> <rss Version=2.0> <channel> <title> Назва RSS-каналу </ title> <link> http://ссилка на основний сайт </ link> <description> Короткий опис RSS-каналу </ description> <item> <title> Назва новини </ title> <link> http://ссилка на повну версію новини </ link> <description> Коротка версія новини . </ description> </ item> </ channel> </ rss>

Тег<xml>вказує в якій версії XML і в якому кодуванні написаний документ.Далі слід тег<rss>,в якому вказується версія RSS-специфікації (існує кілька версій RSS-специфікацій від різних розробників, тому агрегатору RSS-каналу потрібно вказати в якому форматі викладено документ, у цій статті буде розібрана тільки версія 2.0).Тег<channel>містить в собі інформацію про сам канал: тут зазначаються назва каналу, посилання на сайт, звідки завантажений канал, опис каналу і список новин, укладених в теги<item>.

Елементи тега<channel>

Як вже було сказано вище, тег<channel>є обов’язковим для RSS-файла.Цей тег є дочірнім по відношенню до основного тегу каналу<rss>і може содерджать наступні елементи:

<title>— назва RSS-каналу.<link>— посилання на основний сайт (посилання обов’язково повинна починатися з http://, https://, ftp:// або mailto :).<description>— короткий опис RSS- каналу.<language>— мова, на якому написаний канал (для позначення мов використовуються абревіатури, визначені W3C).<copyright>— інформація про авторське право на канал.<managingEditor>— адреса електронної пошти редактора вмісту каналу.<webMaster>— адреса електронної пошти веб-майстра каналу.<pubDate>— дата публікації вмісту каналу (дата і час повинні відповідати специфікації RFC 822).<lastBuildDate>— дата останнього зміни вмісту каналу (дата і час повинні відповідати специфікації RFC 822).<category>— категорія, до якої належить канал.<generator>— програма, в якій згенерований файл каналу.<docs>— посилання на документацію про використаний форматі каналу.<cloud>— посилання на веб-сервіс, що підтримує інтерфейс rssCloud.<ttl>— час життя у хвилинах, на які канал може кешироваться.<image>— зображення GIF, JPEG або PNG, яке може відображатися з каналом (тег повинен содердать атрибути<url>,в якому вказується посилання на картинку,<title>,в якому вказується пояснення до картинки, і<link>,який містить посилання для переходу по картинці, так само можуть бути задані параметри<width>і<height>). <rating>— рейтинг каналу.<textInput>— поле текстового вводу, яке може відображатися з каналом.<skipHours>— інформація агрегаторами, в які години можна не обробляти канал.<skipDays>— інформація агрегаторами, в які дні можна не обробляти канал.

Елементи тега<item>

Тег<item>є дочірнім по відношенню до тегу<channel>.Канал може містити будь-яку кількість статей, тобто будь-яку кількість елементів<item>.Обов’язкові елементи тега зазначені в наведеному вище прикладі, а нижче перераховані всі можливі параметри, які можна використовувати для новин:

<title>— назва новини.<link>— посилання на повну версію новини.<description>— коротка версія новини.<author>— адреса електронної пошти автора повідомлення.<category>— категорія повідомлення.<comments>— посилання на сторінку коментарів .<enclosure>— медіа-об’єкт, прикріплений до повідомлення (тег повинен содердать атрибути<url>,в якому вказується посилання на прикріплений файл,<length>,в якому вказується розмір вкладення в байтах, і<type>,який описує тип вкладення ).<guid>— унікальний ідентифікатор повідомлення.<pubDate>— дата публікації повідомлення (дата і час повинні відповідати специфікації RFC822, якщо дата відноситься до майбутнього, то агрегатор не показує повідомлення, поки не наступить зазначений час).<source>— RSS — канал, з якого отримано повідомлення (тег повинен містити атрибут<url>,в якому вказується посилання на RSS-джерело.)

Автоматична генерація RSS-каналу для сайту

Розміщення каналу на сайті

Для того, щоб створити канал, спочатку потрібно межами місць де будуть публікуватися новини сайту, продумати, що буде анонсуватися в новинах, і створити шаблонну сторінку каналу.

Наприклад, на моєму сайті новини розташовуються на головній сторінці під списком розділів.

Блок новин представляє із себе динамічний елемент, який зчитує з бази даних новин останню публікацію і виводить її на сторінку.Блок містить такі елементи:

Якщо звернути увагу на значек RSS, то можна побачити, що він пов’язаний зі стрічкою новин — сторінкоюrss.aspx.Ця сторінка і є повноцінним каналом новин, який може використовуватися агрегаторами для обробки публікацій.

Отже, щоб створити RSS-канал на ASP.NET нам потрібно:

База даних новин

Для того, щоб зберігати новини, нам буде потрібно створити базу даних.Створити базу даних можна на будь-якій платформі, я ж буду використовувати найпростіший варіант — файл mdb.

Базу даних для новин краще розмітити в окремому файлі, щоб при оновленні вмісту таблиць не стерти інші таблиці, хоча мій сайт має тільки одну базу даних з декількома таблицями, і це створює деякі незручності — потрібно спочатку вивантажити базу з сервера, відредагувати потрібну таблицю, а потім повернути базу назад на сервер.

Отже, таблиця новин повинна містити такі поля:

При необхідності таблиця може бути доповнена іншими полями.

Шаблон сторінки каналу новин

Файл каналу новин буде мати ім’я rss.aspx і складатися тільки з одного рядка:

<% @ Page Language = VB AutoEventWireup = false CodeFile = rss.aspx.vb Inherits = rssClass%>

Код, що генерує вміст каналу новин

Код, який генерує, що буде містити стрічка новин, розташовується у файлі rss.aspx.vb і представляє з себе зчитувач бази даних з генератором XML структури.

Partial Class rssClass Inherits System.Web.UI.Page ‘Підключення бібліотек Private mBaseClass As New MyLibrary.BaseClass Private mDatabaseClass As New MyLibrary.DatabaseClass Protected Sub Page_Load (ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Dim mRSSContent As New StringBuilder Dim mTempTable As New Data.DataTable (RSSContent) mTempTable = mDatabaseClass.GetTable_SQL (Microsoft Access Driver (*. mdb), _ Nothing, Request.PhysicalApplicationPath App_Data dynamic.mdb, _ Nothing , Nothing, _ SELECT * FROM news ORDER BY news_id DESC) mRSSContent.AppendLine (<? xml version = 1.0 encoding = UTF-8 ?>) mRSSContent.AppendLine (<rss version = 2.0 > ) mRSSContent.AppendLine ( <channel> ) mRSSContent.AppendLine ( <title> Новини сайту it-bor.qsh.eu </ title> ) mRSSContent.AppendLine ( <link > http://www.sysengineering.ru </ link> ) mRSSContent.AppendLine ( <description> Новини сайту it-bor.qsh.eu </ description> ) If Not (mTempTable Is Nothing) Then For iCounter As Integer = 0 To mTempTable.Rows.Count — 1 mRSSContent.AppendLine (<item>) mRSSContent.AppendLine (<title> _ mTempTable.Rows (iCounter). Item (news_title). ToString < / title> ) mRSSContent.AppendLine ( <link> _ mTempTable.Rows (iCounter). Item ( news_link ). ToString </ link> ) mRSSContent.AppendLine ( <description> _ mTempTable.Rows (iCounter). Item (news_description). ToString _ </ description>) mRSSContent.AppendLine (<pubDate> _ Format (CDate (mTempTable.Rows (iCounter). Item (news_date ). ToString), _ r ) </ pubDate> ) mRSSContent.AppendLine ( </ item> ) Next End If mRSSContent.AppendLine ( </ channel> ) mRSSContent.AppendLine ( < / rss> ) Response.Write (mRSSContent.ToString) End Sub End Class

Розберемо детальніше, що робить ця програма:

При завантаженні сторінки викликається процедура складання каналу.Викликається зовнішня процедура читання бази даних новин.Складається початкова структура каналу (обов’язкові блоки).Для кожної новини з бази даних вставляється тег<item>і заповнюються його атрибути.Згенерувала структура і зміст каналу вставляється в шаблон сторінки у вигляді відповіді на запит браузера (агрегатора).

Примітка.Для зчитування бази даних використовується зовнішня бібліотека, яка не входить у зміст цієї статті.

Висновок

На закінчення назвемо ті переваги, якими володіють RSS-канали:

Джерело: RSS канали