Skip to content

RSS/Atom parser ​

Parses an RSS 2.0 or Atom feed (XML text) and emits one record per feed item. Typically placed after an Http client that downloads the feed.

Pins ​

PinKindTypesDescription
InputinputViaducta.Plugins.Http.Types.WebSocketMessage, Viaducta.Plugins.TextPlugin.Types.TextRecord, Viaducta.Plugins.Http.Types.WebHttpResponseThe feed XML: WebSocketMessage.ContentString, TextRecord.Value, or WebHttpResponse.Body (falls back to ByteBody decoded as UTF-8).
OutputoutputViaducta.Plugins.TextPlugin.Types.RssRecordOne record per feed item.

RssRecord (Viaducta.Plugins.TextPlugin.Types.RssRecord):

PropertyTypeContent
IdstringItem id (<guid> / Atom <id>).
TitlestringItem title.
ArticleLinkstringFirst link of the item.
Summarystring<description> / Atom summary.
CategoriesstringCategory names, comma-separated.
PublishDateDateTimeOffsetPublication date.
AuthorsstringAuthor names, comma-separated.
EnclosureUrlstringURL of the attached media (RSS <enclosure>, Atom <link rel="enclosure">); empty if there is none.

Configuration ​

None besides the common settings.

Behaviour ​

  • For every input the whole feed is parsed and each item is emitted on Output in feed order, with the input's metadata.
  • Empty feeds emit nothing. Invalid XML or a document that is neither RSS nor Atom raises an error handled by the flow's error handling.
  • The plugin has no memory of earlier runs: every item is emitted on every poll. Filter already processed items yourself (e.g. by Id in a database or script).

Notes ​

  • The plugin is marked "keep alive": a flow that contains it keeps running after its start components finish, as for a listener. Stop the flow explicitly if it is meant to run once.
  • For Atom feeds authors are taken from <name>; RSS feeds usually only give an e-mail in <author>, which can end up empty.

Example ​

No configuration. Placement:

Timer (00:00:15:00) → Http client (GET https://example.com/feed.xml) → RSS/Atom parser → C# script (filter new items) → Mail client

Viaducta documentation