commit d7f36ec558dacd2476bcb402d867124971f5c12b
parent ea9c4dac9ad8768e809110133ccfc9223edbfed4
Author: MTRNord <mtrnord1@gmail.com>
Date: Wed, 10 May 2023 16:48:54 +0200
Reduce avatar sizes downloaded
Diffstat:
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/app/sdk/client.ts b/src/app/sdk/client.ts
@@ -119,8 +119,11 @@ export class MatrixClient extends EventEmitter {
this.sync.on("rooms", (rooms) => this.onSyncRooms(rooms));
}
- public convertMXC(url: string): string {
- return `${this.user.hostname}/_matrix/media/r0/download/${url.substring(6)}`;
+ public convertMXC(url: string, size?: number): string {
+ if (size) {
+ return `${this.user.hostname}/_matrix/media/v3/thumbnail/${url.substring(6)}?width=${size}&height=${size}&method=scale`;
+ }
+ return `${this.user.hostname}/_matrix/media/v3/download/${url.substring(6)}`;
}
public setCurrentRoom(roomID?: string) {
diff --git a/src/app/sdk/room.ts b/src/app/sdk/room.ts
@@ -220,14 +220,14 @@ export class Room extends EventEmitter {
return name;
}
- public getMemberAvatar(userID: string): string | undefined {
+ public getMemberAvatar(userID: string, size: number = 32): string | undefined {
let avatarURL: string | undefined = undefined;
this.stateEvents.forEach((event) => {
if (event.type === "m.room.member") {
if (event.state_key === userID && event.content.membership == "join") {
const rawAvatarURL = event.content.avatar_url;
if (rawAvatarURL?.startsWith("mxc://")) {
- avatarURL = this.client.convertMXC(rawAvatarURL);
+ avatarURL = this.client.convertMXC(rawAvatarURL, size);
}
}
}