webls/rss
Types
Cloud configuration for an RSS channel
pub type Cloud {
Cloud(
domain: String,
port: Int,
path: String,
register_procedure: String,
protocol: String,
)
}
Constructors
-
Cloud( domain: String, port: Int, path: String, register_procedure: String, protocol: String, )Arguments
- domain
-
The domain of the cloud service
- port
-
The port for the cloud service
- path
-
The path for the cloud service
- register_procedure
-
The registration procedure for the cloud service (usually “http-post” or “xml-rpc”)
- protocol
-
The protocol used for the cloud service
An enclosure resource for an RSS item
pub type Enclosure {
Enclosure(url: String, length: Int, enclosure_type: String)
}
Constructors
-
Enclosure(url: String, length: Int, enclosure_type: String)Arguments
- url
-
The URL of the enclosure resource
- length
-
The length of the enclosure in bytes
- enclosure_type
-
The type of the enclosure (e.g., audio/mpeg, video/mp4)
An image associated with a RSS channel
pub type Image {
Image(
url: String,
title: String,
link: String,
description: option.Option(String),
width: option.Option(Int),
height: option.Option(Int),
)
}
Constructors
-
Image( url: String, title: String, link: String, description: option.Option(String), width: option.Option(Int), height: option.Option(Int), )Arguments
- url
-
The URL of the image
- title
-
The title of the image
- link
-
The link associated with the image
- description
-
An optional description of the image
- width
-
An optional width of the image in pixels
- height
-
An optional height of the image in pixels
RSS 2.0.1 spec compliant channel
pub type RssChannel {
RssChannel(
title: String,
link: String,
description: String,
language: option.Option(String),
copyright: option.Option(String),
managing_editor: option.Option(String),
web_master: option.Option(String),
pub_date: option.Option(timestamp.Timestamp),
last_build_date: option.Option(timestamp.Timestamp),
categories: List(String),
generator: option.Option(String),
docs: option.Option(String),
cloud: option.Option(Cloud),
ttl: option.Option(Int),
image: option.Option(Image),
text_input: option.Option(TextInput),
skip_hours: List(Int),
skip_days: List(Weekday),
items: List(RssItem),
)
}
Constructors
-
RssChannel( title: String, link: String, description: String, language: option.Option(String), copyright: option.Option(String), managing_editor: option.Option(String), web_master: option.Option(String), pub_date: option.Option(timestamp.Timestamp), last_build_date: option.Option(timestamp.Timestamp), categories: List(String), generator: option.Option(String), docs: option.Option(String), cloud: option.Option(Cloud), ttl: option.Option(Int), image: option.Option(Image), text_input: option.Option(TextInput), skip_hours: List(Int), skip_days: List(Weekday), items: List(RssItem), )Arguments
- title
-
The title of the RSS channel
- link
-
The link to the top page of the RSS channel
- description
-
The description of the RSS channel
- language
-
The language of the RSS channel
- copyright
-
The copyright information for the RSS channel
- managing_editor
-
The managing editor’s email address
- web_master
-
The web master’s email address
- pub_date
-
The publication date of the RSS channel
- last_build_date
-
The last build date of the RSS channel
- categories
-
A list of categories for the RSS channel
- generator
-
The generator program of the RSS channel, feel free to shout webls out!
- docs
-
A link to the documentation for the RSS spec
- cloud
-
Cloud configuration for the RSS channel
- ttl
-
The time-to-live (TTL) for the RSS channel
- image
-
An optional image associated with the RSS channel
- text_input
-
An optional text input for the RSS channel
- skip_hours
-
A list of hours in GMT which content aggregation should be skipped
- skip_days
-
A list of days to skip in the RSS channel
- items
-
A list of items in the RSS channel
RSS 2.0.1 spec compliant item
pub type RssItem {
RssItem(
title: String,
description: String,
link: option.Option(String),
author: option.Option(String),
comments: option.Option(String),
source: option.Option(String),
pub_date: option.Option(timestamp.Timestamp),
categories: List(String),
enclosure: option.Option(Enclosure),
guid: option.Option(#(String, option.Option(Bool))),
)
}
Constructors
-
RssItem( title: String, description: String, link: option.Option(String), author: option.Option(String), comments: option.Option(String), source: option.Option(String), pub_date: option.Option(timestamp.Timestamp), categories: List(String), enclosure: option.Option(Enclosure), guid: option.Option(#(String, option.Option(Bool))), )Arguments
- title
-
The title of the RSS item
- description
-
The description of the RSS item
- link
-
The link to the page or source of the RSS item
- author
-
An optional author field, note RSS author must be email addresses
- comments
-
A URL to the comments section for the RSS item
- source
-
The RSS channel the item came from
- pub_date
-
The publication date of the RSS item
- categories
-
A list of categories for the RSS item
- enclosure
-
An optional enclosure resource for the RSS item
- guid
-
A guid and an optional boolean for whether it is a permalink
A text input field for an RSS channel
pub type TextInput {
TextInput(
title: String,
description: String,
name: String,
link: String,
)
}
Constructors
-
TextInput( title: String, description: String, name: String, link: String, )Arguments
- title
-
The title of the text input field
- description
-
A description of the text input field’s purpose
- name
-
The name attribute for the text input field
- link
-
The link associated with the text input field
Values
pub fn channel(
title: String,
description: String,
link: String,
) -> RssChannel
Creates a base RSS channel
pub fn to_string(channels: List(RssChannel)) -> String
Converts a list of RSS channels to a string of a valid RSS 2.0.1 feed
pub fn with_channel_categories(
channel: RssChannel,
categories: List(String),
) -> RssChannel
Adds a list of categories to the RSS channel
pub fn with_channel_category(
channel: RssChannel,
category: String,
) -> RssChannel
Adds a category to the RSS channel
pub fn with_channel_cloud(
channel: RssChannel,
cloud: Cloud,
) -> RssChannel
Sets the cloud element for the RSS channel with a domain, port, path, register procedure, and protocol
pub fn with_channel_copyright(
channel: RssChannel,
copyright: String,
) -> RssChannel
Sets the copyright information for the RSS channel
pub fn with_channel_custom_generator(
channel: RssChannel,
generator: String,
) -> RssChannel
Sets the generator element for the RSS channel with a custom string
pub fn with_channel_docs(channel: RssChannel) -> RssChannel
Adds the RSS 2.0.1 spec documentation link to the RSS channel
pub fn with_channel_generator(channel: RssChannel) -> RssChannel
Sets the generator element for the RSS channel to webls
pub fn with_channel_image(
channel: RssChannel,
image: Image,
) -> RssChannel
Sets an optional image associated with the RSS channel
pub fn with_channel_item(
channel: RssChannel,
item: RssItem,
) -> RssChannel
Adds a RSS item to the RSS channel
pub fn with_channel_items(
channel: RssChannel,
items: List(RssItem),
) -> RssChannel
Adds a list of items in the RSS channel
pub fn with_channel_language(
channel: RssChannel,
language: String,
) -> RssChannel
Sets the language of the RSS channel example: “en-us”
pub fn with_channel_last_build_date(
channel: RssChannel,
last_build_date: timestamp.Timestamp,
) -> RssChannel
Sets the last build date of the RSS channel
pub fn with_channel_managing_editor(
channel: RssChannel,
managing_editor: String,
) -> RssChannel
Sets the managing editor’s email address for the RSS channel
pub fn with_channel_pub_date(
channel: RssChannel,
pub_date: timestamp.Timestamp,
) -> RssChannel
Sets the publication date of the RSS channel
pub fn with_channel_skip_days(
channel: RssChannel,
skip_days: List(Weekday),
) -> RssChannel
Sets a list of days to skip in the RSS channel
pub fn with_channel_skip_hours(
channel: RssChannel,
skip_hours: List(Int),
) -> RssChannel
Sets a list of hours in GMT which content aggregation should be skipped
pub fn with_channel_text_input(
channel: RssChannel,
text_input: TextInput,
) -> RssChannel
Sets an optional text input for the RSS channel
pub fn with_channel_ttl(
channel: RssChannel,
ttl: Int,
) -> RssChannel
Sets the time-to-live (TTL) for the RSS channel in minutes
pub fn with_channel_web_master(
channel: RssChannel,
web_master: String,
) -> RssChannel
Sets the web master’s email address for the RSS channel
pub fn with_item_author(item: RssItem, author: String) -> RssItem
Sets an optional author field, note RSS author must be email addresses
pub fn with_item_categories(
item: RssItem,
categories: List(String),
) -> RssItem
Sets a list of categories for the RSS item
pub fn with_item_comments(
item: RssItem,
comments: String,
) -> RssItem
Sets a URL to the comments section for the RSS item
pub fn with_item_enclosure(
item: RssItem,
enclosure: Enclosure,
) -> RssItem
Sets an optional enclosure (media resource) for the RSS item
pub fn with_item_guid(
item: RssItem,
guid: #(String, option.Option(Bool)),
) -> RssItem
Sets the guid of the RSS item with an optional boolean for whether it is a permalink
pub fn with_item_link(item: RssItem, link: String) -> RssItem
Sets the link to the page or source of the RSS item
pub fn with_item_pub_date(
item: RssItem,
pub_date: timestamp.Timestamp,
) -> RssItem
Sets the publication date of the RSS item