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
|
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)
|
||||||
@@ -68,40 +68,19 @@ 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() {
|
|
||||||
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 {
|
func (s *Server) StartTLS(port int, certFile, keyFile string) error {
|
||||||
select {
|
fmt.Println("Server starting...")
|
||||||
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)
|
|
||||||
|
|
||||||
|
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...")
|
fmt.Println("Server starting...")
|
||||||
|
|
||||||
server := http.Server{
|
server := http.Server{
|
||||||
@@ -111,6 +90,25 @@ func (s *Server) Start(port int) error {
|
|||||||
return server.ListenAndServe()
|
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() {
|
func (s *Server) LoadNext() {
|
||||||
c, err := s.Provider.GetHtml(s.CurrSubUrl)
|
c, err := s.Provider.GetHtml(s.CurrSubUrl)
|
||||||
if err != nil {
|
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")
|
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,11 +84,19 @@ func main() {
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s.RegisterRoutes()
|
||||||
|
if *certFlag != "" && *keyFlag != "" {
|
||||||
|
err = s.StartTLS(*portFlag, *certFlag, *keyFlag)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
err = s.Start(*portFlag)
|
err = s.Start(*portFlag)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func open(url string) error {
|
func open(url string) error {
|
||||||
var cmd string
|
var cmd string
|
||||||
|
|||||||
Reference in New Issue
Block a user