Deletando tweets antigos com Python 3
Tags: python, twitter
Published: 2019-12-04 01:17:01

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](https://github.com/koenrh/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](https://developer.twitter.com/en/docs/basics/getting-started)

### Basicamente o roteiro é o seguinte: ###
 
1. [Solicite e receba aprovação para uma conta de desenvolvedor do Twitter.](https://developer.twitter.com/en/docs/basics/developer-portal/overview)

2. [Crie um aplicativo (app) com sua conta de desenvolvedor do Twitter.](https://developer.twitter.com/en/docs/basics/apps/overview)

3. [Gere as *chaves* de API do seu aplicativo e os *tokens* de acesso do usuário.](https://developer.twitter.com/en/docs/basics/apps/guides/the-app-management-dashboard)

4. As chaves/tokens são exibidos na página do seu *app*:
![tokens...](https://66.media.tumblr.com/88b2e87b54acb5ed1e1295abb9dcae52/467504997e6d9535-a0/s1280x1920/62ec55903d38f1d9015c8600d4e345aaaeb1cbc7.jpg)
(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.](https://twitter.com/settings/your_twitter_data) 
![no twitter...](https://66.media.tumblr.com/97fa0ef1150e4965b69992c9b446cfbc/745c725f5550a24f-40/s640x960/914a68c37da79cd08610fc647c381b2165fb3530.jpg)

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...](https://66.media.tumblr.com/3c0c623db3c74c589f45b6308710d61d/92d9161bc86137b9-ed/s250x400/d4859b08ba7ffc3ee65617e966a06638b1bb85ba.jpg)


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

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

```console
dev@jhoonb:~$ pip3 install delete-tweets 
```

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

```console
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)

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

Se o comando acima retornar 

```console
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*](https://github.com/asdf-vm/asdf) para gerenciar meu *runtime*, eu tive que executar assim (porque o **delete-tweet** não estava no meu *PATH*): 

```console
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**](https://www.sublimetext.com/) 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**](https://code.visualstudio.com/) 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.