git init of winget repo statistics and manager
This commit is contained in:
110
main.go
Normal file
110
main.go
Normal file
@@ -0,0 +1,110 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
func readHtml(res http.ResponseWriter, req *http.Request) {
|
||||
g := template.CSS("./html/public/mod.css")
|
||||
f, err := template.ParseFiles("./html/wsb.html")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = f.Execute(res, g)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func simpRequestResp(res http.ResponseWriter, req *http.Request) {
|
||||
fmt.Fprint(res, "Hello, M'Lord", 153*4, " I'm here to serveè")
|
||||
}
|
||||
func getMsgFromDB(sqldb *sql.DB, id string, lang string) string {
|
||||
query := fmt.Sprintf("SELECT %s FROM msgs WHERE content=$1", lang)
|
||||
res := sqldb.QueryRow(query, id)
|
||||
lng := ""
|
||||
dt := res.Scan(&lng)
|
||||
if dt != nil {
|
||||
return ""
|
||||
}
|
||||
return lng
|
||||
}
|
||||
func getPkgIdFromDB(sqldb *sql.DB) []string {
|
||||
query, err := sqldb.Query("SELECT id FROM packs_all")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
var pkgs []string
|
||||
query.Scan(&pkgs)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
return pkgs
|
||||
}
|
||||
// func fullSearchDB(sqldb *sql.DB) []string {
|
||||
|
||||
// }
|
||||
func index(sqldb *sql.DB) http.Handler {
|
||||
return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
|
||||
b := elements{
|
||||
Title: getMsgFromDB(sqldb, "title", "heb"),
|
||||
Header: getMsgFromDB(sqldb, "header", "heb"),
|
||||
Help: getMsgFromDB(sqldb, "help", "heb"),
|
||||
Packagename: getMsgFromDB(sqldb, "packagename", "heb"),
|
||||
Packageversion: getMsgFromDB(sqldb, "packageversion", "heb"),
|
||||
Allow: getMsgFromDB(sqldb, "allow", "heb"),
|
||||
Warning: getMsgFromDB(sqldb, "warning", "heb"),
|
||||
Explain: getMsgFromDB(sqldb, "explain", "heb"),
|
||||
}
|
||||
templates, err := template.ParseFiles("html/master.html", "html/main.html")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = templates.ExecuteTemplate(res, "master", &b)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
res.WriteHeader(http.StatusOK)
|
||||
})
|
||||
|
||||
}
|
||||
func public() http.Handler {
|
||||
return http.StripPrefix("/public/", http.FileServer(http.Dir("./public")))
|
||||
}
|
||||
func main() {
|
||||
logfilename := "Logs/" + time.Now().Format("2006-01-02--15-04-05") + ".log"
|
||||
file, err := os.OpenFile(logfilename, os.O_APPEND|os.O_CREATE, 0777)
|
||||
if err != nil {
|
||||
os.Exit(12)
|
||||
}
|
||||
|
||||
log.SetOutput(file)
|
||||
db, err := sql.Open("sqlite", "file:progs.db")
|
||||
mux := http.NewServeMux()
|
||||
mux.Handle("/public/", public())
|
||||
mux.Handle("/", index(db))
|
||||
addr := fmt.Sprintf(":%s", "12312")
|
||||
server := http.Server{
|
||||
Addr: addr,
|
||||
Handler: mux,
|
||||
ReadTimeout: 15 * time.Second,
|
||||
WriteTimeout: 15 * time.Second,
|
||||
IdleTimeout: 15 * time.Second,
|
||||
}
|
||||
|
||||
if err := server.ListenAndServe(); err != nil {
|
||||
log.Fatalf("main: couldn't start simple server: %v\n", err)
|
||||
}
|
||||
lang := "heb"
|
||||
|
||||
log.Println(getMsgFromDB(db, "title", lang))
|
||||
}
|
Reference in New Issue
Block a user