Publicação cruzada em redes sociais: um mergulho profundo em estado, idempotência e cirílico quebrado
LiveDune
Um engenheiro compartilha lições da automatização da publicação cruzada de artigos de blog em redes sociais. A tarefa revelou-se um pipeline complexo com múltiplas zonas de falha, exigindo tratamento cuidadoso de timeouts, formatos de imagem, respostas de API e codificação de texto. Os principais aprendizados incluem separar pacote, transporte e controle de qualidade, e usar portões rígidos para verificação.
O autor recebeu a tarefa de automatizar a republicação de artigos de blog em redes sociais, incluindo gerar anúncios curtos, reescrever conteúdo para Dzen e Spark, anexar imagens, configurar tags UTM e publicar no Telegram e outros canais. As primeiras tentativas com um agente de IA revelaram muitas armadilhas: as postagens no Telegram realmente foram publicadas, mas a CLI retornou um erro de tempo esgotado; os links Markdown se fundiram visualmente com o texto; as imagens WebP se tornaram PNGs enormes; o VK acionou verificações anti-bot; o OK perdeu os cartões de pré-visualização; e o Google Docs continha caracteres corrompidos (U+FFFD). O autor percebeu que a republicação não é uma operação única, mas um pipeline com zonas de falha independentes, e o estruturado como fonte → pacote de conteúdo → resolução de mídia → transporte → verificação → relatório. Principais percepções: um tempo esgotado não significa que a postagem não foi publicada, então as tentativas devem ser baseadas em verificação real; a automação de navegador é não confiável e deve ser um último recurso; respostas de API como HTTP 201 não garantem a entrega, então cada plataforma deve ter um estado final verificado; as imagens precisam de validação e resolução adequadas (por exemplo, a conversão de WebP para PNG degradou um ativo em dez vezes); e a corrupção de codificação de texto (U+FFFD) deve ser detectada com barreiras rígidas, pois não pode ser corrigida com uma simples substituição. Para a reescrita, o autor usou HTML completo com saneamento em vez de JSON para evitar CTAs e banners, e limitou o processamento a um artigo fresco por execução.
Fonte: Habr — хаб ИИ —
original
