v2 - STT via Whisper for more precision and if nor available, twist to Vox
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
"""Calculs de temps purs pour le MCP Alfred Autres (Python 3.11+)."""
|
||||
|
||||
from datetime import datetime
|
||||
from os import environ
|
||||
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
|
||||
|
||||
WEEKDAYS_FR = (
|
||||
"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"
|
||||
)
|
||||
MONTHS_FR = (
|
||||
"janvier", "février", "mars", "avril", "mai", "juin",
|
||||
"juillet", "août", "septembre", "octobre", "novembre", "décembre"
|
||||
)
|
||||
|
||||
|
||||
def get_current_datetime(timezone: str = "") -> dict[str, str | int]:
|
||||
"""Obtient l'heure réelle de l'horloge système dans un fuseau IANA."""
|
||||
selected = timezone.strip() if timezone else environ.get("ALFRED_TIMEZONE", "Europe/Paris")
|
||||
try:
|
||||
zone = ZoneInfo(selected)
|
||||
except (ZoneInfoNotFoundError, ValueError) as exc:
|
||||
raise ValueError(f"Fuseau horaire non reconnu : {selected!r}") from exc
|
||||
|
||||
now = datetime.now(zone)
|
||||
offset = now.strftime("%z")
|
||||
return {
|
||||
"iso_datetime": now.isoformat(timespec="seconds"),
|
||||
"time_24h": now.strftime("%H:%M:%S"),
|
||||
"hour": now.hour,
|
||||
"minute": now.minute,
|
||||
"date_iso": now.date().isoformat(),
|
||||
"weekday_fr": WEEKDAYS_FR[now.weekday()],
|
||||
"date_fr": f"{WEEKDAYS_FR[now.weekday()]} {now.day} {MONTHS_FR[now.month - 1]} {now.year}",
|
||||
"timezone": selected,
|
||||
"utc_offset": (offset[:3] + ":" + offset[3:]) if offset else "",
|
||||
"timestamp_unix": int(now.timestamp()),
|
||||
}
|
||||
Reference in New Issue
Block a user