OpenSubsonic: getPodcastEpisode, topSongsByArtistId, transcodeOffset (real ffmpeg seek)

This commit is contained in:
2026-08-23 08:06:12 -05:00
parent e38d31d384
commit e88f4e040c
7 changed files with 219 additions and 15 deletions
+20
View File
@@ -8,6 +8,8 @@ import (
)
func init() {
registerExtension("getPodcastEpisode", 1)
register("getPodcastEpisode", handleGetPodcastEpisode)
register("getPodcasts", handleGetPodcasts)
register("getNewestPodcasts", handleGetNewestPodcasts)
register("refreshPodcasts", handleRefreshPodcasts)
@@ -75,6 +77,24 @@ func podcastChannelToModel(db *sql.DB, c *database.PodcastChannel, withEpisodes
return pc, nil
}
func handleGetPodcastEpisode(rc *Context) *apiError {
if !rc.User.Allows(rc.User.Permissions.Podcast) {
return errUnauthorized("podcasts")
}
id, aerr := rc.Params.Required("id")
if aerr != nil {
return aerr
}
ep, err := database.GetPodcastEpisode(rc.Server.DB, id)
if err != nil {
return errNotFound("Podcast episode")
}
model := podcastEpisodeToModel(rc.Server.DB, ep, rc.User.ID)
rc.Response = newResponse()
rc.Response.PodcastEpisode = &model
return nil
}
func handleGetPodcasts(rc *Context) *apiError {
if !rc.User.Allows(rc.User.Permissions.Podcast) {
return errUnauthorized("podcasts")