turns out rewriting all of your database code takes a while
This commit is contained in:
parent
1998a36d6d
commit
965d6f5c3e
30 changed files with 947 additions and 1036 deletions
|
@ -12,8 +12,8 @@ import (
|
|||
|
||||
"arimelody.me/arimelody.me/discord"
|
||||
"arimelody.me/arimelody.me/global"
|
||||
musicController "arimelody.me/arimelody.me/music/controller"
|
||||
musicModel "arimelody.me/arimelody.me/music/model"
|
||||
musicDB "arimelody.me/arimelody.me/music/controller"
|
||||
)
|
||||
|
||||
type loginData struct {
|
||||
|
@ -29,18 +29,6 @@ func Handler() http.Handler {
|
|||
mux.Handle("/static/", http.StripPrefix("/static", staticHandler()))
|
||||
mux.Handle("/release/", MustAuthorise(http.StripPrefix("/release", serveRelease())))
|
||||
mux.Handle("/track/", MustAuthorise(http.StripPrefix("/track", serveTrack())))
|
||||
mux.Handle("/createtrack", MustAuthorise(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
track := musicModel.Track{ Title: "Untitled Track" }
|
||||
trackID, err := musicController.CreateTrackDB(global.DB, &track)
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to create track: %s\n", err)
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
track.ID = trackID
|
||||
global.Tracks = append(global.Tracks, &track)
|
||||
http.Redirect(w, r, fmt.Sprintf("/admin/track/%s", trackID), http.StatusTemporaryRedirect)
|
||||
})))
|
||||
mux.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path != "/" {
|
||||
http.NotFound(w, r)
|
||||
|
@ -54,30 +42,55 @@ func Handler() http.Handler {
|
|||
}
|
||||
|
||||
type (
|
||||
Track struct {
|
||||
*musicModel.Track
|
||||
Lyrics template.HTML
|
||||
// Number int
|
||||
}
|
||||
IndexData struct {
|
||||
Releases []*musicModel.Release
|
||||
Releases []musicModel.FullRelease
|
||||
Artists []*musicModel.Artist
|
||||
Tracks []Track
|
||||
Tracks []musicModel.DisplayTrack
|
||||
}
|
||||
)
|
||||
|
||||
var tracks = []Track{}
|
||||
for _, track := range global.Tracks {
|
||||
if track.Release != nil { continue }
|
||||
tracks = append(tracks, Track{
|
||||
dbReleases, err := musicDB.GetAllReleases(global.DB)
|
||||
if err != nil {
|
||||
fmt.Printf("FATAL: Failed to pull releases: %s\n", err)
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
releases := []musicModel.FullRelease{}
|
||||
for _, release := range dbReleases {
|
||||
fullRelease, err := musicDB.GetFullRelease(global.DB, release)
|
||||
if err != nil {
|
||||
fmt.Printf("FATAL: Failed to pull full release data for %s: %s\n", release.ID, err)
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
releases = append(releases, *fullRelease)
|
||||
}
|
||||
|
||||
artists, err := musicDB.GetAllArtists(global.DB)
|
||||
if err != nil {
|
||||
fmt.Printf("FATAL: Failed to pull artists: %s\n", err)
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
dbTracks, err := musicDB.GetOrphanTracks(global.DB)
|
||||
if err != nil {
|
||||
fmt.Printf("FATAL: Failed to pull orphan tracks: %s\n", err)
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
var tracks = []musicModel.DisplayTrack{}
|
||||
for _, track := range dbTracks {
|
||||
tracks = append(tracks, musicModel.DisplayTrack{
|
||||
Track: track,
|
||||
Lyrics: template.HTML(strings.Replace(track.Lyrics, "\n", "<br>", -1)),
|
||||
})
|
||||
}
|
||||
|
||||
err := pages["index"].Execute(w, IndexData{
|
||||
Releases: global.Releases,
|
||||
Artists: global.Artists,
|
||||
err = pages["index"].Execute(w, IndexData{
|
||||
Releases: releases,
|
||||
Artists: artists,
|
||||
Tracks: tracks,
|
||||
})
|
||||
if err != nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue