45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"Embalming_Girl_Server/admin"
|
|
"Embalming_Girl_Server/db"
|
|
"Embalming_Girl_Server/handler"
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
func main() {
|
|
if err := db.Init(); err != nil {
|
|
log.Fatal("Database init failed:", err)
|
|
}
|
|
log.Println("Database initialized")
|
|
|
|
hub := handler.NewHub()
|
|
hub.InitTestRooms()
|
|
|
|
mux := http.NewServeMux()
|
|
mux.HandleFunc("/ws", hub.ServeWS)
|
|
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
|
w.Write([]byte("Embalming Girl Server v0.2.0"))
|
|
})
|
|
|
|
admin.Register(mux, func() map[string]interface{} {
|
|
var totalUsers int
|
|
db.DB.QueryRow("SELECT COUNT(*) FROM users").Scan(&totalUsers)
|
|
return map[string]interface{}{
|
|
"total_users": totalUsers,
|
|
"active_rooms": len(hub.RoomMgr.ListRooms()),
|
|
"online_clients": hub.OnlineCount(),
|
|
}
|
|
})
|
|
|
|
addr := ":8080"
|
|
log.Printf("Server started on %s", addr)
|
|
log.Printf("Admin panel: http://localhost%s/admin", addr)
|
|
log.Printf("Test rooms: TEST3, TEST4, TEST5, TEST6")
|
|
if err := http.ListenAndServe(addr, mux); err != nil {
|
|
log.Fatal("ListenAndServe:", err)
|
|
}
|
|
}
|