${event.sender.name[0]}
@@ -270,11 +339,11 @@ const getUserPic = async (event: MatrixEvent) => {
} else {
const imageUrl = mediaFromMxc(member.getMxcAvatarUrl()).getThumbnailOfSourceHttp(42, 42, "crop");
- if (!avatars.has(member.userId)) {
- avatars.set(member.userId, true);
+ if (!this.avatars.has(member.userId)) {
+ this.avatars.set(member.userId, true);
const image = await fetch(imageUrl);
const blob = await image.blob();
- zip.file(`users/${member.userId}`, blob);
+ this.zip.file(`users/${member.userId}`, blob);
}
return `
@@ -289,40 +358,10 @@ const getUserPic = async (event: MatrixEvent) => {
`;
}
-};
-
-//Gets the event_id of an event to which an event is replied
-const getBaseEventId = (event: MatrixEvent) => {
- const isEncrypted = event.isEncrypted();
-
- // If encrypted, in_reply_to lies in event.event.content
- const content = isEncrypted ? event.event.content : event.getContent();
- const relatesTo = content["m.relates_to"];
- return (relatesTo && relatesTo["m.in_reply_to"]) ? relatesTo["m.in_reply_to"]["event_id"] : null;
-};
-
-const isEdit = (event: MatrixEvent) => {
- if (event.getType() === "m.room.message" && event.getContent().hasOwnProperty("m.new_content")) return true;
- return false;
}
-const dateSeparator = (event: MatrixEvent, prevEvent: MatrixEvent) => {
- const prevDate = prevEvent ? new Date(prevEvent.getTs()) : null;
- const currDate = new Date(event.getTs());
- if (!prevDate || currDate.setHours(0, 0, 0, 0) !== prevDate.setHours(0, 0, 0, 0)) {
- return `
-
-
- ${new Date(event.getTs())
- .toLocaleString("en-us", {year: "numeric", month: "long", day: "numeric" })}
-
-
- `;
- }
- return "";
-};
-const getImageData = async (event: MatrixEvent) => {
+protected async getImageData(event: MatrixEvent) {
let blob: Blob;
try {
const isEncrypted = event.isEncrypted();
@@ -338,11 +377,36 @@ const getImageData = async (event: MatrixEvent) => {
console.log("Error decrypting image");
}
return blob;
+}
+
+//Gets the event_id of an event to which an event is replied
+protected getBaseEventId = (event: MatrixEvent) => {
+ const isEncrypted = event.isEncrypted();
+
+ // If encrypted, in_reply_to lies in event.event.content
+ const content = isEncrypted ? event.event.content : event.getContent();
+ const relatesTo = content["m.relates_to"];
+ return (relatesTo && relatesTo["m.in_reply_to"]) ? relatesTo["m.in_reply_to"]["event_id"] : null;
};
+protected dateSeparator(event: MatrixEvent, prevEvent: MatrixEvent) {
+ const prevDate = prevEvent ? new Date(prevEvent.getTs()) : null;
+ const currDate = new Date(event.getTs());
+ if (!prevDate || currDate.setHours(0, 0, 0, 0) !== prevDate.setHours(0, 0, 0, 0)) {
+ return `
+
+
+ ${new Date(event.getTs())
+ .toLocaleString("en-us", {year: "numeric", month: "long", day: "numeric" })}
+
+
+ `;
+ }
+ return "";
+}
-const createMessageBody = async (event: MatrixEvent, joined = false, isReply = false, replyId = null) => {
- const userPic = await getUserPic(event);
+protected async createMessageBody(event: MatrixEvent, joined = false, isReply = false, replyId = null) {
+ const userPic = await this.getUserAvatar(event);
let messageBody = "";
switch (event.getContent().msgtype) {
case "m.text":
@@ -357,8 +421,8 @@ const createMessageBody = async (event: MatrixEvent, joined = false, isReply = f
src="images/${event.getId()}.png"
/>
`;
- const blob = await getImageData(event);
- zip.file(`images/${event.getId()}.png`, blob);
+ const blob = await this.getImageData(event);
+ this.zip.file(`images/${event.getId()}.png`, blob);
}
break;
default:
@@ -373,7 +437,7 @@ const createMessageBody = async (event: MatrixEvent, joined = false, isReply = f
${new Date(event.getTs()).toLocaleTimeString().slice(0, -3)}