Added TLS

This commit is contained in:
Pablu23
2024-05-30 19:36:33 +02:00
parent a2232026a0
commit 11857a7156
2 changed files with 42 additions and 34 deletions

View File

@@ -52,9 +52,9 @@ func New(provider provider.Provider, db *database.Manager, mux *http.ServeMux, s
return &s return &s
} }
func (s *Server) Start(port int) error { func (s *Server) RegisterRoutes() {
s.mux.HandleFunc("GET /login", s.HandleLogin) s.mux.HandleFunc("GET /login", s.HandleLogin)
s.mux.HandleFunc("POST /login", s.HandleLoginPost) s.mux.HandleFunc("POST /login", s.HandleLoginPost)
s.mux.HandleFunc("/", s.HandleMenu) s.mux.HandleFunc("/", s.HandleMenu)
s.mux.HandleFunc("/new/", s.HandleNewQuery) s.mux.HandleFunc("/new/", s.HandleNewQuery)
s.mux.HandleFunc("/new/title/{title}/{chapter}", s.HandleNew) s.mux.HandleFunc("/new/title/{title}/{chapter}", s.HandleNew)
@@ -68,9 +68,32 @@ func (s *Server) Start(port int) error {
s.mux.HandleFunc("POST /setting/", s.HandleSetting) s.mux.HandleFunc("POST /setting/", s.HandleSetting)
s.mux.HandleFunc("GET /setting/set/{setting}/{value}", s.HandleSettingSet) s.mux.HandleFunc("GET /setting/set/{setting}/{value}", s.HandleSettingSet)
// Update Latest Chapters every 5 Minutes }
go func(s *Server) {
time.AfterFunc(time.Second*10, func() { func (s *Server) StartTLS(port int, certFile, keyFile string) error {
fmt.Println("Server starting...")
server := http.Server{
Addr: fmt.Sprintf(":%d", port),
Handler: s.Auth(s.mux),
}
return server.ListenAndServeTLS(certFile, keyFile)
}
func (s *Server) Start(port int) error {
fmt.Println("Server starting...")
server := http.Server{
Addr: fmt.Sprintf(":%d", port),
Handler: s.Auth(s.mux),
}
return server.ListenAndServe()
}
func (s *Server) RegisterUpdateMangas(interval time.Duration) {
for {
select {
case <-time.After(interval):
var all []*database.Manga var all []*database.Manga
s.DbMgr.Db.Find(&all) s.DbMgr.Db.Find(&all)
for _, m := range all { for _, m := range all {
@@ -82,33 +105,8 @@ func (s *Server) Start(port int) error {
s.DbMgr.Db.Save(m) s.DbMgr.Db.Save(m)
} }
} }
})
for {
select {
case <-time.After(time.Minute * 5):
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)
fmt.Println("Server starting...")
server := http.Server{
Addr: fmt.Sprintf(":%d", port),
Handler: s.Auth(s.mux),
} }
return server.ListenAndServe()
} }
func (s *Server) LoadNext() { func (s *Server) LoadNext() {

16
main.go
View File

@@ -23,6 +23,8 @@ var (
portFlag = flag.Int("port", 80, "The port on which to host") portFlag = flag.Int("port", 80, "The port on which to host")
serverFlag = flag.Bool("server", false, "If false dont open Browser with Address") serverFlag = flag.Bool("server", false, "If false dont open Browser with Address")
databaseFlag = flag.String("database", "", "Path to sqlite.db file") 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")
) )
func main() { func main() {
@@ -82,9 +84,17 @@ func main() {
}() }()
} }
err = s.Start(*portFlag) s.RegisterRoutes()
if err != nil { if *certFlag != "" && *keyFlag != "" {
panic(err) err = s.StartTLS(*portFlag, *certFlag, *keyFlag)
if err != nil {
panic(err)
}
} else {
err = s.Start(*portFlag)
if err != nil {
panic(err)
}
} }
} }