Como Comparar Dois Arquivos de Exportação do Mastodon em Diferentes Datas
🔍 WiseChecker

Como Comparar Dois Arquivos de Exportação do Mastodon em Diferentes Datas

Você pode ter baixado seu arquivo de exportação do Mastodon duas vezes — uma hoje e outra há um mês — e quer ver o que mudou. Os arquivos do Mastodon contêm arquivos JSON separados para seguidores, silenciamentos, bloqueios, bloqueios de domínio, favoritos e listas. Comparar dois arquivos manualmente é tedioso e sujeito a erros. Este artigo explica como usar uma ferramenta de diff simples na linha de comando e um método com planilhas para identificar exatamente quais contas você seguiu, silenciou ou bloqueou entre duas datas de exportação.

Principais Conclusões: Comparando Arquivos de Exportação do Mastodon com Diff e Planilhas

  • Comando diff no Unix ou WSL: A maneira mais rápida de comparar duas pastas de arquivo e ver contas adicionadas ou removidas em cada arquivo JSON.
  • Importar JSON para Excel ou Google Sheets: Use Power Query ou IMPORTDATA para carregar o arquivo outbox.json e filtrar por type e data de published para encontrar novos seguidores ou bloqueios.
  • Ordenar e comparar identificadores únicos: Extraia o campo actor ou object de cada atividade para obter a URI exata da conta que mudou.

ADVERTISEMENT

Por que Comparar Dois Arquivos de Exportação do Mastodon

As exportações do Mastodon são instantâneos JSON da atividade da sua conta. Cada arquivo inclui um arquivo outbox.json que lista todas as ações que você realizou — seguidores, deixar de seguir, impulsionamentos, favoritos, silenciamentos, bloqueios e alterações em listas — em ordem cronológica. O arquivo actor.json contém suas informações de perfil. Outros arquivos, como lists.json e bookmarks.json, armazenam instantâneos estáticos dessas coleções.

Quando você exporta seu arquivo hoje e novamente em duas semanas, o novo arquivo conterá todos os dados antigos mais qualquer nova atividade. Percorrer manualmente milhares de linhas de JSON é impraticável. Um diff revela exatamente o que mudou entre os dois instantâneos sem ler cada linha.

Razões comuns para comparar arquivos incluem:

  • Verificar se uma migração de seguidores transferiu todos os seguidores corretamente.
  • Confirmar que você silenciou ou bloqueou uma conta específica com sucesso.
  • Auditar sua própria atividade para fins de privacidade de dados.
  • Confirmar que as associações a listas foram atualizadas após uma limpeza.

Pré-requisitos para Comparar Arquivos do Mastodon

Antes de começar, você precisa de dois arquivos de exportação do Mastodon de datas diferentes. Para criar um arquivo:

  1. Acesse sua instância do Mastodon
    Abra a interface web do Mastodon e vá em Preferências > Importar e exportar > Exportar.
  2. Baixe o arquivo
    Clique no botão Baixar arquivo. O Mastodon gera um arquivo ZIP contendo vários arquivos JSON e suas mídias enviadas.
  3. Repita após um intervalo de tempo
    Aguarde pelo menos um dia ou realize algumas ações (seguir, deixar de seguir, silenciar, bloquear). Baixe um segundo arquivo.

Você também precisa de uma ferramenta para extrair arquivos ZIP. No Windows, clique com o botão direito e escolha Extrair Tudo. No macOS ou Linux, clique duas vezes ou use o comando unzip. Para o método de linha de comando, você precisa de um terminal com diff instalado — isso já vem embutido no macOS e Linux, e está disponível no Windows via WSL ou Git Bash.

ADVERTISEMENT

Método 1: Diff de Pastas de Arquivo via Linha de Comando

Este método compara toda a estrutura de pastas de dois arquivos e mostra quais arquivos diferem e quais linhas mudaram dentro de cada arquivo JSON.

  1. Extraia ambos os arquivos em pastas separadas
    Nomeie as pastas como arquivo_antigo e arquivo_novo para identificá-las facilmente.
  2. Abra um terminal no diretório pai
    No Windows com WSL, digite wsl no caminho da pasta. No macOS ou Linux, abra o Terminal e navegue até a pasta que contém as duas pastas de arquivo.
  3. Execute o comando diff recursivo
    Digite: diff -r arquivo_antigo arquivo_novo
    A flag -r compara subdiretórios recursivamente. A saída mostra as linhas que diferem entre os arquivos correspondentes.
  4. Interprete a saída
    Linhas prefixadas com > existem apenas no arquivo mais novo. Linhas prefixadas com < existem apenas no arquivo mais antigo. Para arquivos JSON, o diff mostra os números de linha exatos e o conteúdo que mudou.
  5. Filtrar por tipos específicos de atividade
    Se você quiser ver apenas novos seguidores, direcione a saída do diff pelo grep: diff -r arquivo_antigo arquivo_novo | grep "Follow". Substitua Follow por Block, Mute ou Undo para focar em ações específicas.

O método de linha de comando é rápido e funciona em qualquer tipo de arquivo. No entanto, a saída pode ser longa se houver muitas alterações. Você pode redirecionar a saída para um arquivo com diff -r arquivo_antigo arquivo_novo > alteracoes.txt e revisá-la no seu próprio ritmo.

Método 2: Comparação de Outbox.json com Planilhas

Se você prefere uma abordagem visual, importe o arquivo outbox.json de cada arquivo para uma planilha e use filtros para encontrar adições ou exclusões.

  1. Extraia o arquivo outbox.json
    De cada arquivo ZIP, copie o arquivo outbox.json para uma pasta de trabalho. Renomeie um para outbox_antigo.json e o outro para outbox_novo.json.
  2. Importe para o Excel usando Power Query
    No Excel, vá em Dados > Obter Dados > De Arquivo > De JSON. Selecione outbox_antigo.json. No editor Power Query, expanda a lista orderedItems. Carregue os dados para uma planilha. Repita para outbox_novo.json em uma planilha separada.
  3. Importe para o Google Sheets usando IMPORTDATA
    No Google Sheets, use a fórmula =IMPORTDATA("file:///caminho/para/outbox_antigo.json"). Isso funciona apenas se o arquivo estiver hospedado em um servidor web. Para arquivos locais, faça upload do JSON para o Google Drive e use =IMPORTDATA com o link de compartilhamento do Drive.
  4. Adicione uma coluna auxiliar para identificar a origem
    Em ambas as planilhas, adicione uma coluna chamada Arquivo e preencha com Antigo ou Novo.
  5. Combine ambas as tabelas e encontre diferenças
    Copie todas as linhas da planilha Novo e cole abaixo da planilha Antigo. Selecione todos os dados e vá em Dados > Remover Duplicatas. Marque a coluna que contém o identificador único da atividade — geralmente o campo id ou object. As linhas que permanecerem após a remoção de duplicatas são as atividades que existem em apenas um arquivo.

Este método fornece uma tabela limpa do que mudou. Você pode ordenar por type para ver apenas Seguidores ou Bloqueios. Também pode filtrar pela data de published para ver atividades dentro de um intervalo de tempo específico.

ADVERTISEMENT

Problemas Comuns ao Comparar Arquivos do Mastodon

Diff Mostra Alterações em Arquivos de Mídia que Não São Relevantes

Os arquivos do Mastodon incluem arquivos de mídia, como fotos de perfil e imagens de cabeçalho. Se você mudou seu avatar entre as exportações, o diff marcará esse arquivo como diferente. Para ignorar arquivos de mídia, execute o diff com a flag de exclusão -x: diff -r arquivo_antigo arquivo_novo -x "jpg" -x "png" -x "gif". Isso ignora arquivos de imagem e foca nos dados JSON.

Outbox.json Contém Atividades Duplicadas

O Mastodon às vezes registra a mesma atividade várias vezes, especialmente após uma migração de seguidores ou um novo seguir. Ao usar o método de planilha, remova duplicatas com base no campo id antes de comparar. No Excel, use Dados > Remover Duplicatas e selecione apenas a coluna id.

Estrutura JSON Difere entre Versões do Mastodon

Versões antigas do Mastodon (3.x) exportam um array orderedItems plano. Versões mais novas (4.x) podem incluir objetos aninhados. Se o diff mostrar blocos inteiros de linhas adicionadas ou removidas, a própria estrutura JSON mudou. Nesse caso, foque em campos específicos como type e object em vez de comparar o arquivo inteiro.

URIs de Conta Não Correspondem Devido à Migração de Instância

Se você moveu sua conta para uma instância diferente entre as exportações, o campo actor em atividades antigas aponta para sua instância antiga, enquanto atividades novas apontam para a nova instância. Um diff direto marcará cada atividade como alterada. Para comparar de forma significativa, extraia apenas o campo object (a URI da conta alvo) e compare-os separadamente.

Item Diff via Linha de Comando Método com Planilha
Tempo de configuração Menos de 1 minuto após extração 5-10 minutos para importar JSON
Requer software Terminal com diff (embutido no macOS/Linux, WSL no Windows) Excel ou Google Sheets
Lida com arquivos grandes Sim, processa milhares de linhas rapidamente Pode ficar lento com mais de 10.000 linhas
Filtra por tipo de atividade Via grep ou awk Via filtros da planilha
Saída visual Baseada em texto, colorida com colordiff Tabular, fácil de ordenar e filtrar
Lida com arquivos de mídia Sim, mas pode ser excluído Não se aplica — foca apenas em JSON

Agora você tem dois métodos confiáveis para comparar arquivos de exportação do Mastodon de diferentes datas. Use o diff via linha de comando para uma varredura rápida de todas as alterações, ou use o método com planilha para uma auditoria detalhada de seguidores, silenciamentos e bloqueios. Após encontrar as diferenças, você pode verificar os resultados da limpeza ou migração da sua conta. Como dica avançada, automatize o diff criando um script de shell que executa diff -r toda semana e envia a saída por e-mail — isso fornece um registro contínuo de alterações da sua atividade no Mastodon.

ADVERTISEMENT