commit bc4e4723bdc92d3c3b9ec6e3fe208c10f1dd654f
parent 61d5aac9a0915c7a94739485d268dba11c92eb97
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 24 May 2023 18:47:22 -0700
debug view
Diffstat:
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -4926,6 +4926,17 @@ func (m *UsersStreamsManager) Remove(userID database.UserID) {
m.m[userID]--
}
+func (m *UsersStreamsManager) GetUsers() (out []database.UserID) {
+ m.Lock()
+ defer m.Unlock()
+ for userID, count := range m.m {
+ if count > 0 {
+ out = append(out, userID)
+ }
+ }
+ return
+}
+
var usersStreamsManager = NewUsersStreamsManager()
func closeSignalChan(c echo.Context) <-chan struct{} {
@@ -4944,6 +4955,17 @@ func closeSignalChan(c echo.Context) <-chan struct{} {
return ctx.Done()
}
+func StreamUsersHandler(c echo.Context) error {
+ db := c.Get("database").(*database.DkfDB)
+ usersIDs := usersStreamsManager.GetUsers()
+ users, _ := db.GetUsersByID(usersIDs)
+ out := ""
+ for _, user := range users {
+ out += user.Username + ", "
+ }
+ return c.String(http.StatusOK, out)
+}
+
func ChatStreamMessagesHandler(c echo.Context) error {
db := c.Get("database").(*database.DkfDB)
authUser := c.Get("authUser").(*database.User)
diff --git a/pkg/web/web.go b/pkg/web/web.go
@@ -266,6 +266,7 @@ func getMainServer(db *database.DkfDB, i18nBundle *i18n.Bundle, renderer *tmp.Te
adminGroup.POST("/admin/gists/new", handlers.AdminNewGistHandler)
adminGroup.GET("/admin/gists/:gistUUID/edit", handlers.AdminEditGistHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 2))
adminGroup.POST("/admin/gists/:gistUUID/edit", handlers.AdminEditGistHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 2))
+ adminGroup.GET("/admin/stream-users", handlers.StreamUsersHandler)
clubGroup := authGroup.Group("", middlewares.ClubMiddleware)
clubGroup.GET("/club", handlers.ClubHandler)
clubGroup.GET("/club/threads/:threadID", handlers.ClubThreadHandler)