From 122627450166cf58a1823a9ca72e0c4daf5b9726 Mon Sep 17 00:00:00 2001 From: sentriz Date: Sat, 6 Jul 2019 13:48:49 +0100 Subject: [PATCH] add last scan time to ui --- scanner/scanner.go | 4 ++++ server/assets/pages/home.tmpl | 7 +++++++ server/handler/handler_admin.go | 27 ++++++++++++++++++++------- server/handler/respond_admin.go | 4 +++- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/scanner/scanner.go b/scanner/scanner.go index 5478185..c09a907 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -5,6 +5,7 @@ import ( "os" "path" "path/filepath" + "strconv" "strings" "sync/atomic" "time" @@ -156,6 +157,9 @@ func (s *Scanner) Start() error { WHERE NOT EXISTS (SELECT 1 from albums WHERE albums.tag_artist_id = artists.id) `) + // finish up + strNow := strconv.FormatInt(time.Now().Unix(), 10) + s.db.SetSetting("last_scan_time", strNow) // log.Printf("finished clean in %s, -%d tracks\n", time.Since(start), diff --git a/server/assets/pages/home.tmpl b/server/assets/pages/home.tmpl index 008d7a7..50aa81e 100644 --- a/server/assets/pages/home.tmpl +++ b/server/assets/pages/home.tmpl @@ -81,6 +81,13 @@ {{ end }} start scan + {{ if not .LastScanTime.IsZero }} +
+ + last completed: + {{ .LastScanTime | humanDate }} + + {{ end }} {{ end }} diff --git a/server/handler/handler_admin.go b/server/handler/handler_admin.go index 09c760c..d194a3f 100644 --- a/server/handler/handler_admin.go +++ b/server/handler/handler_admin.go @@ -4,6 +4,8 @@ import ( "fmt" "log" "net/http" + "strconv" + "time" "github.com/gorilla/sessions" "github.com/jinzhu/gorm" @@ -51,16 +53,13 @@ func (c *Controller) ServeLogout(w http.ResponseWriter, r *http.Request) { func (c *Controller) ServeHome(w http.ResponseWriter, r *http.Request) { data := &templateData{} + // + // stats box c.DB.Table("artists").Count(&data.ArtistCount) c.DB.Table("albums").Count(&data.AlbumCount) c.DB.Table("tracks").Count(&data.TrackCount) - c.DB.Find(&data.AllUsers) - c.DB. - Where("tag_artist_id IS NOT NULL"). - Order("updated_at DESC"). - Limit(8). - Find(&data.RecentFolders) - data.CurrentLastFMAPIKey = c.DB.GetSetting("lastfm_api_key") + // + // lastfm box scheme := firstExisting( "http", // fallback r.Header.Get("X-Forwarded-Proto"), @@ -73,6 +72,20 @@ func (c *Controller) ServeHome(w http.ResponseWriter, r *http.Request) { r.Host, ) data.RequestRoot = fmt.Sprintf("%s://%s", scheme, host) + data.CurrentLastFMAPIKey = c.DB.GetSetting("lastfm_api_key") + if tStr := c.DB.GetSetting("last_scan_time"); tStr != "" { + i, _ := strconv.ParseInt(tStr, 10, 64) + data.LastScanTime = time.Unix(i, 0) + } + c.DB.Find(&data.AllUsers) + // + // recent folders box + c.DB. + Where("tag_artist_id IS NOT NULL"). + Order("updated_at DESC"). + Limit(8). + Find(&data.RecentFolders) + // renderTemplate(w, r, c.Templates["home.tmpl"], data) } diff --git a/server/handler/respond_admin.go b/server/handler/respond_admin.go index 3a39dbb..7080747 100644 --- a/server/handler/respond_admin.go +++ b/server/handler/respond_admin.go @@ -4,6 +4,7 @@ import ( "html/template" "log" "net/http" + "time" "github.com/gorilla/sessions" @@ -21,6 +22,7 @@ type templateData struct { RequestRoot string RecentFolders []*model.Album AllUsers []*model.User + LastScanTime time.Time // CurrentLastFMAPIKey string CurrentLastFMAPISecret string @@ -39,7 +41,7 @@ func renderTemplate( session := r.Context().Value(contextSessionKey).(*sessions.Session) data.Flashes = session.Flashes() sessionLogSave(w, r, session) - data.User = r.Context().Value(contextUserKey).(*model.User) + data.User, _ = r.Context().Value(contextUserKey).(*model.User) err := tmpl.Execute(w, data) if err != nil { log.Printf("error executing template: %v\n", err)