-module(webls@rss). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/webls/rss.gleam"). -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, weekday/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(gleam@time@timestamp:timestamp()), gleam@option:option(gleam@time@timestamp:timestamp()), 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(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(gleam@time@timestamp:timestamp()), list(binary()), gleam@option:option(enclosure()), gleam@option:option({binary(), gleam@option:option(boolean())})}. -type weekday() :: monday | tuesday | wednesday | thursday | friday | saturday | sunday. -file("src/webls/rss.gleam", 240). ?DOC(" Converts a timestamp to an RFC 822 date string as required by the RSS 2.0 spec\n"). -spec timestamp_to_rfc822(gleam@time@timestamp:timestamp()) -> binary(). timestamp_to_rfc822(Ts) -> _pipe = Ts, _pipe@1 = tempo@datetime:from_timestamp(_pipe), tempo@datetime:format(_pipe@1, h_t_t_p). -file("src/webls/rss.gleam", 175). -spec rss_item_to_string(rss_item()) -> binary(). rss_item_to_string(Item) -> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"\n"/utf8, ""/utf8>>/binary, (erlang:element( 2, Item ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element(3, Item))/binary>>/binary, "\n"/utf8>>/binary, (case erlang:element(4, Item) of {some, Link} -> <<<<""/utf8, Link/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(5, Item) of {some, Author} -> <<<<""/utf8, Author/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(6, Item) of {some, Comments} -> <<<<""/utf8, Comments/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(7, Item) of {some, Source} -> <<<<""/utf8, Source/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(8, Item) of {some, Pub_date} -> <<<<""/utf8, (begin _pipe = Pub_date, timestamp_to_rfc822(_pipe) end)/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (begin _pipe@1 = erlang:element(9, Item), _pipe@2 = gleam@list:map( _pipe@1, fun(Category) -> <<<<""/utf8, Category/binary>>/binary, "\n"/utf8>> end ), _pipe@3 = gleam@list:reduce( _pipe@2, fun(Acc, Category@1) -> <> end ), gleam@result:unwrap(_pipe@3, <<""/utf8>>) end)/binary>>/binary, (case erlang:element(10, Item) of {some, Enclosure} -> <<<<<<<<<<<<">/binary, "\" length=\""/utf8>>/binary, (erlang:integer_to_binary( 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}} -> <<<<<<<<" <<"true"/utf8>>; false -> <<"false"/utf8>> end)/binary>>/binary, "\">"/utf8>>/binary, Guid@1/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end; _ -> <<""/utf8>> end)/binary>>/binary, ""/utf8>>. -file("src/webls/rss.gleam", 246). -spec weekday_to_string(weekday()) -> binary(). weekday_to_string(Weekday) -> case Weekday of monday -> <<"Monday"/utf8>>; tuesday -> <<"Tuesday"/utf8>>; wednesday -> <<"Wednesday"/utf8>>; thursday -> <<"Thursday"/utf8>>; friday -> <<"Friday"/utf8>>; saturday -> <<"Saturday"/utf8>>; sunday -> <<"Sunday"/utf8>> end. -file("src/webls/rss.gleam", 24). -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) -> <<<>/binary, Rss_item_string/binary>> end ), gleam@result:unwrap(_pipe@3, <<""/utf8>>) end, <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"\n\n"/utf8, ""/utf8>>/binary, (erlang:element( 2, Channel ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element( 3, Channel ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element( 4, Channel ))/binary>>/binary, "\n"/utf8>>/binary, (case erlang:element( 5, Channel ) of {some, Language} -> <<<<""/utf8, Language/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element( 6, Channel ) of {some, Copyright} -> <<<<""/utf8, Copyright/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element( 7, Channel ) of {some, Managing_editor} -> <<<<""/utf8, Managing_editor/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element( 8, Channel ) of {some, Web_master} -> <<<<""/utf8, Web_master/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element( 9, Channel ) of {some, Pub_date} -> <<<<""/utf8, (begin _pipe@4 = Pub_date, timestamp_to_rfc822( _pipe@4 ) end)/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element( 10, Channel ) of {some, Last_build_date} -> <<<<""/utf8, (begin _pipe@5 = Last_build_date, timestamp_to_rfc822( _pipe@5 ) end)/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (begin _pipe@6 = erlang:element( 11, Channel ), _pipe@7 = gleam@list:map( _pipe@6, fun(Category) -> <<<<""/utf8, Category/binary>>/binary, "\n"/utf8>> end ), _pipe@8 = gleam@list:reduce( _pipe@7, fun(Acc@1, Category@1) -> <> end ), gleam@result:unwrap( _pipe@8, <<""/utf8>> ) end)/binary>>/binary, (case erlang:element(12, Channel) of {some, Generator} -> <<<<""/utf8, Generator/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(13, Channel) of {some, Docs} -> <<<<""/utf8, Docs/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(14, Channel) of {some, Cloud} -> <<<<<<<<<<<<<<<<<<<<">/binary, "\" port=\""/utf8>>/binary, (erlang:integer_to_binary( 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} -> <<<<""/utf8, (erlang:integer_to_binary(Ttl))/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(16, Channel) of {some, Image} -> <<<<<<<<<<<<<<<<<<<<<<<<<<""/utf8, ""/utf8>>/binary, (erlang:element( 2, Image ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element( 3, Image ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element( 4, Image ))/binary>>/binary, "\n"/utf8>>/binary, (case erlang:element( 5, Image ) of {some, Description} -> <<<<""/utf8, Description/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(6, Image) of {some, Width} -> <<<<""/utf8, (erlang:integer_to_binary( Width ))/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(7, Image) of {some, Height} -> <<<<""/utf8, (erlang:integer_to_binary( Height ))/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case erlang:element(17, Channel) of {some, Text_input} -> <<<<<<<<<<<<<<<<<<<<<<<<<<""/utf8, ""/utf8>>/binary, (erlang:element( 2, Text_input ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element( 3, Text_input ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element( 4, Text_input ))/binary>>/binary, "\n"/utf8>>/binary, ""/utf8>>/binary, (erlang:element(5, Text_input))/binary>>/binary, "\n"/utf8>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case begin _pipe@9 = erlang:element(18, Channel), erlang:length(_pipe@9) end > 0 of true -> <<<<""/utf8, (begin _pipe@10 = gleam@list:map( erlang:element(18, Channel), fun(Hour) -> <<<<""/utf8, (erlang:integer_to_binary( Hour ))/binary>>/binary, ""/utf8>> end ), _pipe@11 = gleam@list:reduce( _pipe@10, fun(Acc@2, Hour@1) -> <<<>/binary, Hour@1/binary>> end ), gleam@result:unwrap( _pipe@11, <<""/utf8>> ) end)/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, (case begin _pipe@12 = erlang:element(19, Channel), erlang:length(_pipe@12) end > 0 of true -> <<<<""/utf8, (begin _pipe@14 = gleam@list:map( erlang:element(19, Channel), fun(Day) -> <<<<""/utf8, (begin _pipe@13 = Day, weekday_to_string( _pipe@13 ) end)/binary>>/binary, ""/utf8>> end ), _pipe@15 = gleam@list:reduce( _pipe@14, fun(Acc@3, Day@1) -> <<<>/binary, Day@1/binary>> end ), gleam@result:unwrap(_pipe@15, <<""/utf8>>) end)/binary>>/binary, "\n"/utf8>>; _ -> <<""/utf8>> end)/binary>>/binary, Channel_items/binary>>/binary, ""/utf8>>. -file("src/webls/rss.gleam", 12). ?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) -> <<<>/binary, Channel_string/binary>> end ), gleam@result:unwrap(_pipe@3, <<""/utf8>>) end, <<<<"\n"/utf8, Channel_content/binary>>/binary, "\n"/utf8>>. -file("src/webls/rss.gleam", 261). ?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", 286). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), {some, Language}, erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 294). ?DOC(" Sets the copyright information for the RSS channel\n"). -spec with_channel_copyright(rss_channel(), binary()) -> rss_channel(). with_channel_copyright(Channel, Copyright) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), {some, Copyright}, erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 302). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), {some, Managing_editor}, erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 310). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), {some, Web_master}, erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 318). ?DOC(" Sets the publication date of the RSS channel\n"). -spec with_channel_pub_date(rss_channel(), gleam@time@timestamp:timestamp()) -> rss_channel(). with_channel_pub_date(Channel, Pub_date) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), {some, Pub_date}, erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 326). ?DOC(" Sets the last build date of the RSS channel\n"). -spec with_channel_last_build_date( rss_channel(), gleam@time@timestamp:timestamp() ) -> rss_channel(). with_channel_last_build_date(Channel, Last_build_date) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), {some, Last_build_date}, erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 334). ?DOC(" Adds a category to the RSS channel\n"). -spec with_channel_category(rss_channel(), binary()) -> rss_channel(). with_channel_category(Channel, Category) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), [Category | erlang:element(11, Channel)], erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 342). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), lists:append([erlang:element(11, Channel), Categories]), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 353). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), {some, Generator}, erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 361). ?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", 366). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), {some, <<"https://www.rssboard.org/rss-2-0-1"/utf8>>}, erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 372). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), {some, Cloud}, erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 377). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), {some, Ttl}, erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 382). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), {some, Image}, erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 387). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), {some, Text_input}, erlang:element(18, Channel), erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 395). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), Skip_hours, erlang:element(19, Channel), erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 403). ?DOC(" Sets a list of days to skip in the RSS channel\n"). -spec with_channel_skip_days(rss_channel(), list(weekday())) -> rss_channel(). with_channel_skip_days(Channel, Skip_days) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), Skip_days, erlang:element(20, Channel)}. -file("src/webls/rss.gleam", 411). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), lists:append([erlang:element(20, Channel), Items])}. -file("src/webls/rss.gleam", 419). ?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) -> {rss_channel, erlang:element(2, Channel), erlang:element(3, Channel), erlang:element(4, Channel), erlang:element(5, Channel), erlang:element(6, Channel), erlang:element(7, Channel), erlang:element(8, Channel), erlang:element(9, Channel), erlang:element(10, Channel), erlang:element(11, Channel), erlang:element(12, Channel), erlang:element(13, Channel), erlang:element(14, Channel), erlang:element(15, Channel), erlang:element(16, Channel), erlang:element(17, Channel), erlang:element(18, Channel), erlang:element(19, Channel), [Item | erlang:element(20, Channel)]}. -file("src/webls/rss.gleam", 424). ?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", 440). ?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) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), {some, Link}, erlang:element(5, Item), erlang:element(6, Item), erlang:element(7, Item), erlang:element(8, Item), erlang:element(9, Item), erlang:element(10, Item), erlang:element(11, Item)}. -file("src/webls/rss.gleam", 445). ?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) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), {some, Author}, erlang:element(6, Item), erlang:element(7, Item), erlang:element(8, Item), erlang:element(9, Item), erlang:element(10, Item), erlang:element(11, Item)}. -file("src/webls/rss.gleam", 450). ?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) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), erlang:element(5, Item), erlang:element(6, Item), erlang:element(7, Item), erlang:element(8, Item), Categories, erlang:element(10, Item), erlang:element(11, Item)}. -file("src/webls/rss.gleam", 455). ?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) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), erlang:element(5, Item), {some, Comments}, erlang:element(7, Item), erlang:element(8, Item), erlang:element(9, Item), erlang:element(10, Item), erlang:element(11, Item)}. -file("src/webls/rss.gleam", 460). ?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) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), erlang:element(5, Item), erlang:element(6, Item), erlang:element(7, Item), erlang:element(8, Item), erlang:element(9, Item), {some, Enclosure}, erlang:element(11, Item)}. -file("src/webls/rss.gleam", 465). ?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) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), erlang:element(5, Item), erlang:element(6, Item), erlang:element(7, Item), erlang:element(8, Item), erlang:element(9, Item), erlang:element(10, Item), {some, Guid}}. -file("src/webls/rss.gleam", 470). ?DOC(" Sets the publication date of the RSS item\n"). -spec with_item_pub_date(rss_item(), gleam@time@timestamp:timestamp()) -> rss_item(). with_item_pub_date(Item, Pub_date) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), erlang:element(5, Item), erlang:element(6, Item), erlang:element(7, Item), {some, Pub_date}, erlang:element(9, Item), erlang:element(10, Item), erlang:element(11, Item)}. -file("src/webls/rss.gleam", 475). ?DOC(" Sets the RSS channel the item came from\n"). -spec with_item_source(rss_item(), binary()) -> rss_item(). with_item_source(Item, Source) -> {rss_item, erlang:element(2, Item), erlang:element(3, Item), erlang:element(4, Item), erlang:element(5, Item), erlang:element(6, Item), {some, Source}, erlang:element(8, Item), erlang:element(9, Item), erlang:element(10, Item), erlang:element(11, Item)}.