added twitch frontend components

This commit is contained in:
2025-08-28 14:40:04 +02:00
parent 2a11f64935
commit 22caf8899b
10 changed files with 302 additions and 5 deletions

View File

@@ -83,6 +83,13 @@ func (m *Monitor) GetMonitoredUsers() iter.Seq[string] {
return maps.Keys(m.monitored)
}
func (m *Monitor) DeleteUser(user string) {
m.mu.Lock()
defer m.mu.Unlock()
delete(m.monitored, user)
delete(m.lastState, user)
}
func DEFAULT_DOWNLOAD_HANDLER(db *internal.MemoryDB, mq *internal.MessageQueue) func(url string) error {
return func(url string) error {
p := &internal.Process{

View File

@@ -4,6 +4,8 @@ import (
"encoding/json"
"net/http"
"slices"
"github.com/go-chi/chi/v5"
)
type addUserReq struct {
@@ -32,7 +34,30 @@ func GetMonitoredUsers(m *Monitor) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
it := m.GetMonitoredUsers()
if err := json.NewEncoder(w).Encode(slices.Collect(it)); err != nil {
users := slices.Collect(it)
if users == nil {
users = make([]string, 0)
}
if err := json.NewEncoder(w).Encode(users); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
}
func DeleteUser(m *Monitor) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
user := chi.URLParam(r, "user")
if user == "" {
http.Error(w, "empty user", http.StatusBadRequest)
return
}
m.DeleteUser(user)
if err := json.NewEncoder(w).Encode("ok"); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}