{"id":22873153,"url":"https://github.com/rezemika/pymeteo-irc","last_synced_at":"2025-03-31T12:22:17.801Z","repository":{"id":151438603,"uuid":"72281867","full_name":"rezemika/PyMeteo-IRC","owner":"rezemika","description":"Un bot IRC codé en Python, permettant d'afficher la météo et de gérer un \"concours de mauvais temps\".","archived":false,"fork":false,"pushed_at":"2017-04-02T21:24:22.000Z","size":35,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T18:01:59.161Z","etag":null,"topics":["francais","irc-bot","python","python3","weather"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rezemika.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-10-29T11:51:52.000Z","updated_at":"2022-09-14T23:45:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"ad5ad2ff-2046-407c-9a95-91306dcb5dec","html_url":"https://github.com/rezemika/PyMeteo-IRC","commit_stats":{"total_commits":18,"total_committers":2,"mean_commits":9.0,"dds":"0.11111111111111116","last_synced_commit":"fa56eb966d82531846c0808e282efd7ab78ea416"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezemika%2FPyMeteo-IRC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezemika%2FPyMeteo-IRC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezemika%2FPyMeteo-IRC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rezemika%2FPyMeteo-IRC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rezemika","download_url":"https://codeload.github.com/rezemika/PyMeteo-IRC/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246465537,"owners_count":20781976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["francais","irc-bot","python","python3","weather"],"created_at":"2024-12-13T14:17:37.768Z","updated_at":"2025-03-31T12:22:17.775Z","avatar_url":"https://github.com/rezemika.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyMeteo-IRC\nUn bot IRC codé en Python, permettant d'afficher la météo et de gérer un \"concours de mauvais temps\".\n\n## Présentation\nPyMeteo est un bot IRC fonctionnant avec Python 3. Il peut être configuré grâce à un fichier config.cfg, contenant la configuration générale du bot, la liste des villes et des personnes \"inscrites\" au concours, ainsi que les traductions des expressions météos. Il contient également un fichier fonctions.py, qui doit être dans le même dossier que le fichier principal, et qui contient les fonctions en relation directe avec l'API météorologique. Il affiche des messages de statut sur le terminal qui l'exécute, permettant de connaître le statut du bot sans être connecté au canal IRC.\n\nCes messages s'affichent :\n- en cas d'erreur de chargement d'un des modules requis ;\n- en cas d'erreur lors de la lecture du fichier config.cfg ;\n- à la connexion du bot sur le canal, afin d'attester de son démarrage ;\n- à l'exécution de la commande \"concours\" ;\n- à l'éxecution de la commande \"kill\".\n\nCes trois derniers messages sont accompagnés de leur moment d'affichage, au format \"HH:MM JJ/MM/AAAA\", selon le fuseau horaire de l'ordinateur hôte.\nLes messages indiquant l'exécution d'une commande donnent également le pseudo de l'émetteur de cette commande.\nExemple de message : \"Commande 'concours' émise par rezemika à 13:36 24/12/2016\".\n\n## Utilisation\nDès que le bot est connecté au canal, le programme affiche le moment précis de son arrivée sur le terminal qui l'éxecute. Il affichera également un message sur le canal, qui peut-être modifié dans le fichier de configuration (avec la clé \"message_join\").\nLe bot doit être appelé par son pseudo (PyMeteo), qui peut être suivi ou non d'un symbole. La commande qui suit l'appel du bot n'est pas sensible à la casse.\nCes trois commandes sont donc valides : \"PyMeteo aide\", \"PyMeteo: Aide\" ou \"PyMeteo, aide\".\n\n### aide / help\nLa commande \"aide\", qui peut aussi être appelée avec \"help\", envoie un MP à l'utilisateur qui l'a envoyé. Ce dernier contient la liste de toutes les commandes utilisables et leur usage, ainsi que les crédits et la licence du code.\n\n### kill\nCette commande demande au bot de se déconnecter. Il affiche alors un message, modifiable dans le fichier de configuration (avec la clé \"message_quit\"), avant de quitter le canal et de stopper l'éxecution du programme.\n\n### ville\nLa commande \"ville\" affiche un compte-rendu dense et sobre de la météo d'une ville. Cette commande doit être suivie, soit du nom de la ville, soit de son code postal. Il est aussi possible (et recommandé) de le faire suivre du code du pays.\n\n- \"ville Paris\" affiche la météo de Paris.\n- \"ville Saguenay,QC\" affiche la météo de Saguenay, au Québec.\n- \"ville EC1A1AA,UK\" affiche la météo de Clerkenwell (un quartier de Londres), au Royaume-Uni.\n\nVoici un exemple de retour de cette commande :\nOslo (NO) : 17:52 31/10/2016 UTC | T 4.79°C | W 3.58°C | V 1.65m/s | P 4.515mm | N 0mm | C 92% | H 99% | S 463 | Lat/Lon 59.91° 10.75°\n\n- Oslo (NO) : Ville trouvée par l'API, suivie du code de son pays. Peut aussi prendre le nom d'un quartier si la ville est de grande taille.\n- 17:52 31/10/2016 UTC : Moment du relevé météo affiché. Attention, l'heure et la date sont au format UTC.\n- T 4.79°C : Température.\n- W 3.58°C : Température ressentie (aussi appellée \"Windchill\").\n- V 1.65m/s : Vitesse du vent.\n- P 4.515mm : Précipitations sur les trois dernières heures.\n- N 0mm : Neige sur les trois dernières heures.\n- C 92% : Couverture nuageuse.\n- H 99% : Humidité de l'air.\n- S 463 : Score de la ville.\n- Lat/Lon 59.91° 10.75° : Coordonnées GPS, en degrés décimaux.\n\n### ville-long\nCette commande s'appelle de la même manière que la commande \"ville\". La différence réside dans le fait que celle-ci retourne la météo sous la forme d'un texte plus explicite. L'envoi se fait par MP à l'utilisateur émetteur de la commande, afin de ne pas \"noyer\" le canal.\n\n### ephem\nLa commande \"ephem\" affiche l'éphéméride de la ville qu'on lui passe en argument, en heures UTC (au format HH:MM:SS). Voici par exemple le retour de \"PyMeteo: ephem Québec\" : \"Éphéméride UTC pour Québec (CA) : 11:59:20 / 21:03:51\".\n\n### concours villes-list\nRetourne la liste de toutes les villes enregistrées dans le fichier de configuration, ainsi que leurs concourants respectifs.\n\n### concours go\nCette commande calcule le score de chaque ville concourante enregistrée dans le fichier de configuration, puis les affiche par ordre croissant. Enfin, elle donne le pseudo du vainqueur, et affiche un message \"gratifiant\" pour sa ville.\n\n### concours add-ville\nCette commande permet de rajouter une ville dans la liste des villes concourantes. Cette fonction nécessite la librairie Python configobj. Elle peut-être désactivée en commentant la fonction add_ville() dans fonctions.py et son appel dans le fichier meteo-bot.py. Elle s'utilise ainsi : \"concours add-ville VILLE PSEUDO\".\n\n### score\nLa commande \"score\" permet de calculer de manière isolée le score d'une ville. La ville doit être indiquée de la même manière que pour la commande \"ville\".\n\n## Concours\nLe calcul du score d'une ville tient compte de la température ressentie, de la pluie, de la neige et de la couverture nuageuse.\n\nVoici la formule exacte : (-Windchill) x 100 + neige x 20 + pluie x 80 + nuages x 5\n\nLa température ressentie est en degrés Celsius, la pluie et la neige sont en millimètres, la couverture nuageuse est un pourcentage.\n\n## Python\nCe bot a été testé et est fonctionnel au moins avec la version 3.5.1 de Python.\nIl nécessite les modules suivants :\n- irc\n- time\n- datetime\n- requests\n- configparser\n- operator\n- configobj : seulement pour \"concours add-ville\"\n\n## Configuration\nLe fichier config.cfg contient trois sections : [General], [Villes] et [Keywords]. La section [Villes] n'est utilisée que pour la fonction de concours. Elle peut-être laissée vide si celle-ci n'est pas utilisée. Ce fichier doit être dans le même dossier que le fichier du script.\n\nLa section [General] contient les \"paramètres vitaux\" du bot. La clé \"serveur\" prend une adresse de serveur IRC. La clé \"cannal\" prend le nom du canal où le bot devra se connecter. Le nom de canal ne devra PAS être écrit avec le croisillon \"#\". Écrivez \"canal\" et non \"#canal\".\n\nLa section [Ville] contient les candidats au concours. Les clés sont les villes, et leurs concourants sont marqués comme valeur de la clé correspondante. Voici un exemple, où les utilisateurs Pierre, Paul et Jacques concourent respectivement pour les villes de Paris, Québec et Acapulco.\n\nParis = Pierre\n\nQuébec = Paul\n\nAcapulco = Jacques\n\nLa section [Keywords] contient toutes les expressions utilisables par le bot, décrivant la météo d'une ville. L'API météorologique retournant un ID spécifique à chaque phénomène météo, cette section contient la description en français de ces ID. Leur liste peut être trouvée ici : https://openweathermap.org/weather-conditions.\n\n## API\nCe programme utilises l'API OpenWeatherMap (openweathermap.org), qui fourni des données météorologiques sous licence CC By-SA 4.0.\n\nPour plus d'informations : http://openweathermap.org/current\n\n## Licence\nCe programme ainsi que sa documentation ici-présente est publié sous licence GPL v3. Vous êtes donc libres de le partager ou de le modifier, selon les termes de la licence GPL.\n\n## Crédits\nrezemika : écriture\n\nvhf : aide pour l'écriture\n\nPesticide : aide pour le portage sous Python 3\n\nentwanne : aide pour la fonction d'ajout de concourants\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frezemika%2Fpymeteo-irc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frezemika%2Fpymeteo-irc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frezemika%2Fpymeteo-irc/lists"}