fbpx

RSS канали

Визначення
RSS – це один з форматів, використовуваних для передачі інформації по Мережі, який розшифровується “Really Simple Syndication” або “Дуже Просте Синдикування (розповсюдження за передплатою)”.
Зазвичай за допомогою RSS дається короткий опис нової інформації, що з’явилася на сайті, і посилання на її повну версію. Інтернет-ресурс у форматі RSS називається RSS-каналом або RSS-стрічкою. Для читання такого каналу потрібна спеціальна програма – RSS-агрегатор. Всі сучасні браузери вже мають модулі агрегації інформації з RSS-каналів, тому ніяких труднощів читання інформаційних стрічок виникнути не повинно.
На сайтах новинні стрічки зазвичай позначаються оранжевим значком з трьома білими дугами.
Структура RSS-файлу
Обов’язкова структура RSS
RSS-файл являє собою документ у форматі XML, що відповідає специфікації XML 1.0, опублікованій на веб-сайті консорціуму WWW (W3C).
Отже обов’язкова структура RSS виглядає наступним чином:
Назва RSS-каналу
http://ссылка на основний сайт
Короткий опис RSS-каналу
Назва новини
http://ссылка на повну версію новини
Коротка версія новини.
Тег вказує в якій версії XML і в якому кодуванні написаний документ. Далі слід тег , в якому вказується версія RSS-специфікації (існує кілька версій RSS-специфікацій від різних розробників, тому агрегатор RSS-каналу потрібно вказати в якому форматі викладено документ, у цій статті буде розібрана тільки версія 2.0). Тег містить в собі інформацію про самому каналі: тут зазначаються назва каналу, посилання на сайт, звідки завантажений канал, опис каналу і список
новин, укладених в теги .
Елементи тега
Як вже було сказано вище, тег є обов’язковим для RSS-файл. Цей тег є дочірнім по відношенню до основного тегу каналу і може содерджать наступні елементи:
– RSS-каналу.
– посилання на основний сайт (посилання обов’язково повинна починатися з http:// https://, ftp:// або mailto:).
– короткий опис RSS-каналу.
– мова, на якій написаний канал (для позначення мов використовуються абревіатури, визначені W3C).
– інформація про авторське право на канал.
– адреса електронної пошти редактора вмісту каналу.
– адреса електронної пошти, веб-майстри каналу.
– дата публікації вмісту каналу (дата і час повинні відповідати специфікації RFC 822).
– дата останнього зміни вмісту каналу (дата і час повинні відповідати специфікації RFC 822).
– категорія, до якої відноситься канал.
– програма, в якій згенерований файл каналу.
– посилання на документацію про використаний формат каналу.
– посилання на веб-сервіс, який підтримує інтерфейс rssCloud.
– час у хвилинах, на які канал може кешуватись.
– зображення GIF, JPEG або PNG, яка може відображатися за каналом (тег повинен содердать атрибути , у якому вказується посилання на картинку, в якому вказується пояснення до зображення, і , який містить посилання для переходу на картинці, так само можуть бути задані параметри ).
– рейтинг каналу.
– поле текстового введення, яке може відображатися з каналом.
– інформація агрегатор, в які години можна не обробляти канал.
– інформація агрегатор, в які дні можна не обробляти канал.
Елементи тега
Тег є дочірнім по відношенню до тегу . Канал може містити будь-яку кількість статей, тобто будь-яку кількість елементів . Обов’язкові елементи тега зазначені в наведеному вище прикладі, а нижче перераховані всі можливі параметри, які можна використовувати для новин:
– назву новини.
– посилання на повну версію новини.
– коротка версія новини.
– адреса електронної пошти автора повідомлення.
– категорія повідомлення.
– посилання на сторінку коментарів.
– медіа-об’єкт, прикріплений до повідомлення (тег повинен содердать атрибути , у якому вказується посилання на прикріплений файл , в якому вказується розмір вкладення в байтах, і , який описує тип вкладення).
– унікальний ідентифікатор повідомлення.
– дата публікації повідомлення (дата і час повинні відповідати специфікації RFC822, якщо дата відноситься до майбутнього, то агрегатор не показує повідомлення, поки не настане зазначений час).
– RSS-канал, з якого отримано повідомлення (тег повинен містити атрибут , в якому вказується посилання на RSS-файл.)
Автоматична генерація RSS-каналу для сайту
Розміщення на сайті каналу
Для того, щоб створити канал, спочатку потрібно визначити місце, де будуть публікуватися новини сайту, продумати, що буде анонсуватися в новинах, і створити шаблонну сторінку каналу.
Наприклад, на моєму сайті новини розташовуються на головній сторінці під списком розділів.
Блок новин представляє із себе динамічний елемент, який зчитує з бази даних новин останню публікацію і виводить її на сторінку. Блок містить наступні елементи:
значок RSS, який посилається на стрічку новин;
дату останньої публікації;
текст останньої публікації;
посилання на статтю, пов’язану з публікацією;
Якщо звернути увагу на значок RSS, то можна побачити, що він пов’язаний зі стрічкою новин – сторінкою rss.aspx. Ця сторінка є повноцінним каналом новин, який може використовуватися агрегаторами для обробки публікацій.
Отже, щоб створити RSS-канал ASP.NET нам буде потрібно:
база даних, в якій будуть міститися новини;
шаблон сторінки ASP.NET;
код, який генерує вміст сторінки ASP.NET;
База даних новин
Для того, щоб зберігати новини, нам потрібно створити базу даних. Створити базу даних можна на будь-якій платформі, я ж буду використовувати найпростіший варіант – файл mdb.
Базу даних для новин краще розташувати в окремому файлі, щоб при оновленні вмісту таблиць не стерти інші таблиці, хоча мій сайт має тільки одну базу даних з кількома таблицями, і це створює деякі незручності – потрібно спочатку завантажити базу з сервера, відредагувати потрібну таблицю, а потім повернути базу назад на сервер.
Отже, таблиця новин повинна містити такі поля:
news_id – ідентифікатор публікації (числовий);
news_date – дата публікації (дата і час);
news_title – заголовок новини (рядковий);
news_description – зміст публікації (тектовый);
news_link – посилання на основну статтю (рядковий).
При необхідності таблиця може бути доповнена іншими полями.
Шаблон сторінки каналу новин
Файл каналу новин буде мати ім’я rss.aspx і складатися тільки з одного рядка:
Код, який генерує вміст каналу новин
Код, який генерує, що буде містити стрічка новин, розташовується в файлі 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_Datadynamic.mdb”, _
Nothing, Nothing, _
“SELECT * FROM news ORDER BY news_id DESC”)
mRSSContent.AppendLine(“”)
mRSSContent.AppendLine(“”)
mRSSContent.AppendLine(“”)
mRSSContent.AppendLine(“Новини сайту it-bor.qsh.eu”)
mRSSContent.AppendLine(“http://www.sysengineering.ru”)
mRSSContent.AppendLine(“Новини сайту it-bor.qsh.eu”)
If Not (mTempTable Is Nothing) Then
For iCounter As Integer = 0 To mTempTable.Rows.Count – 1
mRSSContent.AppendLine(“”)
mRSSContent.AppendLine(“” & _
mTempTable.Rows(iCounter).Item(“news_title”).ToString & “”)
mRSSContent.AppendLine(“” & _
mTempTable.Rows(iCounter).Item(“news_link”).ToString & “”)
mRSSContent.AppendLine(“” & _
mTempTable.Rows(iCounter).Item(“news_description”).ToString & _
“”)
mRSSContent.AppendLine(“” & _
Format(CDate(mTempTable.Rows(iCounter).Item(“news_date”).ToString), _
“r”) & “”)
mRSSContent.AppendLine(“”)
Next
End If
mRSSContent.AppendLine(“”)
mRSSContent.AppendLine(“”)
Response.Write(mRSSContent.ToString)
End Sub
End Class
Розберемо більш детально, що робить ця програма:
При завантаженні сторінки викликається процедура складання каналу.
Викликається зовнішня процедура читання бази даних новин.
Складається початкова структура каналу (обов’язкові блоки).
Для кожної новини з бази даних вставляється тег і заповнюються його атрибути.
Згенерована структура і зміст каналу вставляється в шаблон сторінки у вигляді відповіді на запит браузера (агрегатора).
Примітка. Для зчитування бази даних використовується зовнішня бібліотека, яка не входить у зміст цієї статті.
Висновок
На закінчення назвемо ті переваги, якими володіють RSS-канали:
RSS – це листоноша, щодня доставляє свіжу пресу в ваш поштовий ящик.
Мінімум трафіку – завантажуються тільки заголовки і дайджест публікації.
Економія часу – не потрібно відвідувати сайт, щоб дізнатися про оновлення сторінки.
Простота використання – досить додати RSS-канал веб-браузер або спеціальну програму, і ви вже отримуєте новини.
Джерело: канали RSS
Автор: Віталій Бочкарьов – www.sysengineering.ru