Added TLS
This commit is contained in:
@@ -52,7 +52,7 @@ func New(provider provider.Provider, db *database.Manager, mux *http.ServeMux, s
|
||||
return &s
|
||||
}
|
||||
|
||||
func (s *Server) Start(port int) error {
|
||||
func (s *Server) RegisterRoutes() {
|
||||
s.mux.HandleFunc("GET /login", s.HandleLogin)
|
||||
s.mux.HandleFunc("POST /login", s.HandleLoginPost)
|
||||
s.mux.HandleFunc("/", s.HandleMenu)
|
||||
@@ -68,40 +68,19 @@ func (s *Server) Start(port int) error {
|
||||
s.mux.HandleFunc("POST /setting/", s.HandleSetting)
|
||||
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() {
|
||||
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)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
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)
|
||||
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{
|
||||
@@ -111,6 +90,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) LoadNext() {
|
||||
c, err := s.Provider.GetHtml(s.CurrSubUrl)
|
||||
if err != nil {
|
||||
|
||||
10
main.go
10
main.go
@@ -23,6 +23,8 @@ var (
|
||||
portFlag = flag.Int("port", 80, "The port on which to host")
|
||||
serverFlag = flag.Bool("server", false, "If false dont open Browser with Address")
|
||||
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() {
|
||||
@@ -82,10 +84,18 @@ func main() {
|
||||
}()
|
||||
}
|
||||
|
||||
s.RegisterRoutes()
|
||||
if *certFlag != "" && *keyFlag != "" {
|
||||
err = s.StartTLS(*portFlag, *certFlag, *keyFlag)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
} else {
|
||||
err = s.Start(*portFlag)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func open(url string) error {
|
||||
|
||||
Reference in New Issue
Block a user