Added TLS
This commit is contained in:
@@ -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
16
main.go
@@ -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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user