server: make constructors concise

This commit is contained in:
Jeremy Baxter 2026-01-10 21:24:52 +13:00
parent 8553658128
commit dcb8094403

View file

@ -45,9 +45,7 @@ type IndexPage struct {
Showcase string
}
func MakeIndexPage() IndexPage {
var p IndexPage
func MakeIndexPage() (p IndexPage) {
albums := musicindex.Albums()
rand.Shuffle(len(albums), func(i, j int) {
albums[i], albums[j] = albums[j], albums[i]
@ -71,9 +69,11 @@ func MakeIndexPage() IndexPage {
}
b.WriteString(`</div>`)
}
b.WriteString(`</div>`)
p.Showcase = b.String()
return p
return
}
func (p IndexPage) SourceFile() string { return "base.html" }
@ -102,8 +102,7 @@ func ArtistSortOptions() []string {
return []string{"name", "albums", "songs"}
}
func MakeArtistsPage(sortBy string) ArtistsPage {
var p ArtistsPage
func MakeArtistsPage(sortBy string) (p ArtistsPage) {
var b strings.Builder
artistNames := musicindex.Artists()
@ -138,9 +137,11 @@ func MakeArtistsPage(sortBy string) ArtistsPage {
b.WriteString(fmt.Sprintf("<br>%d album%s, %d songs</li><br>",
albums, util.OptionalString(albums != 1, "s"), artist.Songs))
}
b.WriteString(`</div>`)
p.bodyHTML = b.String()
return p
return
}
func (p ArtistsPage) SourceFile() string { return "base.html" }
@ -196,14 +197,13 @@ func writeAlbums(b *strings.Builder, sortBy string, albums []musicindex.Album, a
b.WriteString(`</tbody></table></div>`)
}
func MakeAlbumsPage(sortBy string) AlbumsPage {
var p AlbumsPage
func MakeAlbumsPage(sortBy string) (p AlbumsPage) {
var b strings.Builder
writeAlbums(&b, sortBy, musicindex.Albums(), false)
p.bodyHTML = b.String()
return p
return
}
func (p AlbumsPage) SourceFile() string { return "base.html" }
@ -215,8 +215,7 @@ type ArtistPage struct {
bodyHTML string
}
func MakeArtistPage(sortBy string, name string) ArtistPage {
var p ArtistPage
func MakeArtistPage(sortBy string, name string) (p ArtistPage) {
var b strings.Builder
artist := musicindex.FindArtist(name)
@ -227,7 +226,7 @@ func MakeArtistPage(sortBy string, name string) ArtistPage {
p.Artist = artist
p.bodyHTML = b.String()
return p
return
}
func (p ArtistPage) SourceFile() string { return "base.html" }
@ -239,8 +238,7 @@ type AlbumPage struct {
bodyHTML string
}
func MakeAlbumPage(album musicindex.Album) AlbumPage {
var p AlbumPage
func MakeAlbumPage(album musicindex.Album) (p AlbumPage) {
var b strings.Builder
b.WriteString(`<br><div class="album"><div class="album-cover">`)
@ -269,7 +267,7 @@ func MakeAlbumPage(album musicindex.Album) AlbumPage {
p.Album = album
p.bodyHTML = b.String()
return p
return
}
func (p AlbumPage) SourceFile() string { return "base.html" }