Deploy: 2026-05-23 23:12:12

This commit is contained in:
Hamza-Ayed
2026-05-23 23:12:12 +03:00
parent 5eb848064d
commit bae23e8da7
2 changed files with 102 additions and 66 deletions

View File

@@ -59,28 +59,6 @@ async function startSession(session_key, webhook_url) {
const sessionFolder = path.join(SESSIONS_DIR, session_key);
const { state, saveCreds } = await useMultiFileAuthState(sessionFolder);
// Initialize InMemoryStore for chat history
const store = makeInMemoryStore({ logger: pino({ level: 'silent' }) });
const storeFile = path.join(SESSIONS_DIR, `${session_key}_store.json`);
if (fs.existsSync(storeFile)) {
try {
store.readFromFile(storeFile);
console.log(`[Store] Loaded store from file for ${session_key}`);
} catch (e) {
console.error(`[Store] Failed to load store file for ${session_key}:`, e.message);
}
}
// Periodically save store to file every 10 seconds
const storeInterval = setInterval(() => {
try {
store.writeToFile(storeFile);
} catch (e) {
console.error(`[Store] Failed to write store file for ${session_key}:`, e.message);
}
}, 10000);
storeIntervals.set(session_key, storeInterval);
// Fetch the latest WhatsApp Web version to avoid 405 rejection
let version;
try {
@@ -361,7 +339,7 @@ async function disconnectSession(session_key) {
const storeFile = path.join(SESSIONS_DIR, `${session_key}_store.json`);
if (fs.existsSync(storeFile)) {
try { fs.unlinkSync(storeFile); } catch (e) {}
try { fs.unlinkSync(storeFile); } catch (e) { }
}
const sock = sessions.get(session_key);
@@ -391,10 +369,10 @@ function convertToOggOpus(base64Audio) {
fs.writeFile(inputPath, Buffer.from(base64Audio, 'base64'), (err) => {
if (err) return reject(err);
exec(`ffmpeg -i ${inputPath} -c:a libopus -y ${outputPath}`, (execErr) => {
fs.unlink(inputPath, () => {});
fs.unlink(inputPath, () => { });
if (execErr) return reject(execErr);
fs.readFile(outputPath, (readErr, data) => {
fs.unlink(outputPath, () => {});
fs.unlink(outputPath, () => { });
if (readErr) return reject(readErr);
resolve(data.toString('base64'));
});
@@ -436,7 +414,7 @@ async function sendMessage(session_key, phone, message, mediaUrl = null, audioBa
} else if (audioBase64) {
let finalAudioBase64 = audioBase64;
let finalMime = mimetype || 'audio/mp4';
// If it's MP3, convert to OGG Opus to ensure iPhone PTT compatibility
if (finalMime.includes('mpeg') || finalMime.includes('mp3')) {
try {
@@ -446,13 +424,13 @@ async function sendMessage(session_key, phone, message, mediaUrl = null, audioBa
} catch (err) {
console.error(`[Baileys] FFmpeg conversion failed:`, err.message);
// Fallback to sending as normal audio if conversion fails
finalMime = 'audio/mp4';
finalMime = 'audio/mp4';
}
}
const buffer = Buffer.from(finalAudioBase64, 'base64');
const isMp3 = finalMime.includes('mpeg') || finalMime.includes('mp3');
sentMsg = await sock.sendMessage(jid, {
audio: buffer,
mimetype: finalMime,
@@ -533,11 +511,11 @@ async function exportChatHistory(session_key) {
for (const msg of messages) {
const fromMe = msg.key.fromMe;
const sender = fromMe ? 'المنصة (نبيه)' : name;
const body = msg.message?.conversation ||
msg.message?.extendedTextMessage?.text ||
msg.message?.imageMessage?.caption ||
msg.message?.videoMessage?.caption || '';
msg.message?.extendedTextMessage?.text ||
msg.message?.imageMessage?.caption ||
msg.message?.videoMessage?.caption || '';
let dateStr = 'تاريخ غير معروف';
if (msg.messageTimestamp) {