diff --git a/.env.example b/.env.example index 1a514a9..da8f2c2 100644 --- a/.env.example +++ b/.env.example @@ -8,12 +8,6 @@ LASTFM_USERNAME="axolotlmaid" # API key for last.fm LASTFM_API_KEY="API_KEY_GOES_HERE" -# Toggle to enable Uptime Kuma -UPTIME_KUMA_ENABLED=false -# URL for Uptime Kuma -UPTIME_KUMA_URL="http://localhost:3001/metrics" -# API key for Uptime Kuma -UPTIME_KUMA_API_KEY="API_KEY_GOES_HERE" # The password for the computer WebSocket WEBSOCKET_PASSWORD="PASSWORD_GOES_HERE" \ No newline at end of file diff --git a/internal/handler/status.go b/internal/handler/status.go deleted file mode 100644 index e2b66b2..0000000 --- a/internal/handler/status.go +++ /dev/null @@ -1,12 +0,0 @@ -package handler - -import ( - "backend/internal/worker" - "encoding/json" - "net/http" -) - -func HandleGetStatus(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json") - json.NewEncoder(w).Encode(worker.StatusData) -} diff --git a/internal/model/status.go b/internal/model/status.go deleted file mode 100644 index 43931bd..0000000 --- a/internal/model/status.go +++ /dev/null @@ -1,8 +0,0 @@ -package model - -type StatusData struct { - Success bool `json:"success"` - Website uint8 `json:"website"` - Api uint8 `json:"api"` - Files uint8 `json:"files"` -} diff --git a/internal/server/router.go b/internal/server/router.go index 16b2a9f..f2113fe 100644 --- a/internal/server/router.go +++ b/internal/server/router.go @@ -50,7 +50,6 @@ func NewRouter() { r.With(httprate.LimitByRealIP(1, time.Hour)).Patch("/visit-counter", handler.HandlePatchVisitCounter) r.Get("/currently-playing", handler.HandleGetCurrentlyPlaying) - r.Get("/status", handler.HandleGetStatus) r.Get("/computer", handler.HandleComputerGraphData) r.Get("/ws/computer", handler.HandleComputerWebSocket) diff --git a/internal/service/status.go b/internal/service/status.go deleted file mode 100644 index e46d573..0000000 --- a/internal/service/status.go +++ /dev/null @@ -1,72 +0,0 @@ -package service - -import ( - "backend/internal/model" - "bufio" - "log/slog" - "net/http" - "os" - "regexp" - "strconv" - "strings" -) - -func GetStatuses() model.StatusData { - data := model.StatusData{ - Success: false, - Website: 0, - Api: 0, - Files: 0, - } - - req, err := http.NewRequest("GET", os.Getenv("UPTIME_KUMA_URL"), nil) - if err != nil { - slog.Error("Error creating request for Uptime Kuma", slog.Any("error", err)) - return data - } - req.SetBasicAuth("", os.Getenv("UPTIME_KUMA_API_KEY")) - - client := &http.Client{} - res, err := client.Do(req) - if err != nil { - slog.Error("Error sending request for Uptime Kuma", slog.Any("error", err)) - return data - } - defer res.Body.Close() - - regex := regexp.MustCompile(`monitor_name="([^"]+)"[^}]*} (\d+)`) - statusMap := map[string]*uint8{ - "website": &data.Website, - "api": &data.Api, - "files": &data.Files, - } - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - line := scanner.Text() - - if strings.HasPrefix(line, "monitor_status{") { - matches := regex.FindStringSubmatch(line) - monitorName := matches[1] - status := matches[2] - - statusCode, err := strconv.Atoi(status) - if err != nil { - slog.Error("Error parsing bool for Uptime Kuma", slog.Any("error", err)) - statusCode = 0 - } - - if field, exists := statusMap[monitorName]; exists { - *field = uint8(statusCode) - } - } - } - - if err := scanner.Err(); err != nil { - slog.Error("Error reading metrics for Uptime Kuma", slog.Any("error", err)) - return data - } - - data.Success = true - return data -} diff --git a/internal/worker/status.go b/internal/worker/status.go deleted file mode 100644 index ed51e82..0000000 --- a/internal/worker/status.go +++ /dev/null @@ -1,20 +0,0 @@ -package worker - -import ( - "backend/internal/model" - "backend/internal/service" - "log/slog" - "time" -) - -var StatusData model.StatusData - -func StartStatusWorker() { - slog.Info("Starting status worker...") - StatusData = service.GetStatuses() - - for range time.Tick(5 * time.Minute) { - slog.Info("Requesting Uptime Kuma...") - StatusData = service.GetStatuses() - } -} diff --git a/internal/worker/worker.go b/internal/worker/worker.go index 9908221..fd1310b 100644 --- a/internal/worker/worker.go +++ b/internal/worker/worker.go @@ -1,11 +1,6 @@ package worker -import "os" - func StartWorkers() { go StartLastFMWorker() go StartComputerWorker() - if os.Getenv("UPTIME_KUMA_ENABLED") == "true" { - go StartStatusWorker() - } }