-module(rocksky@feed).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/feed.gleam").
-export([get_feed/1, get_feed_generators/0, get_feed_generator/1, get_recommendations/1, get_artist_recommendations/1, get_album_recommendations/1, get_stories/0, search/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(" `app.rocksky.feed.*` — feeds, recommendations and search.\n").
-file("src/rocksky/feed.gleam", 8).
?DOC(" `app.rocksky.feed.getFeed` — fetch a feed by id with cursor pagination.\n").
-spec get_feed(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_feed(Feed) ->
_pipe = rocksky:'query'(
<<"app.rocksky.feed.getFeed"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"feed"/utf8>>, Feed).
-file("src/rocksky/feed.gleam", 14).
?DOC(" `app.rocksky.feed.getFeedGenerators` — list available feed generators.\n").
-spec get_feed_generators() -> rocksky:request(gleam@dynamic:dynamic_()).
get_feed_generators() ->
rocksky:'query'(
<<"app.rocksky.feed.getFeedGenerators"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
).
-file("src/rocksky/feed.gleam", 19).
?DOC(" `app.rocksky.feed.getFeedGenerator` — fetch a single feed generator.\n").
-spec get_feed_generator(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_feed_generator(Feed) ->
_pipe = rocksky:'query'(
<<"app.rocksky.feed.getFeedGenerator"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"feed"/utf8>>, Feed).
-file("src/rocksky/feed.gleam", 25).
?DOC(" `app.rocksky.feed.getRecommendations` — recommended tracks for an actor.\n").
-spec get_recommendations(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_recommendations(Did) ->
_pipe = rocksky:'query'(
<<"app.rocksky.feed.getRecommendations"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"did"/utf8>>, Did).
-file("src/rocksky/feed.gleam", 31).
?DOC(" `app.rocksky.feed.getArtistRecommendations` — recommended artists.\n").
-spec get_artist_recommendations(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_artist_recommendations(Did) ->
_pipe = rocksky:'query'(
<<"app.rocksky.feed.getArtistRecommendations"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"did"/utf8>>, Did).
-file("src/rocksky/feed.gleam", 37).
?DOC(" `app.rocksky.feed.getAlbumRecommendations` — recommended albums.\n").
-spec get_album_recommendations(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_album_recommendations(Did) ->
_pipe = rocksky:'query'(
<<"app.rocksky.feed.getAlbumRecommendations"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"did"/utf8>>, Did).
-file("src/rocksky/feed.gleam", 48).
?DOC(
" `app.rocksky.feed.getStories` — latest scrobble per user.\n"
"\n"
" Chainable params:\n"
" `|> rocksky.int_param(\"size\", 10)`\n"
" `|> rocksky.param(\"feed\", \"at://…\")` — filter by feed\n"
" `|> rocksky.bool_param(\"following\", True)` — requires auth\n"
).
-spec get_stories() -> rocksky:request(gleam@dynamic:dynamic_()).
get_stories() ->
rocksky:'query'(
<<"app.rocksky.feed.getStories"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
).
-file("src/rocksky/feed.gleam", 53).
?DOC(" `app.rocksky.feed.search` — full-text search across artists, albums, tracks.\n").
-spec search(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
search(Query_text) ->
_pipe = rocksky:'query'(
<<"app.rocksky.feed.search"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"query"/utf8>>, Query_text).