From 8a097092b41fb6f0086de4bb8839687ae55da646 Mon Sep 17 00:00:00 2001 From: Will Hunt <will@half-shot.uk> Date: Sun, 29 Dec 2019 17:19:56 +0000 Subject: [PATCH] Fix mime bugs --- package.json | 1 + src/bot.ts | 4 ++-- src/matrixeventprocessor.ts | 2 +- src/util.ts | 12 +++++------- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index dddab55..bc10d6f 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "lint": "tslint --project ./tsconfig.json -t stylish", "coverage": "tsc && nyc mocha build/test/config.js build/test", "build": "tsc", + "preinstall": "npm run build", "start": "npm run-script build && node ./build/src/discordas.js -p 9005 -c config.yaml", "debug": "npm run-script build && node --inspect ./build/src/discordas.js -p 9005 -c config.yaml", "addbot": "node ./build/tools/addbot.js", diff --git a/src/bot.ts b/src/bot.ts index cad7d77..df2e1f0 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -56,7 +56,7 @@ interface IThirdPartyLookupField { guild_id: string; } -interface IThirdPartyLookup { +export interface IThirdPartyLookup { alias: string; fields: IThirdPartyLookupField; protocol: string; @@ -809,7 +809,7 @@ export class DiscordBot { undefined, attachment.filename, ); - const fileMime = mime.lookup(attachment.filename); + const fileMime = mime.getType(attachment.filename) || "application/octet-stream"; const type = fileMime.split("/")[0]; let msgtype = { audio: "m.audio", diff --git a/src/matrixeventprocessor.ts b/src/matrixeventprocessor.ts index d5dba7d..77a0ac5 100644 --- a/src/matrixeventprocessor.ts +++ b/src/matrixeventprocessor.ts @@ -521,7 +521,7 @@ export class MatrixEventProcessor { private GetFilenameForMediaEvent(content: IMatrixEventContent): string { let ext = ""; try { - ext = "." + mime.extension(content.info.mimetype); + ext = "." + mime.getExtension(content.info.mimetype); } catch (err) { } // pass, we don't have an extension if (content.body) { if (path.extname(content.body) !== "") { diff --git a/src/util.ts b/src/util.ts index 9391c7a..2ab2fb8 100644 --- a/src/util.ts +++ b/src/util.ts @@ -128,18 +128,17 @@ export class Util { const matrixUsers = {}; let matches = 0; await Promise.all(channelMxids.map( async (chan) => { - (await client.getRoomMembers(chan, undefined, "leave")).forEach((member) => { - if (member.content.membership === "invite") { + (await client.getRoomMembers(chan, undefined, ["leave"])).forEach((member) => { + if (member.membership === "invite") { return; } - const mxid = member.state_key; + const mxid = member.stateKey; if (mxid.startsWith("@_discord_")) { return; } let displayName = member.content.displayname; - if (!displayName && member.unsigned && member.unsigned.prev_content && - member.unsigned.prev_content.displayname) { - displayName = member.unsigned.prev_content.displayname; + if (!displayName && member.previousContent.displayname) { + displayName = member.previousContent.displayname; } if (!displayName) { displayName = mxid.substring(1, mxid.indexOf(":")); @@ -378,7 +377,6 @@ export class Util { public static EscapeStringForUserId(localpart: string) { // NOTE: Currently Matrix accepts / in the userId, although going forward it will be removed. const badChars = new Set(localpart.replace(/([a-z]|[0-9]|-|\.|=|_)+/g, "")); - console.log(badChars); let res = localpart; badChars.forEach((c) => { const hex = c.charCodeAt(0).toString(16).toLowerCase(); -- GitLab