twitter-bot
April 2, 2021 · View on GitHub
Tweete les mots du slip de la langue française du slip. Largement inspiré par le @botducul (lexique identique, mais code en Python) et le @botsupervnr.
Poste sur @botduslip.
Stocke la position du dernier mot tweeté dans une base Redis.
Environnement de développement
Pré-requis
Installer Redis pour le stockage de dernier mot tweeté.
Créer un compte twitter développeur et créer une application depuis https://developer.twitter.com/en/portal/projects-and-apps.
Générer ensuite l'API key et le secret associé ainsi qu'un access token et le secret associé (voir configuration ci-dessous).
Configuration
Pour l'authentification Twitter, créer un fichier .env contenant les variables d'environnement suivantes :
REDIS_URL=redis://localhost:6379/0
CONSUMER_KEY=### API KEY
CONSUMER_SECRET=### API KEY SECRET
ACCESS_KEY=### ACCESS TOKEN
ACCESS_SECRET=### ACCESS TOKEN SECRET
Le script charge automatiquement le fichier s'il est présent sauf si les variables d'environnement sont déjà définies (utilisation de python dotenv).
Environnement de production
Pré-requis
Installer le package heroku
sudo snap install --classic heroku
Déploiement initial
Pour déployer la 1ère fois l'application sur Heroku depuis Ubuntu, se placer dans le répertoire ou a été cloné le dépot git et lancer les commandes suivantes :
heroku login
heroku apps:create botduslip
heroku addons:create heroku-redis:hobby-dev -a botduslip
git push heroku main
heroku ps:scale clock=1
Pour voir les logs :
heroku logs --tail --source app --dyno clock
Pour savoir quelle est la dernière position de mot dans la base Redis :
export REDIS_URL=$(heroku config -a botduslip | grep REDIS_URL | awk '{print \$2}')
redis-cli -u $REDIS_URL get twitter-bot.last_pos
Déploiements suivants
Pour mettre à jour l'application sur Heroku :
heroku ps:scale clock=0
git push heroku main
heroku ps:scale clock=1