turns-00066.parquet:31087
e9881e65bf9a8d69d878fcfd
turn 1/1gpt-4o-mini-2024-07-18PortugueseUnited States517 words
degenerate_repetitionAbsentFinal dense release
USER
Reorganize este código JS mantendo a lógica, mas melhorando a estrutura:
const byeStickerPath = `${stickerCachePath}/${num.id}-bye.webp`;
if (fs.existsSync(byeStickerPath)) {
await client.sendMessage(num.id, { sticker: { url: byeStickerPath } });
} else {
console.log(`Sticker de despedida não configurado para o grupo ${num.id}.`);
}
}
if (num.action === 'add') {
if (isWelkom2) {
try {
ppimg = await client.profilePictureUrl(num.participants[0]);
} catch {
ppimg = 'https://telegra.ph/file/b5427ea4b8701bc47e751.jpg';
}
try {
ppgp = await client.profilePictureUrl(num.id);
} catch {
ppgp = 'https://image.flaticon.com/icons/png/512/124/124034.png';
}
const placeholders = {
hora: new Date().toLocaleTimeString(),
nomedogp: groupMetadata.subject,
numerodele: `@${num.participants[0].split('@')[0]}`,
numerobot: `@${client.user.id.split('@')[0]}`,
prefixo: '!',
descrição: groupDesc
};
const welcomeMsgTemplate = getGroupMessage(num.id, './arquivos/funções/grupos/welcomegp2.json');
const welcomeMsg = formatMessage(welcomeMsgTemplate, placeholders);
const welcomeImageUrl = `${url_api}/api/aleatorios/welcome2?perfil=${encodeURIComponent(ppimg)}&descricao=Bem%20vindo:%20@${num.participants[0].split("@")[0]}&nome=SEJA%20BEM%20VINDO(A)&apikey=${key_bot}`;
try {
const pimg = await getBuffer(welcomeImageUrl);
// await client.sendMessage(num.id, { image: pimg, caption: welcomeMsg, mentions: [num.participants[0]] });
} catch (error) {
console.log(`Erro ao enviar mensagem de boas-vindas: ${error}`);
}
} else if (isWelkom) {
const welcomeMsgTemplate = getGroupMessage(num.id, './arquivos/funções/grupos/welcomegp.json');
const placeholders = {
hora: new Date().toLocaleTimeString(),
ASSISTANT
Claro! Vamos reorganizar o código para melhorar sua estrutura, mantendo a lógica original. A primeira coisa a considerar é a modularização do código e o uso de funções para evitar duplicação. Aqui está uma versão melhorada do seu código:
```javascript
async function sendByeSticker(num) {
const byeStickerPath = `${stickerCachePath}/${num.id}-bye.webp`;
if (fs.existsSync(byeStickerPath)) {
await client.sendMessage(num.id, { sticker: { url: byeStickerPath } });
} else {
console.log(`Sticker de despedida não configurado para o grupo ${num.id}.`);
}
}
async function fetchProfilePicture(userId, defaultUrl) {
try {
return await client.profilePictureUrl(userId);
} catch {
return defaultUrl;
}
}
function generateWelcomeMessage(num, placeholders) {
const welcomeMsgTemplate = getGroupMessage(num.id, './arquivos/funções/grupos/welcomegp.json');
return formatMessage(welcomeMsgTemplate, placeholders);
}
async function sendWelcomeImage(num, welcomeMsg, ppimg) {
const welcomeImageUrl = `${url_api}/api/aleatorios/welcome2?perfil=${encodeURIComponent(ppimg)}&descricao=Bem%20vindo:%20@${num.participants[0].split("@")[0]}&nome=SEJA%20BEM%20VINDO(A)&apikey=${key_bot}`;
try {
const pimg = await getBuffer(welcomeImageUrl);
// await client.sendMessage(num.id, { image: pimg, caption: welcomeMsg, mentions: [num.participants[0]] });
} catch (error) {
console.log(`Erro ao enviar mensagem de boas-vindas: ${error}`);
}
}
async function handleGroupActions(num) {
if (num.action === 'add') {
if (isWelkom2) {
const ppimg = await fetchProfilePicture(num.participants[0], 'https://telegra.ph/file/b5427ea4b8701bc47e751.jpg');
const ppgp = await fetchProfilePicture(num.id, 'https://image.flaticon.com/icons/png/512/124/124034.png'); // ppgp não está sendo utilizado atualmente
const placeholders = {
hora: new Date().toLocaleTimeString(),
nomedogp: groupMetadata.subject,
numerodele: `@${num.participants[0].split('@')[0]}`,
numerobot: `@${client.user.id.split('@')[0]}`,
prefixo: '!',
descrição: groupDesc
};
const welcomeMsg = generateWelcomeMessage(num, placeholders);
await sendWelcomeImage(num, welcomeMsg, ppimg);
} else if (isWelkom) {
const placeholders = {
hora: new Date().toLocaleTimeString(),
nomedogp: groupMetadata.subject,
numerodele: `@${num.participants[0].split('@')[0]}`,
numerobot: `@${client.user.id.split('@')[0]}`,
prefixo: '!',
descrição: groupDesc
};
const welcomeMsg = generateWelcomeMessage(num, placeholders);
// Enviar mensagem de boas-vindas (pode-se adicionar o envio aqui)
}
}
}
// Uso das funções
sendByeSticker(num);
handleGroupActions(num);
```
### Melhorias Feitas:
1. **Funções Modulares**: O código foi dividido em funções menores para tarefas específicas, como enviar adesivos de despedida, buscar imagens de perfil, gerar mensagens de boas-vindas, e enviar imagens de boas-vindas.
2. **Tratamento de Erros**: A busca por imagens de perfil agora utiliza uma função separada, eliminando a duplicação e melhorando a legibilidade.
3. **Clareza e Manutenção**: A divisão em funções faz com que o código seja mais fácil de seguir, manter e modificar no futuro.
4. **Evitar Duplicação**: A lógica de preparação de mensagens e envio foi centralizada, evitando a repetição do código.
Essas mudanças ajudam a criar um código mais limpo e legível, mantendo a funcionalidade desejada.