Spaces:
Paused
Paused
File size: 2,013 Bytes
8de10f9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import generateProfilePicture from '../generateProfilePicture.js';
import { writeFile, unlink } from 'fs/promises';
import config from '../../config.cjs';
const setProfilePicture = async (m, gss) => {
const botNumber = await gss.decodeJid(gss.user.id);
const isCreator = [botNumber, config.OWNER_NUMBER + '@s.whatsapp.net'].includes(m.sender);
const prefix = config.PREFIX;
const cmd = m.body.startsWith(prefix) ? m.body.slice(prefix.length).split(' ')[0].toLowerCase() : '';
const text = m.body.slice(prefix.length + cmd.length).trim();
const validCommands = ['setppfull', 'setfullprofilepic', 'fullpp', 'setppbot'];
if (validCommands.includes(cmd)) {
if (!isCreator) return m.reply("*📛 THIS IS AN OWNER COMMAND*");
if (!m.quoted || m.quoted.mtype !== 'imageMessage') {
return m.reply(`Send/Reply with an image to set your profile picture ${prefix + cmd}`);
}
try {
const media = await m.quoted.download(); // Download the media from the quoted message
if (!media) throw new Error('Failed to download media.');
const filePath = `./${Date.now()}.png`;
await writeFile(filePath, media);
try {
const { img } = await generateProfilePicture(media); // Generate profile picture
await gss.query({
tag: 'iq',
attrs: {
to: botNumber,
type: 'set',
xmlns: 'w:profile:picture'
},
content: [{
tag: 'picture',
attrs: {
type: 'image'
},
content: img
}]
});
m.reply('Profile picture updated successfully.');
} catch (err) {
throw err;
} finally {
await unlink(filePath); // Clean up the downloaded file
}
} catch (error) {
console.error('Error setting profile picture:', error);
m.reply('Error setting profile picture.');
}
}
};
export default setProfilePicture;
|