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)) }