Whats / postinstall.js
hsoneabadi's picture
H
c728614
Raw
History Blame Contribute Delete
1.93 kB
const fs = require('fs');
const path = require('path');
const utilsPath = path.join(__dirname, 'node_modules', 'whatsapp-web.js', 'src', 'util', 'Injected', 'Utils.js');
if (!fs.existsSync(utilsPath)) {
console.warn('postinstall: Utils.js not found at', utilsPath);
process.exit(0);
}
let content = fs.readFileSync(utilsPath, 'utf8');
let changed = false;
// Patch 1: canCheckStatusRankingPosterGating -> safe call
const oldCode1 = ` cannotBeRanked: window
.require('WAWebStatusGatingUtils')
.canCheckStatusRankingPosterGating(),`;
const patchedCode1 = ` cannotBeRanked: (() => {
try {
const gating = window.require('WAWebStatusGatingUtils');
return typeof gating.canCheckStatusRankingPosterGating === 'function'
? gating.canCheckStatusRankingPosterGating()
: true;
} catch (e) {
return true;
}
})(),`;
if (content.includes(oldCode1)) {
content = content.replace(oldCode1, patchedCode1);
changed = true;
console.log('postinstall: Patched canCheckStatusRankingPosterGating');
}
// Patch 2: isStatus detection broken in latest WA Web (returns true for all chats)
const oldCode2 = ` const isStatus = getIsBroadcast(chat);`;
const patchedCode2 = ` const isStatus = typeof getIsBroadcast === 'function' && getIsBroadcast(chat) && chat.id && (chat.id._serialized || '').endsWith('@broadcast');`;
if (content.includes(oldCode2)) {
content = content.replace(oldCode2, patchedCode2);
changed = true;
console.log('postinstall: Patched isStatus detection');
}
if (changed) {
fs.writeFileSync(utilsPath, content, 'utf8');
console.log('postinstall: Utils.js updated');
}