Home Bot do PromoPassagens automático e grátis!
Post
Cancelar

Bot do PromoPassagens automático e grátis!

Automação do canal PromoPassagens com posts de lista do Twitter.

O canal PromoPassagens reúne as postagens de uma lista do Twitter em um canal do Telegram de forma automática. Os posts são formatados para um padrão e as cidades recebem #hashtags para facilitar buscas.

Link do repositório: github.com/GabrielRF/PromoPassagens

Funcionamento

O código e a automação são hospedados no GitHub e não dependem de nenhum serviço externo. A cada quinze minutos é executada uma ação do GitHub que se encarrega de todo o processo automaticamente. O repositório pode ser público ou privado, com a diferença que repositórios privados possuem uma limitação na quantidade de execuções. Para mais informações, verifique aqui as condições dos planos.

Configuração

Ação

A ação é definida no arquivo .github/workflows/cron.yml.

  • workflow_dispatch permite que a ação seja executada manualmente caso necessário, sem precisar ficar aguardando o intervalo;
  • cron: '*/15 * * * *' define que a ação deve ser executada a cada quinze minutos. Não recomendo usar intervalos menores que 10 minutos;
  • actions/checkout@v2 faz a ação obter o código do repositório;
  • actions/setup-python@v2 instala python na máquina que executa a ação;
  • run: pip install -r requirements.txt instala as bibliotecas necessárias para o script python funcionar;
  • run: python promopassagens.py executa o script que faz todo o processo;
    • env permite que o script visualize as variáveis de ambiente definidas como secrets.

Arquivos de configuração

As cidades são listadas em cities.txt. Cada cidade deve ocupar uma linha.

O arquivo blocklist.txt possui uma lista de palavras que fazem a postagem ser ignorada. Basta uma delas estar presente para que a mensagem não vá para o canal.

Variáveis de ambiente

Nas configurações do repositório acesse Secrets > Actions. Crie as variáveis:

  • BOT_TOKEN: Token do bot que enviará as mensagens no canal. Fornecido pelo @BotFather;
  • DESTINATION: Canal público que receberá as mensagens. Exemplo: PromoPassagens (não use @!);
  • TWITTER_ACCESS_SECRET: Valor fornecido pelo Twitter;
  • TWITTER_ACCESS_TOKEN: Valor fornecido pelo Twitter;
  • TWITTER_CONSUMER_KEY: Valor fornecido pelo Twitter;
  • TWITTER_CONSUMER_SECRET: Valor fornecido pelo Twitter;
  • TWITTER_OWNER: Perfil criador da lista no Twitter. Exemplo: GabRF;
  • TWITTER_SLUG: Slug da lista no Twitter. Exemplo: canal-promopassagens.

Limitação

Infelizmente não é possível usar esta solução em canais privados. Toda sugestão é bem vinda!

Esta postagem está licenciada sob CC BY 4.0 pelo autor.