DEV Community

Jhonathan Paulo Banczek
Jhonathan Paulo Banczek

Posted on • Edited on

1

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.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay