diff options
| author | Physcik <mynameisgennadiy@vk.com> | 2025-12-20 00:49:32 +0500 |
|---|---|---|
| committer | Physcik <mynameisgennadiy@vk.com> | 2025-12-20 00:49:32 +0500 |
| commit | a331cb6182e9108b78023320431e47518fef21e7 (patch) | |
| tree | 60627208dd803e099a5515371578292d635b7cb5 /\ | |
| parent | 98689a9ea44266599fee4c19f55b0f7dc559ac3b (diff) | |
Monitoring
Diffstat (limited to '\')
| -rw-r--r-- | \ | 66 |
1 files changed, 66 insertions, 0 deletions
@@ -0,0 +1,66 @@ +package main + +import ( + "fmt" + "io" + "log" + "net/http" + "net/url" + "os" + "os/signal" + "syscall" + + endpoints "physick.ru/culture_exam/Endpoints" + settings "physick.ru/culture_exam/Settings" +) + +const tgBase = "https://api.telegram.org/bot8248946057:AAHpKUlQ7V-N5hBj7rogwF0hJazL6Mq8bzc/sendMessage?chat_id=-5042695760&text=%v" + +func main() { + settings.ReadSettings() + endpoints.RegisterEndpoints() + http.Handle("/", http.FileServer(http.FS(os.DirFS("./static")))) + var _, _ = endpoints.GetAvaliableSongs() + fmt.Println(settings.Current) + + sendNotification("Culture exam server started") + + ch := make(chan os.Signal, 3) + signal.Notify(ch, os.Interrupt, syscall.SIGTERM, syscall.SIGINT) + go func() { + _ <- ch + sendNotification("Culture exam server stopped") + os.Exit(0) + }() + + var err = http.ListenAndServe(":6969", nil) + if err != nil { + log.Println(err.Error()) + sendNotification(fmt.Sprintf("Culture exam crashed: %v", err.Error())) + } +} + +func sendNotification(message string) { + var httpClient = http.Client{} + var req, reqerr = http.NewRequest("GET", fmt.Sprintf(tgBase, url.PathEscape(message)), nil) + if reqerr != nil { + log.Printf("Failed to generate a tg request: %v", reqerr.Error()) + return + } + var resp, err = httpClient.Do(req) + if err != nil { + log.Printf("Failed to execute a tg request: %v", err.Error()) + return + } + var body = parseResponceBody(resp) + log.Printf(string(body)) +} + +func parseResponceBody(r *http.Response) []byte { + var buf, err = io.ReadAll(r.Body) + if err != nil { + return []byte{} + } + return buf +} + |
