diff --git a/lib/sc/track.go b/lib/sc/track.go
index 4010b21..290becc 100644
--- a/lib/sc/track.go
+++ b/lib/sc/track.go
@@ -145,6 +145,10 @@ func GetArbitraryTrack(data string) (Track, error) {
}
}
+ if n != 1 {
+ return Track{}, ErrKindNotCorrect
+ }
+
return GetTrack(u.Path)
}
} else {
diff --git a/main.go b/main.go
index 9922815..d0c1832 100644
--- a/main.go
+++ b/main.go
@@ -2,7 +2,6 @@ package main
import (
"context"
- "fmt"
"log"
"net/url"
"strings"
@@ -43,7 +42,7 @@ func main() {
case "tracks":
p, err := sc.SearchTracks(c.Query("pagination", "?q="+url.QueryEscape(q)))
if err != nil {
- fmt.Printf("error getting tracks for %s: %s\n", q, err)
+ log.Printf("error getting tracks for %s: %s\n", q, err)
return err
}
@@ -53,7 +52,7 @@ func main() {
case "users":
p, err := sc.SearchUsers(c.Query("pagination", "?q="+url.QueryEscape(q)))
if err != nil {
- fmt.Printf("error getting users for %s: %s\n", q, err)
+ log.Printf("error getting users for %s: %s\n", q, err)
return err
}
@@ -63,7 +62,7 @@ func main() {
case "playlists":
p, err := sc.SearchPlaylists(c.Query("pagination", "?q="+url.QueryEscape(q)))
if err != nil {
- fmt.Printf("error getting users for %s: %s\n", q, err)
+ log.Printf("error getting users for %s: %s\n", q, err)
return err
}
@@ -119,13 +118,13 @@ func main() {
track, err := sc.GetArbitraryTrack(u)
if err != nil {
- fmt.Printf("error getting %s: %s\n", u, err)
+ log.Printf("error getting %s: %s\n", u, err)
return err
}
stream, err := track.GetStream()
if err != nil {
- fmt.Printf("error getting %s stream from %s: %s\n", track.Permalink, track.Author.Permalink, err)
+ log.Printf("error getting %s stream from %s: %s\n", track.Permalink, track.Author.Permalink, err)
}
c.Set("Content-Type", "text/html")
@@ -135,13 +134,13 @@ func main() {
app.Get("/:user/sets", func(c *fiber.Ctx) error {
user, err := sc.GetUser(c.Params("user"))
if err != nil {
- fmt.Printf("error getting %s (playlists): %s\n", c.Params("user"), err)
+ log.Printf("error getting %s (playlists): %s\n", c.Params("user"), err)
return err
}
pl, err := user.GetPlaylists(c.Query("pagination", "?limit=20"))
if err != nil {
- fmt.Printf("error getting %s playlists: %s\n", c.Params("user"), err)
+ log.Printf("error getting %s playlists: %s\n", c.Params("user"), err)
return err
}
@@ -152,13 +151,13 @@ func main() {
app.Get("/:user/albums", func(c *fiber.Ctx) error {
user, err := sc.GetUser(c.Params("user"))
if err != nil {
- fmt.Printf("error getting %s (albums): %s\n", c.Params("user"), err)
+ log.Printf("error getting %s (albums): %s\n", c.Params("user"), err)
return err
}
pl, err := user.GetAlbums(c.Query("pagination", "?limit=20"))
if err != nil {
- fmt.Printf("error getting %s albums: %s\n", c.Params("user"), err)
+ log.Printf("error getting %s albums: %s\n", c.Params("user"), err)
return err
}
@@ -169,13 +168,13 @@ func main() {
app.Get("/:user/:track", func(c *fiber.Ctx) error {
track, err := sc.GetTrack(c.Params("user") + "/" + c.Params("track"))
if err != nil {
- fmt.Printf("error getting %s from %s: %s\n", c.Params("track"), c.Params("user"), err)
+ log.Printf("error getting %s from %s: %s\n", c.Params("track"), c.Params("user"), err)
return err
}
stream, err := track.GetStream()
if err != nil {
- fmt.Printf("error getting %s stream from %s: %s\n", c.Params("track"), c.Params("user"), err)
+ log.Printf("error getting %s stream from %s: %s\n", c.Params("track"), c.Params("user"), err)
}
c.Set("Content-Type", "text/html")
@@ -186,7 +185,7 @@ func main() {
//h := time.Now()
usr, err := sc.GetUser(c.Params("user"))
if err != nil {
- fmt.Printf("error getting %s: %s\n", c.Params("user"), err)
+ log.Printf("error getting %s: %s\n", c.Params("user"), err)
return err
}
//fmt.Println("getuser", time.Since(h))
@@ -194,7 +193,7 @@ func main() {
//h = time.Now()
p, err := usr.GetTracks(c.Query("pagination", "?limit=20"))
if err != nil {
- fmt.Printf("error getting %s tracks: %s\n", c.Params("user"), err)
+ log.Printf("error getting %s tracks: %s\n", c.Params("user"), err)
return err
}
//fmt.Println("gettracks", time.Since(h))
@@ -206,7 +205,7 @@ func main() {
app.Get("/:user/sets/:playlist", func(c *fiber.Ctx) error {
playlist, err := sc.GetPlaylist(c.Params("user") + "/sets/" + c.Params("playlist"))
if err != nil {
- fmt.Printf("error getting %s playlist from %s: %s\n", c.Params("playlist"), c.Params("user"), err)
+ log.Printf("error getting %s playlist from %s: %s\n", c.Params("playlist"), c.Params("user"), err)
return err
}
@@ -214,7 +213,7 @@ func main() {
if p != "" {
tracks, next, err := sc.GetNextMissingTracks(p)
if err != nil {
- fmt.Printf("error getting %s playlist tracks from %s: %s\n", c.Params("playlist"), c.Params("user"), err)
+ log.Printf("error getting %s playlist tracks from %s: %s\n", c.Params("playlist"), c.Params("user"), err)
return err
}
diff --git a/templates/playlist.templ b/templates/playlist.templ
index 8b355aa..432759f 100644
--- a/templates/playlist.templ
+++ b/templates/playlist.templ
@@ -91,8 +91,8 @@ templ SearchPlaylists(p *sc.Paginated[*sc.Playlist]) {
}
- }
- if p.Total != 0 && len(p.Collection) != 0 && p.Next != "" {
- more playlists
+ if p.Next != "" && len(p.Collection) != int(p.Total) {
+ more playlists
+ }
}
}
diff --git a/templates/track.templ b/templates/track.templ
index 9b87e3f..cc7f068 100644
--- a/templates/track.templ
+++ b/templates/track.templ
@@ -142,8 +142,8 @@ templ SearchTracks(p *sc.Paginated[*sc.Track]) {
}
- }
- if p.Total != 0 && len(p.Collection) != 0 && p.Next != "" {
- more tracks
+ if p.Next != "" && len(p.Collection) != int(p.Total) {
+ more tracks
+ }
}
}
diff --git a/templates/user.templ b/templates/user.templ
index 605e33e..871d9bc 100644
--- a/templates/user.templ
+++ b/templates/user.templ
@@ -69,7 +69,7 @@ templ User(u sc.User, p *sc.Paginated[sc.Track]) {
}
- if p.Next != "" {
+ if p.Next != "" && len(p.Collection) != int(u.Tracks) {
more tracks
}
} else {
@@ -100,7 +100,7 @@ templ UserPlaylists(u sc.User, p *sc.Paginated[sc.Playlist]) {
}
- if p.Next != "" {
+ if p.Next != "" && len(p.Collection) != int(p.Total) {
more playlists
}
} else {
@@ -131,7 +131,7 @@ templ UserAlbums(u sc.User, p *sc.Paginated[sc.Playlist]) {
}
- if p.Next != "" {
+ if p.Next != "" && len(p.Collection) != int(p.Total) {
more albums
}
} else {
@@ -163,8 +163,8 @@ templ SearchUsers(p *sc.Paginated[*sc.User]) {
}
- }
- if p.Total != 0 && len(p.Collection) != 0 && p.Next != "" {
- more users
+ if p.Next != "" && len(p.Collection) != int(p.Total) {
+ more users
+ }
}
}