remove avatar restore

main
Namekuji 2023-05-26 10:32:52 -04:00
rodzic 6f7b58f2e2
commit 85979a7ebf
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B541BD6E646CABC7
2 zmienionych plików z 9 dodań i 49 usunięć

4
go.mod
Wyświetl plik

@ -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

Wyświetl plik

@ -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