DEV Community

Jhonathan Paulo Banczek
Jhonathan Paulo Banczek

Posted on • Edited on

Deletando tweets antigos com Python 3

Estava em busca de alguma ferramenta para deletar tweets, procurei e usei vários serviços (online) que conectavam a API do Twitter para fazer isso, porém de maneira limitada, ou em alguns casos era necessário pagar.

Achei uma lib escrita em Python delete-tweets

Uso

Parte chata: você terá que se registrar na api do Twitter, solicitar acesso para criar app... Eu tive que enviar alguns emails explicando o que eu estava querendo fazer, depois de algum tempo o Twitter liberou meu acesso a API.

Nada melhor que a própria documentação explicando como fazer isso:
Get started with the Twitter developer platform

Basicamente o roteiro é o seguinte:

  1. Solicite e receba aprovação para uma conta de desenvolvedor do Twitter.

  2. Crie um aplicativo (app) com sua conta de desenvolvedor do Twitter.

  3. Gere as chaves de API do seu aplicativo e os tokens de acesso do usuário.

  4. As chaves/tokens são exibidos na página do seu app:
    tokens...
    (obviamente você não deve deixar essas informações públicas!!)

  5. Vamos apagar os tweets usando para isso os dados baixados da conta, acesse seu twitter e solicite seus dados.
    no twitter...

Depois de solicitar seus dados, descompacte e copie o arquivo "tweets.js" para um local. (Todos os seus tweets estão dentro dele.)
no seu diretório...

Observação: Estou usando Python 3 no Linux/Ubuntu 18.04.

Instale via pip o delete-tweets com o seguinte comando:

dev@jhoonb:~$ pip3 install delete-tweets 

Exporte as chaves para seu terminal, com os comandos (execute):

dev@jhoonb:~$ export TWITTER_CONSUMER_KEY="seu_TWITTER_CONSUMER_KEY"

dev@jhoonb:~$ export TWITTER_CONSUMER_SECRET="seu_TWITTER_CONSUMER_SECRET"

dev@jhoonb:~$ export TWITTER_ACCESS_TOKEN="seu_TWITTER_ACCESS_TOKEN"

dev@jhoonb:~$ export TWITTER_ACCESS_TOKEN_SECRET="seu_TWITTER_ACCESS_TOKEN_SECRET"

Agora vamos executar passando por parâmetro as seguintes informações:

  • delete tweets até data...

  • e o arquivo que baixamos do twitter

Veja o exemplo, no terminal digite:
(Esse comando irá apagar tweet por tweet até o dia 01-01-2018, o
ID dos tweets se encontra no arquivo tweet.js)

dev@jhoonb:~$ delete-tweets --until 2018-01-01 tweet.js

Se o comando acima retornar

dev@jhoonb:~$ delete-tweets: comando não encontrado

Você precisa escrever o local onde o delete-tweet foi salvo,
no meu caso, como uso o .asdf para gerenciar meu runtime, eu tive que executar assim (porque o delete-tweet não estava no meu PATH):

dev@jhoonb:~$ /home/jhoonb/.asdf/installs/python/3.7.4/bin/delete-tweets --until 2018-01-01 tweet.js

Lembre de executar o comando acima na pasta onde você salvou o arquivo tweet.js

Feito!

Deletei meus tweets antigos!


  • Demorou quase 24 horas para deletar todos os tweets, afinal eu tinha mais de 76K.

Em certos momentos tive que matar o programa e continuar depois...
Caso faça isso (e não queira que o programa verifique novamente os tweets ja deletados) você pode editar o arquivo tweet.js e apagar os já deletados. Lembre de salvar qual foi o último ID deletado, procure ele no arquivo e exclua os tweets acima dele.

Observe com muita atenção a edição desse arquivo, use um editor como Sublime Text 3 para marcar(Edit > Mark > Set Mark) o ponto onde encontrou o ID, depois vá até a linha do tweet limite e selecione usando Edit > Mark > Select to Mark, quando a seleção for feita delete o trecho.

Tentei editar esse arquivo com o VS Code o editor que estou usando no momento, contudo ele se apresentou muito lento para efetuar esse processo. O Sublime Text fez o serviço sem travar.

Top comments (0)