Skip to content

Commit cef516c

Browse files
committed
🐛 fix mime breaking changes issue #2961
1 parent 707941c commit cef516c

File tree

4 files changed

+53
-33
lines changed

4 files changed

+53
-33
lines changed

package-lock.json

Lines changed: 45 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
"@types/line-reader": "0.0.34",
7575
"@types/localtunnel": "^2.0.1",
7676
"@types/marked": "^4.0.2",
77-
"@types/mime-types": "^2.1.0",
77+
"@types/mime": "^3.0.1",
7878
"@types/node": "^18.7.6",
7979
"@types/puppeteer": "^5.4.0",
8080
"@types/shelljs": "^0.8.5",
@@ -142,6 +142,7 @@
142142
"localtunnel": "^2.0.2",
143143
"lodash.uniq": "^4.5.0",
144144
"meow": "^9.0.0",
145+
"mime": "^3.0.0",
145146
"node-persist": "^3.1.0",
146147
"open": "^8.0.2",
147148
"os-name": "^4.0.0",

src/structures/preProcessors.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const AUTO_DECRYPT: MessagePreProcessor =
4444

4545
const AUTO_DECRYPT_SAVE: MessagePreProcessor = async (message: Message, client: Client) => {
4646
if (message.deprecatedMms3Url && message.mimetype) {
47-
const filename = `${message.mId}.${mime.extension(
47+
const filename = `${message.mId}.${mime.getExtension(
4848
message.mimetype
4949
)}`;
5050
const filePath = `media/${filename}`;
@@ -72,7 +72,7 @@ const UPLOAD_CLOUD: MessagePreProcessor = async (message: Message, client: Clien
7272
if(!uploadQueue) {
7373
uploadQueue = new PQueue({ concurrency: 2, interval: 1000, carryoverConcurrencyCount: true, intervalCap: 2 });
7474
}
75-
const filename = `${message.mId || `${Date.now()}`}.${mime.extension(
75+
const filename = `${message.mId || `${Date.now()}`}.${mime.getExtension(
7676
message.mimetype
7777
)}`;
7878
const mediaData = await client.decryptMedia(message);

src/utils/tools.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ export const ensureDUrl = async (file : string | Buffer, requestConfig: AxiosReq
309309
const { ext } = await (await ft()).fileTypeFromBuffer(file);
310310
filename = `file.${ext}`;
311311
}
312-
return `data:${mime.lookup(filename)};base64,${file.toString('base64').split(',')[1]}`
312+
return `data:${mime.getType(filename)};base64,${file.toString('base64').split(',')[1]}`
313313
} else
314314
if(!isDataURL(file) && !isBase64(file)) {
315315
//must be a file then
@@ -324,8 +324,8 @@ export const ensureDUrl = async (file : string | Buffer, requestConfig: AxiosReq
324324
const { ext } = await (await ft()).fileTypeFromBuffer(Buffer.from(file.split(',')[1], 'base64'));
325325
filename = `file.${ext}`;
326326
}
327-
if(file.includes("data:") && file.includes("undefined") || file.includes("application/octet-stream") && filename && mime.lookup(filename)) {
328-
file = `data:${mime.lookup(filename)};base64,${file.split(',')[1]}`
327+
if(file.includes("data:") && file.includes("undefined") || file.includes("application/octet-stream") && filename && mime.getType(filename)) {
328+
file = `data:${mime.getType(filename)};base64,${file.split(',')[1]}`
329329
}
330330
return file;
331331
}
@@ -406,7 +406,7 @@ export const assertFile : (file: AdvancedFile | Buffer, outfileName: string, des
406406
let tfn = `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.${outfileName}`;
407407
if(inputType != FileInputTypes.BUFFER){
408408
file = await ensureDUrl(file as string, requestConfig, outfileName);
409-
const ext = mime.extension(file.match(/[^:]\w+\/[\w-+\d.]+(?=;|,)/)[0]);
409+
const ext = mime.getExtension(file.match(/[^:]\w+\/[\w-+\d.]+(?=;|,)/)[0]);
410410
if(ext && !IGNORE_FILE_EXTS.includes(ext) && !tfn.endsWith(ext)) tfn = `${tfn}.${ext}`;
411411
file = Buffer.from(file.split(',')[1], 'base64')
412412
}

0 commit comments

Comments
 (0)