63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package web
|
|
|
|
import (
|
|
"embed"
|
|
"io"
|
|
"log"
|
|
"net/http"
|
|
"text/template"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/vaporvee/acecore/custom"
|
|
)
|
|
|
|
// Embed the HTML file into the binary
|
|
//
|
|
//go:embed html/privacy.html
|
|
var privacyHTML embed.FS
|
|
|
|
//go:embed html/tos.html
|
|
var tosHTML embed.FS
|
|
|
|
func handleHTML(w http.ResponseWriter, embed embed.FS, path string) {
|
|
tmpl, err := template.ParseFS(embed, path)
|
|
if err != nil {
|
|
logrus.Error(err)
|
|
return
|
|
}
|
|
tmpl.Execute(w, nil)
|
|
}
|
|
|
|
func HostRoutes(botID string) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
logrus.Errorf("Recovered from panic: %v", r)
|
|
go HostRoutes(botID)
|
|
}
|
|
}()
|
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
|
http.Redirect(w, r, custom.Gh_url, http.StatusMovedPermanently)
|
|
})
|
|
http.HandleFunc("/invite", func(w http.ResponseWriter, r *http.Request) {
|
|
http.Redirect(w, r, "https://discord.com/oauth2/authorize?client_id="+botID, http.StatusMovedPermanently)
|
|
})
|
|
http.HandleFunc("/privacy", func(w http.ResponseWriter, r *http.Request) {
|
|
handleHTML(w, privacyHTML, "html/privacy.html")
|
|
})
|
|
http.HandleFunc("/tos", func(w http.ResponseWriter, r *http.Request) {
|
|
handleHTML(w, tosHTML, "html/tos.html")
|
|
})
|
|
|
|
var voidWriter io.Writer = io.Discard
|
|
|
|
server := &http.Server{
|
|
Addr: ":443",
|
|
Handler: nil,
|
|
ErrorLog: log.New(voidWriter, "", 0),
|
|
}
|
|
logrus.Info("Starting server for html routes on :443...")
|
|
if err := server.ListenAndServeTLS("./web/cert.pem", "./web/key.pem"); err != nil {
|
|
logrus.Warnf("Couldn't start server for html routes: %v\n", err)
|
|
}
|
|
}
|