Files
gonic/server/ctrlsubsonic/spec/construct_podcast.go

46 lines
1.1 KiB
Go

package spec
import "go.senan.xyz/gonic/server/db"
func NewPodcastChannel(p *db.Podcast) *PodcastChannel {
ret := &PodcastChannel{
ID: p.SID(),
OriginalImageURL: p.ImageURL,
Title: p.Title,
Description: p.Description,
URL: p.URL,
CoverArt: p.SID(),
Status: "skipped",
}
for _, episode := range p.Episodes {
specEpisode := NewPodcastEpisode(p, episode)
ret.Episode = append(ret.Episode, specEpisode)
}
return ret
}
func NewPodcastEpisode(p *db.Podcast, e *db.PodcastEpisode) *PodcastEpisode {
if e == nil {
return nil
}
return &PodcastEpisode{
ID: e.SID(),
StreamID: e.SID(),
ContentType: e.MIME(),
ChannelID: p.SID(),
Title: e.Title,
Description: e.Description,
Status: string(e.Status),
CoverArt: p.SID(),
PublishDate: *e.PublishDate,
Genre: "Podcast",
Duration: e.Length,
Year: e.PublishDate.Year(),
Suffix: e.Ext(),
BitRate: e.Bitrate,
IsDir: false,
Path: e.Path,
Size: e.Size,
}
}