summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--app.py11
-rw-r--r--weather.py69
2 files changed, 41 insertions, 39 deletions
diff --git a/app.py b/app.py
index b1dc89e..873c99b 100644
--- a/app.py
+++ b/app.py
@@ -33,11 +33,12 @@ def handle(request):
         menu = []
         text = figlet.renderText(request.path[1:]).split("\n")
         menu += [Item(text=i) for i in text]
-        if request.path == "/news":
-            menu.append(Item(text="=== Provided by The Guardian ==="))
-            menu += news.get_news()
-        elif request.path == "/weather":
-            menu += weather.get_cities(request.query)
+        match request.path:
+            case "/news":
+                menu.append(Item(text="=== Provided by The Guardian ==="))
+                menu += news.get_news()
+            case "/weather":
+                menu += weather.get_cities(request.query)
         return menu
     else:
         return [Item(itype="3", text="Page not found")]
diff --git a/weather.py b/weather.py
index a8daac0..50b947a 100644
--- a/weather.py
+++ b/weather.py
@@ -10,34 +10,35 @@ load_dotenv()
 
 
 def get_code(code):
-    if code in [0]:
-        return "Clear sky"
-    if code in [1, 2, 3]:
-        return "Partly cloudy"
-    if code in [45, 48]:
-        return "Foggy"
-    if code in [51, 53, 55]:
-        return "Drizzle"
-    if code in [56, 57]:
-        return "Freezing drizzle"
-    if code in [61, 63, 65]:
-        return "Rain"
-    if code in [66, 67]:
-        return "Freezing rain"
-    if code in [71, 73, 675]:
-        return "Snow"
-    if code in [77]:
-        return "Snow grains"
-    if code in [80, 81, 82]:
-        return "Rain showers"
-    if code in [85, 86]:
-        return "Snow showers"
-    if code in [95]:
-        return "Thunderstorm"
-    if code in [96, 99]:
-        return "Thunderstorm with hail"
-
-    return "Unknown"
+    match code:
+        case 0:
+            return "Clear sky"
+        case 1 | 2 | 3:
+            return "Partly cloudy"
+        case 45 | 48:
+            return "Foggy"
+        case 51 | 53 | 55:
+            return "Drizzle"
+        case 56 | 57:
+            return "Freezing drizzle"
+        case 61 | 63 | 65:
+            return "Rain"
+        case 66 | 67:
+            return "Freezing rain"
+        case 71 | 73 | 675:
+            return "Snow"
+        case 77:
+            return "Snow grains"
+        case 80 | 81 | 82:
+            return "Rain showers"
+        case 85 | 86:
+            return "Snow showers"
+        case 95:
+            return "Thunderstorm"
+        case 96 | 99:
+            return "Thunderstorm with hail"
+        case _:
+            return "Unknown"
 
 
 def get_cities(query):
@@ -62,10 +63,10 @@ def get_weather(city):
     place = query.split("&city=")[1]
 
     print(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&hourly"
-          f"=temperature_2m,relativehumidity_2m,precipitation_probability,"
-          f"weathercode,windspeed_10m&daily=weathercode,"
-          f"temperature_2m_max,temperature_2m_min,sunrise,"
-          f"sunset&current_weather=true&timezone=auto")
+                        f"=temperature_2m,relativehumidity_2m,precipitation_probability,"
+                        f"weathercode,windspeed_10m&daily=weathercode,"
+                        f"temperature_2m_max,temperature_2m_min,sunrise,"
+                        f"sunset&current_weather=true&timezone=auto")
 
     data = requests.get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&hourly"
                         f"=temperature_2m,relativehumidity_2m,precipitation_probability,"
@@ -77,9 +78,9 @@ def get_weather(city):
     result += f.renderText("weather").split("\n")
     f.setFont(font="small")
 
-    result.append("=" * 80)
+    result.append("="*80)
     result.append(f"{place}".center(80))
-    result.append("=" * 80)
+    result.append("="*80)
 
     result += f.renderText("hourly").split("\n")
     table_hourly = PrettyTable()