Skip to content

Commit a98d239

Browse files
committed
fix(federation): uploads not working properly
1 parent 37c5bf7 commit a98d239

File tree

4 files changed

+19
-4
lines changed

4 files changed

+19
-4
lines changed

ee/packages/federation-matrix/src/FederationMatrix.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS
428428
let lastEventId: { eventId: string } | null = null;
429429

430430
for await (const file of message.files) {
431-
const mxcUri = await MatrixMediaService.prepareLocalFileForMatrix(file._id, matrixDomain);
431+
const mxcUri = await MatrixMediaService.prepareLocalFileForMatrix(file._id, matrixDomain, matrixRoomId);
432432

433433
const msgtype = this.getMatrixMessageType(file.type);
434434
const fileContent = {

ee/packages/federation-matrix/src/events/message.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ async function handleMediaMessage(
2929
messageBody: string,
3030
user: IUser,
3131
room: IRoom,
32+
matrixRoomId: string,
3233
eventId: EventID,
3334
tmid?: string,
3435
): Promise<{
@@ -42,7 +43,7 @@ async function handleMediaMessage(
4243
const mimeType = fileInfo?.mimetype;
4344
const fileName = messageBody;
4445

45-
const fileRefId = await MatrixMediaService.downloadAndStoreRemoteFile(url, {
46+
const fileRefId = await MatrixMediaService.downloadAndStoreRemoteFile(url, matrixRoomId, {
4647
name: messageBody,
4748
size: fileInfo?.size,
4849
type: mimeType,
@@ -226,7 +227,17 @@ export function message(emitter: Emitter<HomeserverEventSignatures>, serverName:
226227

227228
const isMediaMessage = Object.values(fileTypes).includes(msgtype as FileMessageType);
228229
if (isMediaMessage && content.url) {
229-
const result = await handleMediaMessage(content.url, content.info, msgtype, messageBody, user, room, data.event_id, thread?.tmid);
230+
const result = await handleMediaMessage(
231+
content.url,
232+
content.info,
233+
msgtype,
234+
messageBody,
235+
user,
236+
room,
237+
data.room_id,
238+
data.event_id,
239+
thread?.tmid,
240+
);
230241
await Message.saveMessageFromFederation(result);
231242
} else {
232243
const formatted = toInternalMessageFormat({

ee/packages/federation-matrix/src/services/MatrixMediaService.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export class MatrixMediaService {
3838
};
3939
}
4040

41-
static async prepareLocalFileForMatrix(fileId: string, serverName: string): Promise<string> {
41+
static async prepareLocalFileForMatrix(fileId: string, serverName: string, matrixRoomId: string): Promise<string> {
4242
try {
4343
const file = await Uploads.findOneById(fileId);
4444
if (!file) {
@@ -53,6 +53,7 @@ export class MatrixMediaService {
5353
const mxcUri = this.generateMXCUri(fileId, serverName);
5454

5555
await Uploads.setFederationInfo(fileId, {
56+
mrid: matrixRoomId,
5657
mxcUri,
5758
serverName,
5859
mediaId: fileId,
@@ -86,6 +87,7 @@ export class MatrixMediaService {
8687

8788
static async downloadAndStoreRemoteFile(
8889
mxcUri: string,
90+
matrixRoomId: string,
8991
metadata: {
9092
name: string;
9193
size?: number;
@@ -131,6 +133,7 @@ export class MatrixMediaService {
131133

132134
await Uploads.setFederationInfo(uploadedFile._id, {
133135
mxcUri,
136+
mrid: matrixRoomId,
134137
serverName: parts.serverName,
135138
mediaId: parts.mediaId,
136139
});

packages/core-typings/src/IUpload.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export interface IUpload {
6161
};
6262
federation?: {
6363
mxcUri: string;
64+
mrid: string;
6465
serverName: string;
6566
mediaId: string;
6667
};

0 commit comments

Comments
 (0)