Current section
Files
Jump to
Current section
Files
src/webls@rss.erl
-module(webls@rss).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([to_string/1, channel/3, with_channel_language/2, with_channel_copyright/2, with_channel_managing_editor/2, with_channel_web_master/2, with_channel_pub_date/2, with_channel_last_build_date/2, with_channel_category/2, with_channel_categories/2, with_channel_custom_generator/2, with_channel_generator/1, with_channel_docs/1, with_channel_cloud/2, with_channel_ttl/2, with_channel_image/2, with_channel_text_input/2, with_channel_skip_hours/2, with_channel_skip_days/2, with_channel_items/2, with_channel_item/2, item/2, with_item_link/2, with_item_author/2, with_item_categories/2, with_item_comments/2, with_item_enclosure/2, with_item_guid/2, with_item_pub_date/2, with_item_source/2]).
-export_type([rss_channel/0, image/0, cloud/0, text_input/0, enclosure/0, rss_item/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type rss_channel() :: {rss_channel,
binary(),
binary(),
binary(),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(birl:time()),
gleam@option:option(birl:time()),
list(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(cloud()),
gleam@option:option(integer()),
gleam@option:option(image()),
gleam@option:option(text_input()),
list(integer()),
list(birl:weekday()),
list(rss_item())}.
-type image() :: {image,
binary(),
binary(),
binary(),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(integer())}.
-type cloud() :: {cloud, binary(), integer(), binary(), binary(), binary()}.
-type text_input() :: {text_input, binary(), binary(), binary(), binary()}.
-type enclosure() :: {enclosure, binary(), integer(), binary()}.
-type rss_item() :: {rss_item,
binary(),
binary(),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(birl:time()),
list(binary()),
gleam@option:option(enclosure()),
gleam@option:option({binary(), gleam@option:option(boolean())})}.
-file("src/webls/rss.gleam", 173).
-spec rss_item_to_string(rss_item()) -> binary().
rss_item_to_string(Item) ->
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<item>\n"/utf8, "<title>"/utf8>>/binary,
(erlang:element(
2,
Item
))/binary>>/binary,
"</title>\n"/utf8>>/binary,
"<description>"/utf8>>/binary,
(erlang:element(3, Item))/binary>>/binary,
"</description>\n"/utf8>>/binary,
(case erlang:element(4, Item) of
{some, Link} ->
<<<<"<link>"/utf8, Link/binary>>/binary,
"</link>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(5, Item) of
{some, Author} ->
<<<<"<author>"/utf8, Author/binary>>/binary,
"</author>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(6, Item) of
{some, Comments} ->
<<<<"<comments>"/utf8, Comments/binary>>/binary,
"</comments>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(7, Item) of
{some, Source} ->
<<<<"<source>"/utf8, Source/binary>>/binary,
"</source>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(8, Item) of
{some, Pub_date} ->
<<<<"<pubDate>"/utf8,
(begin
_pipe = Pub_date,
birl:to_iso8601(_pipe)
end)/binary>>/binary,
"</pubDate>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(begin
_pipe@1 = erlang:element(9, Item),
_pipe@2 = gleam@list:map(
_pipe@1,
fun(Category) ->
<<<<"<category>"/utf8, Category/binary>>/binary,
"</category>\n"/utf8>>
end
),
_pipe@3 = gleam@list:reduce(
_pipe@2,
fun(Acc, Category@1) ->
<<Acc/binary, Category@1/binary>>
end
),
gleam@result:unwrap(_pipe@3, <<""/utf8>>)
end)/binary>>/binary,
(case erlang:element(10, Item) of
{some, Enclosure} ->
<<<<<<<<<<<<"<enclosure url=\""/utf8,
(erlang:element(2, Enclosure))/binary>>/binary,
"\" length=\""/utf8>>/binary,
(gleam@int:to_string(
erlang:element(3, Enclosure)
))/binary>>/binary,
"\" type=\""/utf8>>/binary,
(erlang:element(4, Enclosure))/binary>>/binary,
"\"/>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(11, Item) of
{some, Guid} ->
case Guid of
{Guid@1, {some, Is_permalink}} ->
<<<<<<<<"<guid isPermaLink=\""/utf8,
(case Is_permalink of
true ->
<<"true"/utf8>>;
false ->
<<"false"/utf8>>
end)/binary>>/binary,
"\">"/utf8>>/binary,
Guid@1/binary>>/binary,
"</guid>\n"/utf8>>;
_ ->
<<""/utf8>>
end;
_ ->
<<""/utf8>>
end)/binary>>/binary,
"</item>"/utf8>>.
-file("src/webls/rss.gleam", 22).
-spec rss_channel_to_string(rss_channel()) -> binary().
rss_channel_to_string(Channel) ->
Channel_items = begin
_pipe = erlang:element(20, Channel),
_pipe@2 = gleam@list:map(_pipe, fun(Rss_item) -> _pipe@1 = Rss_item,
rss_item_to_string(_pipe@1) end),
_pipe@3 = gleam@list:reduce(
_pipe@2,
fun(Acc, Rss_item_string) ->
<<<<Acc/binary, "\n"/utf8>>/binary, Rss_item_string/binary>>
end
),
gleam@result:unwrap(_pipe@3, <<""/utf8>>)
end,
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"\n<channel>\n"/utf8,
"<title>"/utf8>>/binary,
(erlang:element(
2,
Channel
))/binary>>/binary,
"</title>\n"/utf8>>/binary,
"<link>"/utf8>>/binary,
(erlang:element(
3,
Channel
))/binary>>/binary,
"</link>\n"/utf8>>/binary,
"<description>"/utf8>>/binary,
(erlang:element(
4,
Channel
))/binary>>/binary,
"</description>\n"/utf8>>/binary,
(case erlang:element(
5,
Channel
) of
{some,
Language} ->
<<<<"<language>"/utf8,
Language/binary>>/binary,
"</language>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(
6,
Channel
) of
{some,
Copyright} ->
<<<<"<copyright>"/utf8,
Copyright/binary>>/binary,
"</copyright>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(
7,
Channel
) of
{some,
Managing_editor} ->
<<<<"<managingEditor>"/utf8,
Managing_editor/binary>>/binary,
"</managingEditor>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(
8,
Channel
) of
{some,
Web_master} ->
<<<<"<webMaster>"/utf8,
Web_master/binary>>/binary,
"</webMaster>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(
9,
Channel
) of
{some, Pub_date} ->
<<<<"<pubDate>"/utf8,
(begin
_pipe@4 = Pub_date,
birl:to_iso8601(
_pipe@4
)
end)/binary>>/binary,
"</pubDate>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(
10,
Channel
) of
{some, Last_build_date} ->
<<<<"<lastBuildDate>"/utf8,
(begin
_pipe@5 = Last_build_date,
birl:to_iso8601(
_pipe@5
)
end)/binary>>/binary,
"</lastBuildDate>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(begin
_pipe@6 = erlang:element(
11,
Channel
),
_pipe@7 = gleam@list:map(
_pipe@6,
fun(Category) ->
<<<<"<category>"/utf8,
Category/binary>>/binary,
"</category>\n"/utf8>>
end
),
_pipe@8 = gleam@list:reduce(
_pipe@7,
fun(Acc@1, Category@1) ->
<<Acc@1/binary,
Category@1/binary>>
end
),
gleam@result:unwrap(
_pipe@8,
<<""/utf8>>
)
end)/binary>>/binary,
(case erlang:element(12, Channel) of
{some, Generator} ->
<<<<"<generator>"/utf8,
Generator/binary>>/binary,
"</generator>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(13, Channel) of
{some, Docs} ->
<<<<"<docs>"/utf8, Docs/binary>>/binary,
"</docs>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(14, Channel) of
{some, Cloud} ->
<<<<<<<<<<<<<<<<<<<<"<cloud domain=\""/utf8,
(erlang:element(
2,
Cloud
))/binary>>/binary,
"\" port=\""/utf8>>/binary,
(gleam@int:to_string(
erlang:element(
3,
Cloud
)
))/binary>>/binary,
"\" path=\""/utf8>>/binary,
(erlang:element(
4,
Cloud
))/binary>>/binary,
"\" registerProcedure=\""/utf8>>/binary,
(erlang:element(
5,
Cloud
))/binary>>/binary,
"\" protocol=\""/utf8>>/binary,
(erlang:element(6, Cloud))/binary>>/binary,
"\"/>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(15, Channel) of
{some, Ttl} ->
<<<<"<ttl>"/utf8,
(gleam@int:to_string(Ttl))/binary>>/binary,
"</ttl>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(16, Channel) of
{some, Image} ->
<<<<<<<<<<<<<<<<<<<<<<<<<<"<image>"/utf8,
"<url>"/utf8>>/binary,
(erlang:element(
2,
Image
))/binary>>/binary,
"</url>\n"/utf8>>/binary,
"<title>"/utf8>>/binary,
(erlang:element(
3,
Image
))/binary>>/binary,
"</title>\n"/utf8>>/binary,
"<link>"/utf8>>/binary,
(erlang:element(
4,
Image
))/binary>>/binary,
"</link>\n"/utf8>>/binary,
(case erlang:element(
5,
Image
) of
{some, Description} ->
<<<<"<description>"/utf8,
Description/binary>>/binary,
"</description>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(6, Image) of
{some, Width} ->
<<<<"<width>"/utf8,
(gleam@int:to_string(
Width
))/binary>>/binary,
"</width>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(7, Image) of
{some, Height} ->
<<<<"<height>"/utf8,
(gleam@int:to_string(
Height
))/binary>>/binary,
"</height>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
"</image>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case erlang:element(17, Channel) of
{some, Text_input} ->
<<<<<<<<<<<<<<<<<<<<<<<<<<"<textInput>"/utf8,
"<title>"/utf8>>/binary,
(erlang:element(
2,
Text_input
))/binary>>/binary,
"</title>\n"/utf8>>/binary,
"<description>"/utf8>>/binary,
(erlang:element(
3,
Text_input
))/binary>>/binary,
"</description>\n"/utf8>>/binary,
"<name>"/utf8>>/binary,
(erlang:element(
4,
Text_input
))/binary>>/binary,
"</name>\n"/utf8>>/binary,
"<link>"/utf8>>/binary,
(erlang:element(5, Text_input))/binary>>/binary,
"</link>\n"/utf8>>/binary,
"</textInput>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case begin
_pipe@9 = erlang:element(18, Channel),
erlang:length(_pipe@9)
end
> 0 of
true ->
<<<<"<skipHours>"/utf8,
(begin
_pipe@10 = gleam@list:map(
erlang:element(18, Channel),
fun(Hour) ->
<<<<"<hour>"/utf8,
(gleam@int:to_string(
Hour
))/binary>>/binary,
"</hour>"/utf8>>
end
),
_pipe@11 = gleam@list:reduce(
_pipe@10,
fun(Acc@2, Hour@1) ->
<<<<Acc@2/binary, "\n"/utf8>>/binary,
Hour@1/binary>>
end
),
gleam@result:unwrap(
_pipe@11,
<<""/utf8>>
)
end)/binary>>/binary,
"</skipHours>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
(case begin
_pipe@12 = erlang:element(19, Channel),
erlang:length(_pipe@12)
end
> 0 of
true ->
<<<<"<skipDays>"/utf8,
(begin
_pipe@14 = gleam@list:map(
erlang:element(19, Channel),
fun(Day) ->
<<<<"<day>"/utf8,
(begin
_pipe@13 = Day,
birl:weekday_to_string(
_pipe@13
)
end)/binary>>/binary,
"</day>"/utf8>>
end
),
_pipe@15 = gleam@list:reduce(
_pipe@14,
fun(Acc@3, Day@1) ->
<<<<Acc@3/binary, "\n"/utf8>>/binary,
Day@1/binary>>
end
),
gleam@result:unwrap(_pipe@15, <<""/utf8>>)
end)/binary>>/binary,
"</skipDays>\n"/utf8>>;
_ ->
<<""/utf8>>
end)/binary>>/binary,
Channel_items/binary>>/binary,
"</channel>"/utf8>>.
-file("src/webls/rss.gleam", 10).
?DOC(" Converts a list of RSS channels to a string of a valid RSS 2.0.1 feed\n").
-spec to_string(list(rss_channel())) -> binary().
to_string(Channels) ->
Channel_content = begin
_pipe = Channels,
_pipe@2 = gleam@list:map(_pipe, fun(Channel) -> _pipe@1 = Channel,
rss_channel_to_string(_pipe@1) end),
_pipe@3 = gleam@list:reduce(
_pipe@2,
fun(Acc, Channel_string) ->
<<<<Acc/binary, "\n"/utf8>>/binary, Channel_string/binary>>
end
),
gleam@result:unwrap(_pipe@3, <<""/utf8>>)
end,
<<<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0.1\">"/utf8,
Channel_content/binary>>/binary,
"\n</rss>"/utf8>>.
-file("src/webls/rss.gleam", 240).
?DOC(" Creates a base RSS channel\n").
-spec channel(binary(), binary(), binary()) -> rss_channel().
channel(Title, Description, Link) ->
{rss_channel,
Title,
Link,
Description,
none,
none,
none,
none,
none,
none,
[],
none,
none,
none,
none,
none,
none,
[],
[],
[]}.
-file("src/webls/rss.gleam", 265).
?DOC(" Sets the language of the RSS channel example: \"en-us\"\n").
-spec with_channel_language(rss_channel(), binary()) -> rss_channel().
with_channel_language(Channel, Language) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
{some, Language},
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 273).
?DOC(" Sets the copyright information for the RSS channel\n").
-spec with_channel_copyright(rss_channel(), binary()) -> rss_channel().
with_channel_copyright(Channel, Copyright) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
{some, Copyright},
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 281).
?DOC(" Sets the managing editor's email address for the RSS channel\n").
-spec with_channel_managing_editor(rss_channel(), binary()) -> rss_channel().
with_channel_managing_editor(Channel, Managing_editor) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
{some, Managing_editor},
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 289).
?DOC(" Sets the web master's email address for the RSS channel\n").
-spec with_channel_web_master(rss_channel(), binary()) -> rss_channel().
with_channel_web_master(Channel, Web_master) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
{some, Web_master},
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 297).
?DOC(" Sets the publication date of the RSS channel\n").
-spec with_channel_pub_date(rss_channel(), birl:time()) -> rss_channel().
with_channel_pub_date(Channel, Pub_date) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
{some, Pub_date},
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 302).
?DOC(" Sets the last build date of the RSS channel\n").
-spec with_channel_last_build_date(rss_channel(), birl:time()) -> rss_channel().
with_channel_last_build_date(Channel, Last_build_date) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
{some, Last_build_date},
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 310).
?DOC(" Adds a category to the RSS channel\n").
-spec with_channel_category(rss_channel(), binary()) -> rss_channel().
with_channel_category(Channel, Category) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
[Category | erlang:element(11, Channel)],
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 318).
?DOC(" Adds a list of categories to the RSS channel\n").
-spec with_channel_categories(rss_channel(), list(binary())) -> rss_channel().
with_channel_categories(Channel, Categories) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
gleam@list:flatten([erlang:element(11, Channel), Categories]),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 329).
?DOC(" Sets the generator element for the RSS channel with a custom string\n").
-spec with_channel_custom_generator(rss_channel(), binary()) -> rss_channel().
with_channel_custom_generator(Channel, Generator) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
{some, Generator},
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 337).
?DOC(" Sets the generator element for the RSS channel to webls\n").
-spec with_channel_generator(rss_channel()) -> rss_channel().
with_channel_generator(Channel) ->
with_channel_custom_generator(Channel, <<"webls"/utf8>>).
-file("src/webls/rss.gleam", 342).
?DOC(" Adds the RSS 2.0.1 spec documentation link to the RSS channel\n").
-spec with_channel_docs(rss_channel()) -> rss_channel().
with_channel_docs(Channel) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
{some, <<"https://www.rssboard.org/rss-2-0-1"/utf8>>},
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 348).
?DOC(
" Sets the cloud element for the RSS channel with a domain, port, path,\n"
" register procedure, and protocol\n"
).
-spec with_channel_cloud(rss_channel(), cloud()) -> rss_channel().
with_channel_cloud(Channel, Cloud) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
{some, Cloud},
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 353).
?DOC(" Sets the time-to-live (TTL) for the RSS channel in minutes\n").
-spec with_channel_ttl(rss_channel(), integer()) -> rss_channel().
with_channel_ttl(Channel, Ttl) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
{some, Ttl},
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 358).
?DOC(" Sets an optional image associated with the RSS channel\n").
-spec with_channel_image(rss_channel(), image()) -> rss_channel().
with_channel_image(Channel, Image) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
{some, Image},
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 363).
?DOC(" Sets an optional text input for the RSS channel\n").
-spec with_channel_text_input(rss_channel(), text_input()) -> rss_channel().
with_channel_text_input(Channel, Text_input) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
{some, Text_input},
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 371).
?DOC(" Sets a list of hours in GMT which content aggregation should be skipped\n").
-spec with_channel_skip_hours(rss_channel(), list(integer())) -> rss_channel().
with_channel_skip_hours(Channel, Skip_hours) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
Skip_hours,
erlang:element(19, _record),
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 379).
?DOC(" Sets a list of days to skip in the RSS channel\n").
-spec with_channel_skip_days(rss_channel(), list(birl:weekday())) -> rss_channel().
with_channel_skip_days(Channel, Skip_days) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
Skip_days,
erlang:element(20, _record)}.
-file("src/webls/rss.gleam", 387).
?DOC(" Adds a list of items in the RSS channel\n").
-spec with_channel_items(rss_channel(), list(rss_item())) -> rss_channel().
with_channel_items(Channel, Items) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
gleam@list:flatten([erlang:element(20, Channel), Items])}.
-file("src/webls/rss.gleam", 395).
?DOC(" Adds a RSS item to the RSS channel\n").
-spec with_channel_item(rss_channel(), rss_item()) -> rss_channel().
with_channel_item(Channel, Item) ->
_record = Channel,
{rss_channel,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
[Item | erlang:element(20, Channel)]}.
-file("src/webls/rss.gleam", 400).
?DOC(" Creates a base RSS item\n").
-spec item(binary(), binary()) -> rss_item().
item(Title, Description) ->
{rss_item, Title, Description, none, none, none, none, none, [], none, none}.
-file("src/webls/rss.gleam", 416).
?DOC(" Sets the link to the page or source of the RSS item\n").
-spec with_item_link(rss_item(), binary()) -> rss_item().
with_item_link(Item, Link) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
{some, Link},
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record)}.
-file("src/webls/rss.gleam", 421).
?DOC(" Sets an optional author field, note RSS author must be email addresses\n").
-spec with_item_author(rss_item(), binary()) -> rss_item().
with_item_author(Item, Author) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
{some, Author},
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record)}.
-file("src/webls/rss.gleam", 426).
?DOC(" Sets a list of categories for the RSS item\n").
-spec with_item_categories(rss_item(), list(binary())) -> rss_item().
with_item_categories(Item, Categories) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
Categories,
erlang:element(10, _record),
erlang:element(11, _record)}.
-file("src/webls/rss.gleam", 431).
?DOC(" Sets a URL to the comments section for the RSS item\n").
-spec with_item_comments(rss_item(), binary()) -> rss_item().
with_item_comments(Item, Comments) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
{some, Comments},
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record)}.
-file("src/webls/rss.gleam", 436).
?DOC(" Sets an optional enclosure (media resource) for the RSS item\n").
-spec with_item_enclosure(rss_item(), enclosure()) -> rss_item().
with_item_enclosure(Item, Enclosure) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
{some, Enclosure},
erlang:element(11, _record)}.
-file("src/webls/rss.gleam", 441).
?DOC(" Sets the guid of the RSS item with an optional boolean for whether it is a permalink\n").
-spec with_item_guid(rss_item(), {binary(), gleam@option:option(boolean())}) -> rss_item().
with_item_guid(Item, Guid) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
{some, Guid}}.
-file("src/webls/rss.gleam", 446).
?DOC(" Sets the publication date of the RSS item\n").
-spec with_item_pub_date(rss_item(), birl:time()) -> rss_item().
with_item_pub_date(Item, Pub_date) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
{some, Pub_date},
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record)}.
-file("src/webls/rss.gleam", 451).
?DOC(" Sets the RSS channel the item came from\n").
-spec with_item_source(rss_item(), binary()) -> rss_item().
with_item_source(Item, Source) ->
_record = Item,
{rss_item,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
{some, Source},
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record)}.