kopia lustrzana https://codeberg.org/nmkj/audon
fix host avatar restore
rodzic
3ad0378bd2
commit
8dc11e7f84
|
@ -30,7 +30,7 @@ export const useMastodonStore = defineStore("mastodon", {
|
||||||
return `${url.origin}/u/@${this.oauth.audon.webfinger}`;
|
return `${url.origin}/u/@${this.oauth.audon.webfinger}`;
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
async fetchToken() {
|
async fetchToken() {
|
||||||
|
@ -56,7 +56,11 @@ export const useMastodonStore = defineStore("mastodon", {
|
||||||
async revertAvatar() {
|
async revertAvatar() {
|
||||||
const token = await axios.get("/api/token");
|
const token = await axios.get("/api/token");
|
||||||
const rooms = await axios.get("/api/room");
|
const rooms = await axios.get("/api/room");
|
||||||
if (token.data.audon.avatar && rooms.data.length < 1) {
|
if (
|
||||||
|
token.data.audon.avatar &&
|
||||||
|
(rooms.data.length === 0 ||
|
||||||
|
(rooms.data.length === 1 && rooms.data[0].role === "host"))
|
||||||
|
) {
|
||||||
if (this.avatar) {
|
if (this.avatar) {
|
||||||
await this.updateAvatar(this.avatar, token.data.audon.avatar);
|
await this.updateAvatar(this.avatar, token.data.audon.avatar);
|
||||||
}
|
}
|
||||||
|
|
14
room.go
14
room.go
|
@ -257,14 +257,6 @@ func joinRoomHandler(c echo.Context) (err error) {
|
||||||
return ErrAlreadyEnded
|
return ErrAlreadyEnded
|
||||||
}
|
}
|
||||||
|
|
||||||
lkRoom, _ := getRoomInLivekit(c.Request().Context(), room.RoomID) // lkRoom will be nil if it doesn't exist
|
|
||||||
if lkRoom == nil {
|
|
||||||
return ErrRoomNotFound
|
|
||||||
}
|
|
||||||
|
|
||||||
roomMetadata, _ := getRoomMetadataFromLivekitRoom(lkRoom)
|
|
||||||
room = roomMetadata.Room
|
|
||||||
|
|
||||||
canTalk := room.IsHost(user) || room.IsCoHost(user) // host and cohost can talk from the beginning
|
canTalk := room.IsHost(user) || room.IsCoHost(user) // host and cohost can talk from the beginning
|
||||||
|
|
||||||
// check room restriction
|
// check room restriction
|
||||||
|
@ -302,6 +294,12 @@ func joinRoomHandler(c echo.Context) (err error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lkRoom, _ := getRoomInLivekit(c.Request().Context(), room.RoomID) // lkRoom will be nil if it doesn't exist
|
||||||
|
if lkRoom == nil {
|
||||||
|
return ErrRoomNotFound
|
||||||
|
}
|
||||||
|
roomMetadata, _ := getRoomMetadataFromLivekitRoom(lkRoom)
|
||||||
|
|
||||||
// return 403 if one has been kicked
|
// return 403 if one has been kicked
|
||||||
for _, kicked := range roomMetadata.Kicked {
|
for _, kicked := range roomMetadata.Kicked {
|
||||||
if kicked.Equal(user) {
|
if kicked.Equal(user) {
|
||||||
|
|
|
@ -90,11 +90,6 @@ func (a *AudonUser) GetCurrentLivekitRooms(ctx context.Context) ([]*livekit.Room
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// check host
|
|
||||||
room, _ := getRoomMetadataFromLivekitRoom(r)
|
|
||||||
if room.IsHost(a) {
|
|
||||||
current = append(current, r)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return current, nil
|
return current, nil
|
||||||
}
|
}
|
||||||
|
|
27
user.go
27
user.go
|
@ -8,6 +8,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
|
"github.com/livekit/protocol/livekit"
|
||||||
mastodon "github.com/mattn/go-mastodon"
|
mastodon "github.com/mattn/go-mastodon"
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
"go.mongodb.org/mongo-driver/mongo/options"
|
"go.mongodb.org/mongo-driver/mongo/options"
|
||||||
|
@ -155,8 +156,9 @@ func (a *AudonUser) GetCurrentRoomStatus(ctx context.Context) ([]UserStatus, err
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
roomList := make([]UserStatus, len(rooms))
|
roomList := make([]UserStatus, len(rooms))
|
||||||
for i, r := range rooms {
|
for _, r := range rooms {
|
||||||
meta, _ := getRoomMetadataFromLivekitRoom(r)
|
meta, _ := getRoomMetadataFromLivekitRoom(r)
|
||||||
role := "listener"
|
role := "listener"
|
||||||
if meta.Room.IsHost(a) {
|
if meta.Room.IsHost(a) {
|
||||||
|
@ -166,10 +168,31 @@ func (a *AudonUser) GetCurrentRoomStatus(ctx context.Context) ([]UserStatus, err
|
||||||
} else if meta.IsSpeaker(a) {
|
} else if meta.IsSpeaker(a) {
|
||||||
role = "speaker"
|
role = "speaker"
|
||||||
}
|
}
|
||||||
roomList[i] = UserStatus{
|
roomList = append(roomList, UserStatus{
|
||||||
RoomID: r.GetName(),
|
RoomID: r.GetName(),
|
||||||
Role: role,
|
Role: role,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, s := range roomList {
|
||||||
|
if s.Role == "host" {
|
||||||
|
return roomList, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
allRooms, err := lkRoomServiceClient.ListRooms(ctx, &livekit.ListRoomsRequest{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, r := range allRooms.GetRooms() {
|
||||||
|
meta, _ := getRoomMetadataFromLivekitRoom(r)
|
||||||
|
if meta.IsHost(a) {
|
||||||
|
roomList = append(roomList, UserStatus{
|
||||||
|
RoomID: r.GetName(),
|
||||||
|
Role: "host",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return roomList, nil
|
return roomList, nil
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue