From d5ca160949ecd106d8dcd7c563408a6c3e2cc5d5 Mon Sep 17 00:00:00 2001 From: Florestan Bredow Date: Thu, 14 Aug 2025 13:03:08 +0200 Subject: [PATCH] =?UTF-8?q?Ajoute=20les=20param=C3=A8tre=20'--config'=20et?= =?UTF-8?q?=20'--location'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 41 ++++++++++++++++++++++++++++++++++++----- meteo.yaml | 6 +----- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index 452b09f..ad51964 100755 --- a/main.py +++ b/main.py @@ -1,20 +1,51 @@ #!/usr/bin/env python3 -import requests -import locale -import json import os +import json +import locale +import pprint +import argparse +import requests +from pathlib import Path from datetime import datetime from meteo.config import Config yr_no_url = "https://api.met.no/weatherapi/locationforecast/2.0/" +def load_args(): + """Charge l'action et les paramêtres communs a toutes les actions.""" + parser = argparse.ArgumentParser(description="Affiche la météo") + parser.add_argument( + "-c", + "--config", + default=Path.home() / ".config" / "meteo.yaml", + help="Chemin vers le fichier de configuration", + ) + parser.add_argument( + "-l", + "--location", + default="home", + help="", + ) + return vars(parser.parse_args()) + + def main(): """Fonction principale""" - conf = Config("./meteo.yaml") - location = conf.get_location("florac") + args = load_args() + config_file = Path(args["config"]) + if not config_file.is_file(): + print(f"{config_file} n'est pas un fichier.") + os._exit(1) + + conf = Config(args["config"]) + try: + location = conf.get_location(args["location"]) + except AttributeError: + print(f"{args['location']} n'est pas configuré.") + os._exit(1) url = f"{yr_no_url}compact.json?lat={location['latitude']}&lon={location['longitude']}&altitude={location['altitude']}" headers = {"User-Agent": "DaikoMete/0.1 daiko@daiko.fr"} diff --git a/meteo.yaml b/meteo.yaml index 2a960f1..de334a0 100644 --- a/meteo.yaml +++ b/meteo.yaml @@ -1,10 +1,6 @@ locations: - florac: + home: altitude: 522 latitude: 44.3245 longitude: 3.5925 - laparrouquial: - altitude: 200 - latitude: 44.1229 - longitude: 2.0199