@yudzxml/baileys 7.3.4 → 7.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,13 +13,15 @@ const {
13
13
  randomBytes,
14
14
  createHmac,
15
15
  createCipheriv,
16
- createDecipheriv
16
+ createDecipheriv,
17
+ randomUUID
17
18
  } = require("crypto")
18
19
  const {
19
20
  promises,
20
21
  createReadStream,
21
22
  createWriteStream,
22
- writeFileSync
23
+ writeFileSync,
24
+ existsSync
23
25
  } = require("fs")
24
26
  const {
25
27
  parseBuffer,
@@ -445,28 +447,62 @@ async function convertToOpusBuffer(buffer, logger) {
445
447
  }
446
448
  }
447
449
 
450
+
448
451
  async function convertToMp4Buffer(buffer, logger) {
452
+ const tmpDir = join(__dirname, '../tmp')
453
+ await promises.mkdir(tmpDir, { recursive: true })
454
+ const tmp = join(tmpDir, `${Date.now()}-${randomUUID()}.tmp`)
455
+ const out = `${tmp}.mp4`
456
+ const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path
457
+ const { spawn } = require('child_process')
458
+
449
459
  try {
450
- const { PassThrough } = require('stream');
451
- const ff = require('fluent-ffmpeg');
452
- return await new Promise((resolve, reject) => {
453
- const inStream = new PassThrough();
454
- const outStream = new PassThrough();
455
- const chunks = [];
456
- inStream.end(buffer);
457
- ff(inStream)
458
- .videoCodec('libx264')
459
- .audioCodec('aac')
460
- .format('mp4')
461
- .outputOptions(['-preset', 'veryfast', '-crf', '23', '-movflags', 'faststart', '-map_metadata', '-1'])
460
+ await promises.writeFile(tmp, buffer)
461
+
462
+ await new Promise((resolve, reject) => {
463
+ spawn(ffmpegPath, [
464
+ '-y',
465
+ '-i', tmp,
466
+ '-c:v', 'libx264',
467
+ '-c:a', 'aac',
468
+ '-preset', 'veryfast',
469
+ '-crf', '23',
470
+ '-movflags', 'faststart',
471
+ '-map_metadata', '-1',
472
+ '-f', 'mp4',
473
+ out
474
+ ])
462
475
  .on('error', reject)
463
- .on('end', () => resolve(Buffer.concat(chunks)))
464
- .pipe(outStream, { end: true });
465
- outStream.on('data', c => chunks.push(c));
466
- });
476
+ .on('close', code => {
477
+ if (code !== 0) {
478
+ return reject(
479
+ new Error(`FFmpeg exited with code ${code}`)
480
+ )
481
+ }
482
+ resolve()
483
+ })
484
+ })
485
+
486
+ const result = await promises.readFile(out)
487
+
488
+ await promises.unlink(tmp)
489
+ await promises.unlink(out)
490
+
491
+ return result
467
492
  } catch (e) {
468
- logger?.debug(e);
469
- throw e;
493
+ logger?.debug?.(e)
494
+
495
+ try {
496
+ if (existsSync(tmp)) {
497
+ await promises.unlink(tmp)
498
+ }
499
+
500
+ if (existsSync(out)) {
501
+ await promises.unlink(out)
502
+ }
503
+ } catch {}
504
+
505
+ throw e
470
506
  }
471
507
  }
472
508
 
@@ -588,6 +624,7 @@ const encryptedStream = async (
588
624
  opusConverted = true;
589
625
  logger?.debug('converted audio to Opus');
590
626
  } catch (error) {
627
+ logger?.error(error)
591
628
  logger?.error('failed to convert audio to Opus, fallback to original');
592
629
  finalStream = toReadable(originalBuffer);
593
630
  }
@@ -600,6 +637,7 @@ const encryptedStream = async (
600
637
  originalBuffer = mp4Buffer;
601
638
  logger?.debug('converted video to mp4');
602
639
  } catch (error) {
640
+ logger?.error(error)
603
641
  logger?.error('failed to convert video to mp4, fallback to original');
604
642
  finalStream = toReadable(originalBuffer);
605
643
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yudzxml/baileys",
3
- "version": "7.3.4",
3
+ "version": "7.3.6",
4
4
  "description": "WhatsApp API Modification By Yudzxml",
5
5
  "keywords": [
6
6
  "whatsapp",
@@ -12,28 +12,22 @@
12
12
  "automation",
13
13
  "multi-device"
14
14
  ],
15
-
16
15
  "homepage": "https://github.com/Yudzxml/Baileys",
17
-
18
16
  "bugs": {
19
- "url": "https://github.com/Yudzxml/Baileys/issues"
17
+ "url": "https://github.com/Yudzxml/Baileys/issues"
20
18
  },
21
-
22
19
  "repository": {
23
20
  "type": "git",
24
21
  "url": "https://github.com/Yudzxml/Baileys.git"
25
22
  },
26
-
27
23
  "license": "MIT",
28
24
  "author": "Yudzxml",
29
-
30
25
  "main": "lib/index.js",
31
26
  "files": [
32
27
  "lib/*",
33
28
  "WAProto/*",
34
29
  "engine-requirements.js"
35
30
  ],
36
-
37
31
  "scripts": {
38
32
  "changelog:last": "conventional-changelog -p angular -r 2",
39
33
  "changelog:preview": "conventional-changelog -p angular -u",
@@ -44,7 +38,6 @@
44
38
  "release": "release-it",
45
39
  "test": "jest"
46
40
  },
47
-
48
41
  "dependencies": {
49
42
  "@hapi/boom": "^9.1.3",
50
43
  "@adiwajshing/keyed-db": "^0.2.4",
@@ -64,7 +57,6 @@
64
57
  "qrcode-terminal": "^0.12.0",
65
58
  "ws": "^8.13.0"
66
59
  },
67
-
68
60
  "devDependencies": {
69
61
  "@types/jest": "^29.5.14",
70
62
  "@types/node": "^16.0.0",
@@ -84,24 +76,19 @@
84
76
  "typedoc-plugin-markdown": "4.4.2",
85
77
  "typescript": "^5.8.2"
86
78
  },
87
-
88
79
  "peerDependencies": {
89
- "jimp": "^0.22.12",
80
+ "jimp": "^0.22.12",
90
81
  "sharp": "*"
91
82
  },
92
-
93
83
  "peerDependenciesMeta": {
94
84
  "jimp": {
95
85
  "optional": true
96
86
  }
97
87
  },
98
-
99
88
  "packageManager": "yarn@1.22.19",
100
-
101
89
  "engines": {
102
90
  "node": ">=20.0.0"
103
91
  },
104
-
105
92
  "directories": {
106
93
  "lib": "lib"
107
94
  }