Packages

Idiomatic Gleam client for the YouTube Data API V3

Current section

Files

Jump to
gleetube src gleetube@decoder@caption_decoder.erl
Raw

src/gleetube@decoder@caption_decoder.erl

-module(gleetube@decoder@caption_decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleetube/decoder/caption_decoder.gleam").
-export([caption_decoder/0, caption_list_response_decoder/0]).
-file("src/gleetube/decoder/caption_decoder.gleam", 50).
-spec caption_snippet_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@caption:caption_snippet()).
caption_snippet_decoder() ->
gleam@dynamic@decode:optional_field(
<<"videoId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Video_id) ->
gleam@dynamic@decode:optional_field(
<<"lastUpdated"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Last_updated) ->
gleam@dynamic@decode:optional_field(
<<"trackKind"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Track_kind) ->
gleam@dynamic@decode:optional_field(
<<"language"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Language) ->
gleam@dynamic@decode:optional_field(
<<"name"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Name) ->
gleam@dynamic@decode:optional_field(
<<"audioTrackType"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Audio_track_type) ->
gleam@dynamic@decode:optional_field(
<<"isCC"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Is_cc) ->
gleam@dynamic@decode:optional_field(
<<"isLarge"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Is_large) ->
gleam@dynamic@decode:optional_field(
<<"isEasyReader"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(
Is_easy_reader
) ->
gleam@dynamic@decode:optional_field(
<<"isDraft"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(
Is_draft
) ->
gleam@dynamic@decode:optional_field(
<<"isAutoSynced"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(
Is_auto_synced
) ->
gleam@dynamic@decode:optional_field(
<<"status"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Status
) ->
gleam@dynamic@decode:optional_field(
<<"failureReason"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Failure_reason
) ->
gleam@dynamic@decode:success(
{caption_snippet,
Video_id,
Last_updated,
Track_kind,
Language,
Name,
Audio_track_type,
Is_cc,
Is_large,
Is_easy_reader,
Is_draft,
Is_auto_synced,
Status,
Failure_reason}
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/caption_decoder.gleam", 26).
-spec caption_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@caption:caption()).
caption_decoder() ->
gleam@dynamic@decode:optional_field(
<<"kind"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Kind) ->
gleam@dynamic@decode:optional_field(
<<"etag"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Etag) ->
gleam@dynamic@decode:optional_field(
<<"id"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Id) ->
gleam@dynamic@decode:optional_field(
<<"snippet"/utf8>>,
none,
gleam@dynamic@decode:optional(
caption_snippet_decoder()
),
fun(Snippet) ->
gleam@dynamic@decode:success(
{caption, Kind, Etag, Id, Snippet}
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/caption_decoder.gleam", 7).
-spec caption_list_response_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@caption:caption_list_response()).
caption_list_response_decoder() ->
gleam@dynamic@decode:optional_field(
<<"kind"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Kind) ->
gleam@dynamic@decode:optional_field(
<<"etag"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Etag) ->
gleam@dynamic@decode:optional_field(
<<"items"/utf8>>,
[],
gleam@dynamic@decode:list(caption_decoder()),
fun(Items) ->
gleam@dynamic@decode:success(
{caption_list_response, Kind, Etag, Items}
)
end
)
end
)
end
).