História de mudanças

Todas as atualizações do PinPilot: correções, funções novas e melhorias

1.4.20
Alterado
  • Novo logotipo e ícone do aplicativo. O RuStore rejeitou a versão anterior: o design copiava a aparência de outro serviço — o ícone mostrava um círculo com uma letra, como o Pinterest. Agora o ícone mostra um piloto com capacete e óculos, sem marcas de terceiros. A mesma imagem substituiu o logotipo e o favicon do site
  • Nova ilustração na página de download e na primeira tela da página inicial: um piloto de corpo inteiro
Corrigido
  • Proteção da licença. O período de teste não pode mais ser prolongado reinstalando o aplicativo: o servidor guarda a impressão digital do dispositivo e conta o prazo desde o primeiro início. O desvio do limite de requisições por cabeçalho falsificado foi fechado
1.4.19
Corrigido
  • As atualizações do aplicativo voltam a ser instaladas. A permissão de instalação foi removida na 1.4.16 porque a RuStore rejeitou a versão 1.4.11 por causa dela. Sem essa permissão o Android não deixa o aplicativo abrir o instalador: em vez de instalar, abriam-se as configurações, e o PinPilot não aparecia na lista porque a permissão não está declarada. Se você está na 1.4.16, 1.4.17 ou 1.4.18, baixe o arquivo do site uma vez, depois as atualizações funcionam normalmente
Alterado
  • Duas compilações: uma para o site e outra para a RuStore. A do site instala as atualizações sozinha, em um toque, como antes. A da RuStore não pede a permissão de instalação: a loja a considera de alto risco e exige uma justificativa separada, e lá as atualizações são feitas pela loja
1.4.18
Corrigido
  • As curtidas automáticas finalmente funcionam. Na versão anterior a forma de enviar a reação estava correta, mas o aplicativo escolhia qualquer alvo: pegava qualquer número da página de busca, incluindo os de usuários e pastas. O Pinterest rejeita esses. Agora os números vêm dos links reais dos pins. Verificado em uma conta real: 3 de 3 curtidas enviadas
1.4.17
Corrigido
  • As curtidas voltaram a funcionar. O Pinterest mudou a forma de enviar uma reação: o endereço antigo parou de aceitar os pedidos, então as curtidas não eram enviadas. O novo endereço foi encontrado interceptando um pedido real da versão web e já está integrado ao aplicativo. Verificado: o contador de reações do pin muda
1.4.16
Alterado
  • Os campos de entrada agora têm a mesma aparência em todos os lugares — com contorno. Antes, nas telas de configurações o campo era um retângulo cinza preenchido e nos diálogos, com contorno. O contorno também destaca o campo em vermelho se o valor não serve, o que o estilo preenchido não fazia
1.4.15
Adicionado
  • Configurações de curtidas em uma tela própria: o botão «Configurações de curtidas» na seção Audiência. Escolha quem curtir — por palavras-chave ou pelos pins de contas concorrentes — e defina o ritmo: curtidas por dia, pausa entre curtidas, curtidas por lote e intervalo entre lotes
  • Curtidas nas estatísticas: o cartão da tela inicial agora tem sua própria célula «Curtidas»
  • Tema escuro: o aplicativo segue o modo escuro do telefone
Alterado
  • O interruptor «Curtidas automáticas» voltou à tela inicial, ao lado de postagem, seguidores e deixados de seguir
  • Sistema de design unificado: todas as telas usam cores, tamanhos e fontes de configurações comuns
Corrigido
  • O botão de salvar não podia ser tocado nas telas de curtidas, seguidores e deixados de seguir: a borda inferior ficava sob a barra de gestos
  • O cabeçalho da tela «Configurações de postagem» rolava junto com o conteúdo
  • A seta de voltar não funcionava em nenhuma tela
  • Os botões «Confirmar» e «Adicionar da galeria» quebravam em duas linhas
1.4.14
Corrigido
  • Servidor de licenças acessível novamente: desde 1º de setembro o certificado de pinpilot.ru era emitido por uma nova cadeia enquanto o app fixava a antiga, e a verificação de licença e do período de teste falhava. Pins atualizados
1.4.9
Alterado
  • Modelo IA local — gerar spintax de título, descrição e hashtags agora funciona offline, no dispositivo. O usuário decide se baixa o modelo (~400 MB), botão «Modelo IA local» na tela principal. Os cartões «Título», «Descrição» e «Hashtags» agora têm campos «Tema» + botões «Gerar»
  • Provedores IA na nuvem eliminados — Groq, Gemini, proxy-VPN, registro de chaves. O APK é mais leve, o código mais simples, sem proxy para spintax
  • Ajuda da tela principal e de ajustes atualizada para o modelo local
  • Botões IA nas coleções ocultos — filtro por visão e geração de variantes fora da interface
  • Versão: 1.4.8 → 1.4.9 (código 42)
1.4.8
Corrigido
  • Cálculo vs publicação — «Aplicar aos fluxos» escrevia todo o resto da coleção no limite do fluxo em vez da parte dividida. Agora escreve as partes do cálculo
  • Divisão do resto diário — o resto se dividia igual entre todos os fluxos ativos, mesmo com zero posts prontos. Agora divide conforme posts prontos, fluxos vazios são pulados
  • Duplicados no log — o carregamento da conta disparava duas vezes na inicialização e cada entrada saía dobrada. Chamadas sobrando eliminadas, o diário filtra repetições seguidas
  • Isolamento de contas — a contagem de prontos caía na coleção de outra conta com o mesmo id. Fallback eliminado, uma regra: a coleção é da conta do seu fluxo
Alterado
  • Rótulo do cálculo: «Limite diário»
  • Versão: 1.4.7 → 1.4.8 (código 41)
1.4.7
Corrigido
  • A compra falhava — o webhook do CryptoBot tirava payload.payload como UUID, mas é um JSON {"order_id":"..."}: o pedido nunca se achava e os pagamentos ficavam pendentes. Agora parseia o JSON
  • Os unfollows pulavam todo mundo — sem campos de reciprocidade, todos eram tratados como mútuos e com «só não recíprocos» zerava. Agora o padrão é false
  • Formulário de compra: guarda contra SecurityError no modo privado do Safari, validação de email/apelido, manejo correto de 429 e rede, restauração do botão
Alterado
  • YooKassa: log detalhado do webhook, validação de email/apelido no servidor
  • Versão: 1.4.6 → 1.4.7 (código 40)
1.4.6
Alterado
  • Release técnico: data do changelog atualizada
1.4.5
Corrigido
  • Duplicados na autopublicação — tirado o auto-reset de usados com prontos zerados (devolvia pins já publicados). Agora só mostra o diagnóstico por fluxo
1.4.4
Corrigido
  • Trial: o aviso de «último dia» ficava após vencer e voltava o acesso total — agora daysLeft <=0 é tratado como vencido sem importar o flag, o started_at vazio não se salva, rechecagem no onResume
1.4.3
Corrigido
  • Diagnóstico de «sem posts»: com prontos zerados no «Calcular» agora mostra o detalhe por fluxo (fontes, total/não usados por coleção) com dicas
1.4.2
Corrigido
  • Unfollows de mútuos: getFollowing não via o flag mútuo e tratava todo mundo como não recíproco — agora sem campo explícito são mútuos e pulados
  • Publicação «sem posts» e imagens perdidas em erros: as falhas revertem a reserva, as coleções travadas se recuperam sozinhas ao calcular
Adicionado
  • Idioma espanhol (fase A): criado res/values-es/strings.xml (637 textos), troca automática pelo idioma do sistema
1.4.1
Adicionado
  • Assinatura release própria (certificado PinPilot): o app agora se assina com a chave release do projeto, não com o certificado debug — auto-update correto e melhor reputação no Play Protect
  • Tela de ajuda contra o bloqueio do Play Protect: antes de instalar sai um diálogo com instruções
Corrigido
  • O cheque de updates devolvia 500: um BOM no update_config.json quebrava o JSON; leitura em utf-8-sig
1.4.0
Adicionado
  • A automação continua mesmo minimizando o app ou bloqueando a tela: na barra aparece uma notificação com botão de parar
  • Videoplataformas: busque vídeos por palavra-chave — crie uma coleção de vídeos com um tema, sem link
  • Videoplataformas: diálogo de criar coleção com campo de palavra-chave e dicas
Corrigido
  • Corrigido um erro raro ao iniciar o app sem Internet
  • Corrigida a duplicação de fluxos de autopublicação: não duplicam ao reentrar nos ajustes
  • A estatística agora é por conta: ao trocar de perfil só se veem os números da conta atual
Alterado
  • A automação continua mesmo minimizando o app ou bloqueando a tela: na barra aparece uma notificação com botão de parar
1.3.20
Corrigido
  • Pins duplicados na autopublicação: em createPin, antes da requisição principal, disparava uma cascata v3 de quatro requisições. Duas devolviam um HTTP 200 silencioso com HTML: o Pinterest criava o pin, mas o app não reconhecia o sucesso e criava um segundo pin. Agora há exatamente uma requisição por pin: PinResource para imagens, StoryPinResource para vídeos, fallback WebView só se todas as APIs falharem
Alterado
  • Versão: 1.3.19 → 1.3.20 (código 29)
1.3.19
Corrigido
  • O limite de posts por dia agora é respeitado de verdade: antes, ao delegar intervalos, o limite total se aplicava a uma passada do ciclo e não ao dia — os fluxos publicavam de novo a cada ciclo. Agora o limite é calculado em janela móvel de 24 horas: resto = limite menos posts das últimas 24 horas, dividido entre fluxos ativos. Se acabar o saldo, o ciclo é pulado
Alterado
  • Banco de dados: versão 21 → 22, nova tabela post_log com marcas de cada post para a janela móvel, as antigas se apagam sozinhas
  • Versão: 1.3.18 → 1.3.19 (código 28)
1.3.18
Adicionado
  • Ajuste global de publicação em «Fluxos de autopublicação»: limite total de posts por dia (até 250) para todos os fluxos, sem pôr o limite à mão em cada um
  • Contador «Prontos para publicar»: quantos posts há de verdade preparados nos fluxos ativos (arquivos da galeria + imagens e vídeos não usados)
  • Botão «Calcular»: divide sozinho o limite entre fluxos e pastas, mostra o intervalo entre posts e convida a iniciar a automação
  • Interruptor «Delegar intervalos ao app»: o app põe sozinho limite e intervalos segundo o limite global; os campos de intervalo e limite do fluxo são bloqueados
Alterado
  • O automator considera a delegação: com o ajuste ativo, o limite global se divide igual entre fluxos ativos e o intervalo se calcula sozinho segundo a janela
  • Versão: 1.3.17 → 1.3.18 (código 27)
Corrigido
  • As coleções apagadas não voltam mais: tirada a criação automática da coleção de teste «videotext» a cada início
  • Unfollows de mútuos: com «só não recíprocos» ativo, a reciprocidade sai primeiro da lista de follows, e a rechecagem contra o perfil é conservadora: se o perfil não dá o campo, não deixa de seguir
1.3.17
Adicionado
  • Estatística por conta (base Room): cada conta leva a sua, sem somas alheias
  • Detalhe completo: ao tocar o cartão «Estatística» abre o detalhe por dia (posts/likes/follows/unfollows/erros) e por pastas
Alterado
  • Unfollows de não recíprocos: a reciprocidade se confere no perfil do candidato — os mútuos não são mais removidos
  • Versão: 1.3.16 → 1.3.17 (código 26)
1.3.16
Corrigido
  • Pins duplicados na automação: antes, por cada material o app tentava uma cascata de ~8 variantes de criar o pin. Se uma criava o pin «em silêncio» (HTTP 200 sem dados reconhecidos), a seguinte criava um duplo — risco de ban por spam. Agora só PinResource para imagens, só StoryPinResource para vídeos, e qualquer resposta de sucesso para na hora. Um post = exatamente um pin
  • Pastas sem ID: se a lista não estava fresca ao salvar, a pasta ficava com o nome pelado sem o par id:name → o Pinterest respondia «Board not found». Agora os nomes se cruzam com IDs reais ao salvar
Alterado
  • Versão: 1.3.15 → 1.3.16 (código 25)
1.3.15
Corrigido
  • Pausa noturna sem Internet: cheque de rede antes de cada ciclo — sem conexão (ex. modo avião), o app espera 5 minutos com estado claro em vez de travar horas em silêncio, e segue ao voltar a Internet
  • Animação de números mais lenta: recálculo suave de 1,2–3,2 s (era 0,5–1,6 s)
Alterado
  • Versão: 1.3.14 → 1.3.15 (código 24)
1.3.14
Corrigido
  • A estatística não «pula para baixo» mais: tiradas as disputas em incrementos (sincronização), a migração de arquivos velhos ao máximo e os conflitos de arquivos antigos — os contadores crescem estáveis
  • Estatística por usuário: uma só chave SharedPreferences em vez de arquivos por conta — os números não se perdem ao trocar de conta
  • Pausa após imagem quebrada: se um post falha, o fluxo espera 20 segundos e passa à próxima imagem, sem a demora total de 45–60 minutos
Alterado
  • Versão: 1.3.13 → 1.3.14 (código 23)
1.3.13
Corrigido
  • Pausa após imagem quebrada: se o post falha (imagem danificada, erro de carga ou de criar o pin), o fluxo não espera mais a demora total de 45–60 minutos — pausa de 20 segundos e próxima imagem. A demora total só vai após um post com sucesso
  • Trabalho em fundo congelado: o sistema não dorme mais o processo (Doze) no meio do ciclo — adicionado WakeLock
Adicionado
  • Permissão de trabalho em fundo ao iniciar a automação (exceção de otimização de bateria) — defesa contra a economia agressiva em itel e outros
Alterado
  • Versão: 1.3.12 → 1.3.13 (código 22)
1.3.12
Corrigido
  • Limite de follows: o 401 agora se lê como rate-limit — o ciclo de follows é cortado na hora, sem fallback a WebView nem dezenas de erros no log
  • Padrões conservadores: maxFollowsPerDay = 15 (era 50), pausa entre follows de 60–180 s (era 30–90) — menos risco de bloqueio em trabalho longo
  • Fallback do SessionManager: maxFollows = 15 (era 20)
Alterado
  • Versão: 1.3.11 → 1.3.12 (código 21)
1.3.11
Corrigido
  • Contas duplicadas: a conta agora se identifica pelo id estável do Pinterest (migração BD 17→18) — o login não cria mais cópia, mesmo falhando o nick
  • Uma só conta ativa: ao entrar em outra conta, a velha não fica mais ativa — na nova não saem fluxos, coleções nem ajustes da anterior
  • Autorrefresh de sessão: os cookies autorizados não são mais pisados pela sessão convidada ao renovar — fim dos 401 massivos após 25 minutos
  • Nick confiável: a requisição API tenta ru.pinterest.com se não há csrftoken no www; todas as falhas vão ao log
Alterado
  • Versão: 1.3.10 → 1.3.11 (código 20)
1.3.10
Corrigido
  • Limite de follows do Pinterest: com o limite antibot (HTTP 429) o ciclo para com um aviso em vez de dezenas de erros — a estatística não suja mais
  • Erros de rate-limit de follows não sobem mais o contador de Erros da janela principal
Alterado
  • Versão: 1.3.9 → 1.3.10 (código 19)
1.3.9
Corrigido
  • Contas duplicadas ao reentrar: entrar por «Trocar de conta» não cria mais uma conta vazia se o login difere — a conta se busca por login e cookie de sessão, salvam-se seus fluxos e coleções
  • Prioridade de cookies autorizados: ao renovar, o cookie convidado não pisa mais o autorizado — escolhe-se a sessão com marca de login
  • Publicar pins: criar pins volta a funcionar via PinResource/create/ após reentrar
Alterado
  • Versão: 1.3.8 → 1.3.9 (código 18)
1.3.8
Corrigido
  • O selo «Usado» agora sai em verde no modo destaque — era invisível sobre fundo escuro
  • Follow por WebView com 401: se a API devolve 401, segue por WebView como fallback
  • Follow por WebView: usa-se Handler em vez de view.postDelayed para o WebView headless — postDelayed não funciona sem janela
Adicionado
  • Apagar automático de imagens usadas com o ajuste deleteUsedImages ativo — os arquivos se apagam após publicar
Alterado
  • Versão: 1.3.7 → 1.3.8 (código 17)
1.3.7
Corrigido
  • Videoplataformas: o botão «Minerar mais» no detalhe da coleção já funciona — baixa mais vídeos por palavra-chave
  • Videoplataformas: o botão «Minerar» na lista não se oculta mais — dá para reminerar
  • Mineração desde a lista: para coleções de vídeo roda VideoParser em vez de ImageParser
  • Assinatura do TikTok: tirado «Os vídeos baixam ao dispositivo» — os vídeos se guardam como links
Adicionado
  • Remineração de vídeos: dá para reminerar vídeos com a mesma palavra-chave sem criar coleção nova
Alterado
  • Versão: 1.3.6 → 1.3.7 (código 16)
1.3.6
Adicionado
  • Autorrefresh de sessão: a cada 25 minutos o app renova os cookies em silêncio via WebView — a sessão não vence mais em uma hora
  • Recuperação após falha de sessão: se a automação perde a autorização, primeiro tenta renovar cookies em vez de parar
Corrigido
  • Token CSRF: agora se pega o csrftoken real dos cookies, não um texto aleatório — a API parou de devolver 403 em algumas requisições
Alterado
  • Versão: 1.3.5 → 1.3.6 (código 15)
1.3.5
Corrigido
  • Mineração de pastas: resolveBoardNames não tira mais pastas se os nomes não batem com a API — só um aviso
  • Ordem de pastas: as novas saem no topo da lista ao escolher (por ID, não ao contrário)
  • Fluxos sem pastas: se o fluxo não tem pastas, usa-se a dos ajustes gerais da conta
  • resolveBoardNames: salvamento nome→id desde a resposta API — antes o array ficava vazio
  • Ciclo por username em resolveBoardNames: continue trocado a break se não batem
Alterado
  • resolveBoardNames usa o username real do Pinterest, não o nome da conta no app
  • Versão: 1.3.4 → 1.3.5 (código 14)
1.3.4
Adicionado
  • Mineração de imagens via SearchResource API — mais confiável e mais imagens que o HTML
  • Ícones de editar e apagar nos cartões de coleções — o toque longo não é mais a única via
  • Nome da pasta no cartão do fluxo — «Pasta: Viagens» se vê sem abrir
Alterado
  • Escolher pastas: só se veem os nomes, sem ID numérico
  • Escolher coleção no fluxo: só o nome, sem a palavra-chave entre parênteses
  • Padrões: min.delay 45 min, máx. 60 min, máx. 50 posts
  • Pastas novas no topo da lista
  • Versão: 1.3.3 → 1.3.4 (código 13)
Corrigido
  • Isolamento de contas: as coleções não se misturam mais entre contas
1.3.3
Corrigido
  • O botão «Parar» já funciona — os flags vão direto pelo Intent, sem disputa com a base
  • O app não cai mais ao autorecuperar a automação com os interruptores apagados
Alterado
  • Versão: 1.3.2 → 1.3.3 (código 12)
1.3.2
Corrigido
  • Autorização: o cartaz verde de «Autorizado» não sai mais no login — o app espera um login real, mesmo com cookies velhos
  • Busca de autores para autofollows: reescrita para a API do Pinterest — agora acha 48+ autores por arranque em vez de 0
  • Follow em autores: follow por API confirmado (sucesso código 200)
Alterado
  • Versão: 1.3.1 → 1.3.2
1.2.1
Corrigido
  • Corrigido um erro raro ao iniciar o app sem Internet
1.2
Adicionado
  • Publicar por URL: criar uma coleção com o link de uma página — o parser tira todas as imagens (img src, og:image, twitter:image)
  • Prévia por URL: as imagens baixam com Coil direto do site fonte, sem ocupar memória do dispositivo
  • Links diretos: na autopublicação usa-se a URL da imagem em vez de carga multipart — economia de tráfego e tempo
  • Detecção smart de tipo: as coleções URL mostram o endereço fonte, botão «Minerar mais» para carregar mais, botão «Adicionar da galeria» oculto
1.1.5
Adicionado
  • Formulário de comentários com campo «Assunto»: ao enviar abre o email com dados prontos e o log anexo
  • Log de erros de automação em arquivo: tudo vai a pinflow_log.txt para analisar
Alterado
  • Envio de avaliações por email a support@pinpilot.ru (em vez de mandar ao servidor)
  • Os erros de automação agora se guardam em arquivo — não se perdem ao reiniciar
1.1.4
Corrigido
  • Apagar imagens usadas: com o ajuste ativo se apagam arquivo e registro da base (sem células vazias)
  • O diálogo de pastas não salta mais sozinho ao entrar nos ajustes
  • Um clipe no campo de pastas abre a seleção das já carregadas
  • Log de erros de createPin para caçar requisições travadas
  • Banner de cookies oculto por padrão, sai só na primeira visita
  • Menu burger móvel: cruz ao abrir, texto branco do botão
Adicionado
  • Botão «Escolher tudo» nas coleções: escolhe todas as imagens de uma vez
  • Vista de uma coluna: as imagens enchem toda a largura com proporções
  • Botão «Recusar» no banner de cookies
  • Botão «Comprar» dentro do menu móvel
  • Página de novidades para seguir updates
Alterado
  • Apagado demo.mp4 (6 MB) — sem uso
  • Senha admin reforçada
  • Chaves API no .env (chmod 600)
  • Rate limiting 30 req/min nos endpoints de pagamento
  • bcrypt para senhas de parceiros
  • Logo: png (876KB) → WebP (79KB)
  • OG-imagem 1200×630, canonical na página de parceiros
  • gzip ativo no nginx
1.1.3
Corrigido
  • ProGuard R8: tirado `-repackageclasses a`, regras `-keep` adicionadas
  • Pins de vídeo: StoryPinResource/create/ com JSON story_pin completo
  • Pastas: autofix de IDs ao iniciar
  • Dashboard de parceiros: fix do bug que fechava a base
Alterado
  • Códigos de parceiros em minúsculas
  • Pagamento mínimo: 2,000 ₽
  • APK v1.1.3 (código 5) subido ao servidor
1.1.2
Corrigido
  • getFollowing: scraping HTML → API UserFollowingResource/get/
  • unfollowUser: corte após a primeira requisição com sucesso — ciclo 9× mais rápido
  • Instância paralela: guarda contra duas instâncias
  • canvas Aspect Ratio: bug de locale (vírgula e ponto)
1.1.1
Corrigido
  • O limite diário de unfollows (maxUnfollowsPerDay) agora funciona de verdade
  • Cartão de estatística: os contadores não estouram com 4+ dígitos
Adicionado
  • Dicas de requisitos de fotos ao criar uma coleção
1.1
Adicionado
  • Autofollows e unfollows via API interna do Pinterest
  • Follow em seguidores da concorrência
  • Unfollows em massa com intervalo próprio
  • Coleções de vídeo
  • Ícones próprios do app
  • Yandex Metrica + Google Analytics
  • Pagamento via YooKassa (cartões, SBP, SberPay)
  • sitemap.xml, robots.txt
Alterado
  • O app se chama PinPilot
  • BD Room: versão 6 → 10
  • Pagamento: Prodamus → YooKassa
1.0
Adicionado
  • Primeiro release: autopublicação, likes, mineração de conteúdo
  • Spintax para títulos e descrições
  • Coleções de imagens (mineração + galeria)
  • Gestão de pastas
  • Autorização por cookies no WebView
  • Licenças com pagamento via CryptoBot