From 85979a7ebf883f663ecb2782a9ed262ea417629e Mon Sep 17 00:00:00 2001 From: Namekuji Date: Fri, 26 May 2023 10:32:52 -0400 Subject: [PATCH] remove avatar restore --- go.mod | 4 ++-- webhooks.go | 54 +++++++---------------------------------------------- 2 files changed, 9 insertions(+), 49 deletions(-) diff --git a/go.mod b/go.mod index 81b540c..0ca625b 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,12 @@ module audon go 1.19 require ( + github.com/gabriel-vasile/mimetype v1.4.1 github.com/go-playground/validator/v10 v10.11.1 github.com/go-redis/redis/v9 v9.0.0-rc.2 github.com/gorilla/sessions v1.2.1 github.com/jaevor/go-nanoid v1.3.0 + github.com/jellydator/ttlcache/v3 v3.0.1 github.com/joho/godotenv v1.4.0 github.com/labstack/echo-contrib v0.13.0 github.com/labstack/echo/v4 v4.9.1 @@ -33,7 +35,6 @@ require ( github.com/eapache/channels v1.1.0 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/frostbyte73/go-throttle v0.0.0-20210621200530-8018c891361d // indirect - github.com/gabriel-vasile/mimetype v1.4.1 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.2.3 // indirect @@ -47,7 +48,6 @@ require ( github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/jellydator/ttlcache/v3 v3.0.1 // indirect github.com/jxskiss/base62 v1.1.0 // indirect github.com/klauspost/compress v1.13.6 // indirect github.com/labstack/gommon v0.4.0 // indirect diff --git a/webhooks.go b/webhooks.go index cd53198..930ab6b 100644 --- a/webhooks.go +++ b/webhooks.go @@ -1,19 +1,18 @@ package main import ( + "context" "fmt" "log" "net/http" "strings" "time" - "github.com/jellydator/ttlcache/v3" "github.com/labstack/echo/v4" "github.com/livekit/protocol/auth" "github.com/livekit/protocol/webhook" mastodon "github.com/mattn/go-mastodon" "github.com/nicksnyder/go-i18n/v2/i18n" - "golang.org/x/net/context" ) func livekitWebhookHandler(c echo.Context) error { @@ -38,7 +37,6 @@ func livekitWebhookHandler(c echo.Context) error { } } } else if event.GetEvent() == webhook.EventParticipantLeft { - // Revert user's avatar audonID := event.GetParticipant().GetIdentity() user, err := findUserByID(c.Request().Context(), audonID) if user == nil || err != nil { @@ -51,51 +49,13 @@ func livekitWebhookHandler(c echo.Context) error { if data == nil { return echo.NewHTTPError(http.StatusGone) } - mastoClient := getMastodonClient(data.Value()) - if mastoClient == nil { - c.Logger().Errorf("unable to get mastodon client: %v", data.Value().MastodonConfig) - return echo.NewHTTPError(http.StatusInternalServerError) + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + nextUser, err := findUserByID(ctx, audonID) + if err != nil { + log.Println(err) } - cached := webhookTimerCache.Get(audonID) - if cached != nil { - oldTimer := cached.Value() - if !oldTimer.Stop() { - <-oldTimer.C - } - } - countdown := time.NewTimer(60 * time.Second) - webhookTimerCache.Set(audonID, countdown, ttlcache.DefaultTTL) - - go func() { - <-countdown.C - webhookTimerCache.Delete(audonID) - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) - defer cancel() - - stillAgain, err := user.InLivekit(ctx) - if err != nil { - log.Println(err) - } - if stillAgain { - return - } - nextUser, err := findUserByID(ctx, audonID) - if err == nil && nextUser.AvatarFile != "" { - log.Printf("Recovering avatar: %s --> (%s) %s\n", nextUser.AvatarFile, audonID, nextUser.Webfinger) - if err != nil { - log.Println(err) - return - } - avatar := nextUser.getAvatarImagePath(nextUser.AvatarFile) - _, err = updateAvatar(ctx, mastoClient, avatar) - if err != nil { - log.Println(err) - } - nextUser.ClearUserAvatar(ctx) - } else if err != nil { - log.Println(err) - } - }() + nextUser.ClearUserAvatar(ctx) } } else if event.GetEvent() == webhook.EventRoomStarted { // Have the bot advertise the room