diff --git a/app/routes/routes.go b/app/routes/routes.go index f9a66e0..44ba0d2 100644 --- a/app/routes/routes.go +++ b/app/routes/routes.go @@ -55,7 +55,7 @@ func Index(w http.ResponseWriter, r *http.Request) { feed.Entry = append(feed.Entry) - _ = filepath.WalkDir(ctx.String("manga"), func(path string, d fs.DirEntry, err error) error { + err := filepath.WalkDir(ctx.String("manga"), func(path string, d fs.DirEntry, err error) error { if err != nil || d.IsDir() || filepath.Ext(d.Name()) != ".cbz" { return err } @@ -68,17 +68,21 @@ func Index(w http.ResponseWriter, r *http.Request) { if found { ComicInfo = ci.(comicinfo.ComicInfo) } else { - zf, _ := zip.OpenReader(path) - for i := range zf.File { - if strings.ToLower(zf.File[i].Name) == "comicinfo.xml" { - cif, err := zf.File[i].Open() - if err != nil { - return err + zf, err := zip.OpenReader(path) + if err != nil { + return nil + } else { + for i := range zf.File { + if strings.ToLower(zf.File[i].Name) == "comicinfo.xml" { + cif, err := zf.File[i].Open() + if err != nil { + return err + } + cib, _ := io.ReadAll(cif) + _ = cif.Close() + _ = xml.Unmarshal(cib, &ComicInfo) + c.Set(path, ComicInfo, cache.NoExpiration) } - cib, _ := io.ReadAll(cif) - _ = cif.Close() - _ = xml.Unmarshal(cib, &ComicInfo) - c.Set(path, ComicInfo, cache.NoExpiration) } } } @@ -125,6 +129,10 @@ func Index(w http.ResponseWriter, r *http.Request) { return nil }) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } + _ = defaults.Set(&feed) data, _ := xml.MarshalIndent(feed, "", " ") http.ServeContent(w, r, "feed.xml", time.Now(), bytes.NewReader(data)) diff --git a/go.sum b/go.sum index af2822e..2a7f2df 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,20 @@ github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creasty/defaults v1.8.0 h1:z27FJxCAa0JKt3utc0sCImAEb+spPucmKoOdLHvHYKk= github.com/creasty/defaults v1.8.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=