Skip to content

Conversation

Copy link

Copilot AI commented Oct 24, 2025

Descrição

Este PR implementa dois novos modos de escala para o comando /sticker, permitindo aos usuários escolher como suas imagens e vídeos devem ser redimensionados ao criar figurinhas.

Funcionalidades Adicionadas

Modo de Preenchimento (Fill)

Argumentos: /sticker f, /sticker full, /sticker p, /sticker preencher

Força a imagem/vídeo a ser esticada ou distorcida para preencher exatamente 512x512 pixels, ignorando a proporção original. Este também é o comportamento padrão quando nenhum argumento é fornecido.

# Exemplos
/sticker f           # responder a uma imagem
/sticker preencher   # responder a um vídeo

Modo de Corte (Crop)

Argumentos: /sticker c, /sticker corta, /sticker crop

Aumenta o zoom da imagem/vídeo mantendo a proporção até que preencha completamente o espaço de 512x512 pixels, cortando as bordas se necessário. Isso garante que a figurinha fique completamente preenchida sem distorção, mas pode cortar partes da imagem original.

# Exemplos
/sticker c        # responder a uma imagem
/sticker crop     # responder a um vídeo

Implementação Técnica

  • Filtros FFmpeg utilizados:

    • Modo Fill: scale=512:512 (distorce para ajustar)
    • Modo Crop: scale=512:512:force_original_aspect_ratio=increase,crop=512:512 (zoom e corte)
  • Validação de entrada: O argumento do usuário (data.args[0]) é validado contra strings específicas e nunca interpolado diretamente nos comandos shell, prevenindo injeção de comandos.

  • Compatibilidade: Funciona tanto para imagens quanto para vídeos/GIFs, mantendo todas as funcionalidades existentes (limite de 10 segundos para vídeos, conversão para WebP, etc.)

Mudanças no Código

  • Modificado apenas src/commands/member/sticker.ts
  • Adicionado parsing de argumentos para detectar o modo de escala
  • Atualizada a string de uso do comando para documentar os novos parâmetros
  • ~15 linhas de código alteradas (mudança mínima e focada)

Segurança

✅ A análise CodeQL foi executada. As 2 alertas encontradas são pré-existentes e relacionadas ao uso de inputPath nas chamadas exec(), não introduzidas por este PR.

✅ As mudanças implementadas são seguras: a entrada do usuário é validada contra strings específicas e apenas filtros FFmpeg predefinidos são utilizados.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • checkpoint.prisma.io
    • Triggering command: /usr/local/bin/node /home/REDACTED/work/Quirk/Quirk/node_modules/prisma/build/child {"product":"prisma","version":"5.22.0","cli_install_type":"local","information":"","local_timestamp":"2025-10-24T19:11:22Z","project_hash":"c8208cdd","cli_path":"/home/REDACTED/work/Quirk/Quirk/node_modules/.bin/prisma","cli_path_hash":"cffe18d0","endpoint":"REDACTED","disable":false,"arch":"x64","os":"linux","node_version":"v20.19.5","ci":true,"ci_name":"GitHub Actions","command":"generate","schema_providers":["postgresql"],"schema_preview_features":[],"schema_generators_providers":["prisma-client-js"],"cache_file":"/home/REDACTED/.cache/checkpoint-nodejs/prisma-cffe18d0","cache_duration":43200000,"remind_duration":172800000,"force":false,"timeout":5000,"unref":true,"child_path":"/home/REDACTED/work/Quirk/Quirk/node_modules/prisma/build/child","client_event_id":"","previous_client_event_id":"","check_if_update_available":true} (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

no comando de sticker, caso o usuario passe o data.args igual a /sticker f, /sticker full, /sticker p, /sticker preencher, vamos fazer com que ffmpeg preencha a imagem de maneira que pode até mesmo distorcer a imagem

caso ele mande um data.args igual a /sticker c, /sticker corta, /sticker crop então vamos aumentar o zoom da imagem para dar zoom fazendo com que seja até mesmo cortada, mas continue preenchida


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Update sticker command to handle image filling and cropping Adicionar modos de preenchimento e corte ao comando sticker Oct 24, 2025
Copilot AI requested a review from Polabiel October 24, 2025 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants