-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
40 lines (32 loc) · 1.36 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
import json
import time
from rich.console import Console
from .API import get_location, weather_info
is_cached = False
console = Console(soft_wrap=True)
if not os.path.isfile(f"{os.getcwd()}/loc_cache/loc.tmp"):
if not os.path.isdir(f"{os.getcwd()}/loc_cache/"):
os.mkdir(f"{os.getcwd()}/loc_cache/")
coords = get_location()
with open(f"{os.getcwd()}/loc_cache/loc.tmp", "w") as f:
f.write(json.dumps(coords))
city = coords['city']
w_info = weather_info(coords)
else:
if os.path.getmtime(f"{os.getcwd()}/loc_cache/loc.tmp") + 10000 < time.time():
coords = get_location()
with open(f"{os.getcwd()}/loc_cache/loc.tmp", 'w') as f:
f.write(json.dumps(coords))
w_info = weather_info(coords)
else:
with open(f"{os.getcwd()}/loc_cache/loc.tmp") as f:
data = f.readline()
city = json.loads(data)['city']
w_info = weather_info(json.loads(data))
is_cached = True
# Max, Min, Current, windspeed, wind dir, city
console.print(f'[bold]Weather in {city} (cached: {is_cached}):\n')
console.print(f"[green]Current temperature: {w_info['current_weather']['temperature']}°C")
console.print(f"[red]Max temperature: {max(w_info['hourly']['temperature_2m'])}°C")
console.print(f"[blue]Min temperature: {min(w_info['hourly']['temperature_2m'])}°C")