diff --git a/.gitignore b/.gitignore index 05681c2..d43a9f1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ h.html *.sqlite *.bak /bin -*.exe \ No newline at end of file +*.exe +*secret* +mangaGetter diff --git a/internal/server/handler.go b/internal/server/handler.go index a0d0936..4fdb9a8 100644 --- a/internal/server/handler.go +++ b/internal/server/handler.go @@ -26,7 +26,7 @@ func (s *Server) HandleLoginPost(w http.ResponseWriter, r *http.Request) { Value: secret, Path: "/", MaxAge: 3600, - Secure: true, + Secure: false, HttpOnly: false, SameSite: http.SameSiteLaxMode, }) diff --git a/internal/server/server.go b/internal/server/server.go index c098533..fe240db 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -67,7 +67,6 @@ func (s *Server) RegisterRoutes() { s.mux.HandleFunc("/favicon.ico", s.HandleFavicon) s.mux.HandleFunc("POST /setting/", s.HandleSetting) s.mux.HandleFunc("GET /setting/set/{setting}/{value}", s.HandleSettingSet) - } func (s *Server) StartTLS(port int, certFile, keyFile string) error { @@ -90,23 +89,25 @@ func (s *Server) Start(port int) error { return server.ListenAndServe() } -func (s *Server) RegisterUpdateMangas(interval time.Duration) { - for { - select { - case <-time.After(interval): - var all []*database.Manga - s.DbMgr.Db.Find(&all) - for _, m := range all { - err, updated := s.UpdateLatestAvailableChapter(m) - if err != nil { - fmt.Println(err) - } - if updated { - s.DbMgr.Db.Save(m) +func (s *Server) RegisterUpdater(interval time.Duration) { + go func(s *Server) { + for { + select { + case <-time.After(interval): + var all []*database.Manga + s.DbMgr.Db.Find(&all) + for _, m := range all { + err, updated := s.UpdateLatestAvailableChapter(m) + if err != nil { + fmt.Println(err) + } + if updated { + s.DbMgr.Db.Save(m) + } } } } - } + }(s) } func (s *Server) LoadNext() { diff --git a/main.go b/main.go index 742e5dd..d2206b9 100644 --- a/main.go +++ b/main.go @@ -25,6 +25,7 @@ var ( databaseFlag = flag.String("database", "", "Path to sqlite.db file") certFlag = flag.String("cert", "", "Path to cert file, has to be used in conjunction with key") keyFlag = flag.String("key", "", "Path to key file, has to be used in conjunction with cert") + updateIntervalFlag = flag.String("update", "1h", "Interval to update Mangas") ) func main() { @@ -84,7 +85,13 @@ func main() { }() } + interval, err := time.ParseDuration(*updateIntervalFlag) + if err != nil { + panic(err) + } + s.RegisterUpdater(interval) s.RegisterRoutes() + if *certFlag != "" && *keyFlag != "" { err = s.StartTLS(*portFlag, *certFlag, *keyFlag) if err != nil {