Ce projet a été fait dans le cadre de THP. Il permet d'utiliser nos compétences acquises au cours des derniers jours : écriture d'objet dans des fichiers (ici en JSON), utilisation de gem pour écrire un mail avec GMail, pour utliser Twitter, pour débugguer...
Une fois le projet clôné, faire un bundle install
Pacôme P. a travaillé sur le scrapper et la partie twitter.
Cyril M. a participé au scrapper et mis en place la partie mailer
Il y a trois grandes fonctions utilisées dans ce projet :
- Scrapper les informations de trois départements et enregistrer les données en JSON (dossier scrapper)
- Lire les données en JSON et envoyer un mail aux adresses mails du fichier (dossier mailer)
- Lire les données en JSON, rechercher les comptes Twitter des mairies, le renseigner dans le fichier JSON et les suivre sur twitter (dossier twitter)
Un quatrième dossier nommé database permet de ranger les fichiers de données, qui seront ensuite lus par les différents programmes.
Il est possible de modifier le nom du fichier qui sera enregistré dans le dossier database. Pour cela, modifier la constante SELECT_FILE.
Exception : Si une page est down, l'exception est normalement prise en compte.
Résultat : A titre d'exemple, les résultats ont été mis dans le fichier database/data_result.json.
- Rester à la racine du projet (important pour le bon enregistrement du fichier !)
- Lancer le programme en ruby :
ruby scrapper/townhalls_scrapper.rb - Patienter
- Patienter si nécessaire, l'opération peut prendre plusieurs minutes
- Le fichier a été enregistré dans le dossier database
Il est possible de modifier le fichier qui sera lu dans le dossier database. Pour cela, modifier la constante SELECT_FILE.
Gestion des identifiants : un fichier .env est invoqué dans le programme. Le placer à la racine du projet. Celui-ci doit contenir une constante GMAIL_EMAIL et une autre GMAIL_MDP, correspondant respectivement à l'adresse mail et au mot de passe de votre compte GMail. Pour plus de détail sur dotenv, voir ici.
Prénom de l'élève : Vous pouvez adapter le nom de l'élève en fonction de l'adresse mail d'envoie utilisée en modifiant la constante NAME_OF_SENDER
Test : Par défaut, le fichier JSON lu sera un jeu de donnée de test. Les mails seront envoyés sur l'adresse yopmail [email protected]. Pour utiliser le fichier du scrapper, coordonner la constante SELECT_FILE de ces deux fichiers.
- Rester à la racine du projet (important pour le bon enregistrement du fichier !)
- Lancer le programme en ruby :
ruby mailer/townhalls_mailer.rb - Patienter
- Patienter encore et toujours
- Les mails ont été envoyés
Il est possible de modifier le fichier qui sera lu dans le dossier database. Pour cela, modifier la constante SELECT_FILE.
Analyse du JSON : le fichier choisi JSON dans database est analysé et est transformé en objet ruby pour ensuite pouvoir récupérer les données qu'il contient, notamment le nom de la mairie.
Handle twitter : le nom de la mairie est recherché sur twitter ensuite le identifiant de l'utilisateur est récupéré pour être ajouté à un nouveau fichier JSON dans lequel on retrouve les données de départ, à savoir : le nome de la mairie, le département, l'adresse email et maintenant
l'identifiant de l'utilisateur. Pour finir, l'ID nous permet ensuite de suivre l'utilisateur avec à ce compte twitter : https://twitter.com/Itsme_Imadev (Renommé 'Apprendre à coder' pour l'occas)
- Rester à la racine du projet (important pour le bon enregistrement du fichier !)
- Vous si vous souhaitez vraiment lancer le programme et follow des gens avec votre twitter alors rajoutez les ID et API twitter de votre code, pour vous simplifiez la tache, copiez/collez ceci, suivi de vos données :
TWITTER_API_KEY =
TWITTER_API_SECRET =
TWITTER_ACCESS_TOKEN =
TWITTER_ACCESS_TOKEN_SECRET =
- Lancer le programme en ruby :
ruby twitter/townhalls_adder_to_db.rb - Patientez, encore un peu
- Les ID des utilisateur sont ajoutés, vous pouvez vérifier le fichier dans
ruby database/le nom du fichier séléctionné avec SELECT_FILE=>ruby database/townhalls_exemple.json - Il y a également un fichier pour suivre les utilisateurs sur twitter que l'on a récupéré dans le tableau, parce que c'est quand même cool de se servir des infos qu'on a trouvé ! Pour le fichier qui permet de follow, les étapes sont les mêmes, le fichier s'appelle :
townhalls_follower.rb - Et quand vous aurez rentré toutes vos données perso, une fois le programme lancé, avoir patienté la fin, faite donc un tour sur votre compte twitter et comme par magie vous suivais des nouvelles personnes que vous ne connaissais même pas !
Les Gems utilisées sont les suivantes :
- gem 'pry' : utilisée pour le débugage
- gem 'twitter' : utilisée pour accéder à Twitter
- gem 'nokogiri' : utilisée pour parser le site
- gem 'gmail' : utlisée pour accéder à Gmail
- gem 'dotenv' : utilisée pour la gestion des identifiants
- gem 'json' : utilisée pour l'enregistrement des datas
- Les datas sur les mairies des trois départements ont été scrappées.
- La fonction d'envoie de mail a été testée avec des données similaires à la prod.
- Les "comptes twitter des mairies" ont été recherchés sur twitter, renseignés dans un JSON et suivis également. (twitter : https://twitter.com/Itsme_Imadev)
Bon courage et merci pour la correction :)