Ajoute les paramètre '--config' et '--location'
This commit is contained in:
		
							
								
								
									
										41
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								main.py
									
									
									
									
									
								
							| @@ -1,20 +1,51 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  |  | ||||||
| import requests |  | ||||||
| import locale |  | ||||||
| import json |  | ||||||
| import os | import os | ||||||
|  | import json | ||||||
|  | import locale | ||||||
|  | import pprint | ||||||
|  | import argparse | ||||||
|  | import requests | ||||||
|  | from pathlib import Path | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| from meteo.config import Config | from meteo.config import Config | ||||||
|  |  | ||||||
| yr_no_url = "https://api.met.no/weatherapi/locationforecast/2.0/" | 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(): | def main(): | ||||||
|     """Fonction principale""" |     """Fonction principale""" | ||||||
|  |  | ||||||
|     conf = Config("./meteo.yaml") |     args = load_args() | ||||||
|     location = conf.get_location("florac") |     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']}" |     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"} |     headers = {"User-Agent": "DaikoMete/0.1 daiko@daiko.fr"} | ||||||
|   | |||||||
| @@ -1,10 +1,6 @@ | |||||||
| locations: | locations: | ||||||
|   florac: |   home: | ||||||
|     altitude: 522 |     altitude: 522 | ||||||
|     latitude: 44.3245 |     latitude: 44.3245 | ||||||
|     longitude: 3.5925 |     longitude: 3.5925 | ||||||
|  |  | ||||||
|   laparrouquial: |  | ||||||
|     altitude: 200 |  | ||||||
|     latitude: 44.1229 |  | ||||||
|     longitude: 2.0199 |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user