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_dispatchpermite 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@v2faz a ação obter o código do repositório;actions/setup-python@v2instala python na máquina que executa a ação;run: pip install -r requirements.txtinstala as bibliotecas necessárias para o script python funcionar;run: python promopassagens.pyexecuta o script que faz todo o processo;envpermite 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!
