kopia lustrzana https://codeberg.org/nmkj/audon
fix avatar issue again
rodzic
26ec5e7086
commit
ea2a771349
|
@ -88,10 +88,10 @@ export default {
|
|||
methods: {
|
||||
async joining(indicator) {
|
||||
try {
|
||||
this.donStore.avatar = this.roomToken.original;
|
||||
await this.roomClient.startAudio();
|
||||
if (indicator && this.uploadEnabled) {
|
||||
this.uploading = true;
|
||||
this.donStore.avatar = this.roomToken.original;
|
||||
try {
|
||||
await this.donStore.updateAvatar(this.roomToken.indicator);
|
||||
} finally {
|
||||
|
|
|
@ -79,3 +79,4 @@ closeRoomConfirm: "Are you sure you want to close this room?"
|
|||
roomEvent:
|
||||
closedByHost: "Host has closed this room."
|
||||
removed: "You have been requested to leave."
|
||||
disconnected: "Disconnected from this room."
|
||||
|
|
|
@ -78,4 +78,5 @@ microphoneBlocked: "マイクが禁止されています。ブラウザやデバ
|
|||
closeRoomConfirm: "この部屋を閉じますか?"
|
||||
roomEvent:
|
||||
closedByHost: "ホストにより部屋が閉じられました。"
|
||||
removed: "部屋から退去しました。"
|
||||
removed: "リクエストにより部屋から退去しました。"
|
||||
disconneced: "切断されました。"
|
||||
|
|
|
@ -48,10 +48,12 @@ export const useMastodonStore = defineStore("mastodon", {
|
|||
},
|
||||
async revertAvatar() {
|
||||
const token = await axios.get("/api/token");
|
||||
if (this.avatar && token.data.audon.avatar) {
|
||||
await this.updateAvatar(this.avatar, token.data.audon.avatar);
|
||||
};
|
||||
await axios.delete("/api/room");
|
||||
if (token.data.audon.avatar) {
|
||||
if (this.avatar) {
|
||||
await this.updateAvatar(this.avatar, token.data.audon.avatar);
|
||||
}
|
||||
await axios.delete("/api/room");
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
@ -300,6 +300,14 @@ export default {
|
|||
.on(RoomEvent.Disconnected, async (reason) => {
|
||||
// TODO: change this from alert to a vuetify thing
|
||||
self.noSleep.disable();
|
||||
self.closeLoading = true;
|
||||
try {
|
||||
await self.donStore.revertAvatar();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
} finally {
|
||||
self.closeLoading = false;
|
||||
}
|
||||
if (reason === DisconnectReason.PARTICIPANT_REMOVED) {
|
||||
alert(self.$t("roomEvent.removed"));
|
||||
self.$router.push({ name: "home" });
|
||||
|
@ -307,32 +315,12 @@ export default {
|
|||
let message = "";
|
||||
switch (reason) {
|
||||
case DisconnectReason.ROOM_DELETED:
|
||||
if (self.iamHost || self.iamCohost) {
|
||||
self.closeLoading = true;
|
||||
try {
|
||||
await self.donStore.revertAvatar();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
} finally {
|
||||
self.closeLoading = false;
|
||||
}
|
||||
}
|
||||
message = self.$t("roomEvent.closedByHost");
|
||||
break;
|
||||
case DisconnectReason.CLIENT_INITIATED:
|
||||
if (self.iamCohost) {
|
||||
self.closeLoading = true;
|
||||
try {
|
||||
await self.donStore.revertAvatar();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
} finally {
|
||||
self.closeLoading = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
message = "Disconnected due to unknown reasons";
|
||||
message = self.$t("roomEvent.disconnected");
|
||||
}
|
||||
if (message !== "") {
|
||||
alert(message);
|
||||
|
@ -625,13 +613,11 @@ export default {
|
|||
async onRoomClose() {
|
||||
// TODO: change this from confirm to a vuetify thing
|
||||
if (confirm(this.$t("closeRoomConfirm"))) {
|
||||
this.loading = true;
|
||||
this.closeLoading = true;
|
||||
try {
|
||||
await axios.delete(`/api/room/${this.roomID}`);
|
||||
} catch (error) {
|
||||
alert(error);
|
||||
} finally {
|
||||
this.loading = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
10
avatar.go
10
avatar.go
|
@ -33,7 +33,6 @@ func (u *AudonUser) GetIndicator(ctx context.Context, fnew []byte) ([]byte, erro
|
|||
}
|
||||
|
||||
hash := sha256.Sum256(fnew)
|
||||
isAvatarNew := false
|
||||
|
||||
var err error
|
||||
|
||||
|
@ -47,7 +46,6 @@ func (u *AudonUser) GetIndicator(ctx context.Context, fnew []byte) ([]byte, erro
|
|||
if err := os.WriteFile(saved, fnew, 0664); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
isAvatarNew = true
|
||||
}
|
||||
|
||||
fname := filepath.Base(saved)
|
||||
|
@ -60,13 +58,7 @@ func (u *AudonUser) GetIndicator(ctx context.Context, fnew []byte) ([]byte, erro
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if !isAvatarNew {
|
||||
if data, err := os.ReadFile(u.GetOriginalAvatarPath(hash, mtype)); err == nil {
|
||||
return data, nil
|
||||
}
|
||||
}
|
||||
|
||||
buf := bytes.NewBuffer(fnew)
|
||||
buf := bytes.NewReader(fnew)
|
||||
|
||||
var newImg image.Image
|
||||
if mtype.Is("image/png") {
|
||||
|
|
9
room.go
9
room.go
|
@ -234,15 +234,6 @@ func joinRoomHandler(c echo.Context) (err error) {
|
|||
return ErrRoomNotFound
|
||||
}
|
||||
|
||||
// remove old connection if user is already in the room
|
||||
if room.IsUserInLivekitRoom(c.Request().Context(), user.AudonID) {
|
||||
lkRoomServiceClient.RemoveParticipant(c.Request().Context(), &livekit.RoomParticipantIdentity{
|
||||
Room: room.RoomID,
|
||||
Identity: user.AudonID,
|
||||
})
|
||||
// return echo.NewHTTPError(http.StatusNotAcceptable, "already_in_room")
|
||||
}
|
||||
|
||||
now := time.Now().UTC()
|
||||
|
||||
// check if room is not yet started
|
||||
|
|
|
@ -98,7 +98,6 @@ func livekitWebhookHandler(c echo.Context) error {
|
|||
}
|
||||
}()
|
||||
}
|
||||
return c.NoContent(http.StatusOK)
|
||||
} else if event.GetEvent() == webhook.EventRoomStarted {
|
||||
// Have the bot advertise the room
|
||||
room, err := findRoomByID(c.Request().Context(), event.GetRoom().GetName())
|
||||
|
|
Ładowanie…
Reference in New Issue