jnfilter @ f01369628016ba3038cccac77ba54bcd6be6630b

fix: Handle not found better (or at all)

By default go tunnels every request to "/", so I'd need to check for
paths at the podcast handler so I can report not found for anything
other than "/"
 1diff --git a/main.go b/main.go
 2index 7a8d2a67604cdc163da9c1c6549593d046605745..728d32c4aa9d163391703880265af9a970019a74 100644
 3--- a/main.go
 4+++ b/main.go
 5@@ -31,8 +31,9 @@ )
 6 
 7 var (
 8 	//go:embed static/*
 9-	assets     embed.FS
10-	serieRegex = regexp.MustCompile(`(?P<serie>.+) (?P<number>[0-9abc]+) \- (?P<title>.+)`)
11+	assets      embed.FS
12+	serieRegex  = regexp.MustCompile(`(?P<serie>.+) (?P<number>[0-9abc]+) \- (?P<title>.+)`)
13+	errNotFound = errors.New("not found")
14 )
15 
16 var (
17@@ -164,7 +165,12 @@ func handleError(next errorRequestHandler) http.HandlerFunc {
18 	return func(w http.ResponseWriter, r *http.Request) {
19 		if err := next(w, r); err != nil {
20 			slog.ErrorContext(r.Context(), "Error", "error", err.Error())
21-			w.WriteHeader(http.StatusInternalServerError)
22+
23+			if errors.Is(err, errNotFound) {
24+				w.WriteHeader(http.StatusNotFound)
25+			} else {
26+				w.WriteHeader(http.StatusInternalServerError)
27+			}
28 		}
29 	}
30 }
31@@ -236,6 +242,12 @@ 	return nil
32 }
33 
34 func podcast(w http.ResponseWriter, r *http.Request) error {
35+
36+	if r.URL.Path != "/" {
37+		return errNotFound
38+
39+	}
40+
41 	xml, err := fetchXML(r.Context())
42 	if err != nil {
43 		return err