commit 31821d22b046fa68a16b1348639082159dcc30cf
parent f7b2a82963c12841a557ed72b6b5717701a7b027
Author: Carlosokumu <carlosokumu254@gmail.com>
Date: Mon, 25 Aug 2025 16:04:14 +0300
update ArgsParser:
- make --tzid argument optional
- extend handle_create to check if -tzid is a valid timezone if given
Diffstat:
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/ungana/cmd/args_parser.py b/ungana/cmd/args_parser.py
@@ -6,6 +6,7 @@ import logging
from ungana.attachment.attachment_manager import AttachmentManager
from ungana.ical.ical_manager import ICalManager
from ungana.logging.logging_manager import LoggingManager
+from dateutil import tz
class ArgsParser:
@@ -68,8 +69,7 @@ class ArgsParser:
help="Event location")
parser.add_argument("-o", "--organizer", required=required_flags,
help="Event organizer")
- parser.add_argument("--tzid", required=required_flags,
- help="Time zone ID (e.g., 'Europe/Berlin')")
+ parser.add_argument("--tzid",help="Time zone ID (e.g., 'Europe/Berlin')")
parser.add_argument("--duration", type=self._validate_duration,
help="Event duration (e.g., '2h' or '30m')")
parser.add_argument("--end", type=self._validate_datetime,
@@ -126,6 +126,15 @@ class ArgsParser:
duration = end_dt - args.start_dt
args.duration = f"{duration.seconds//3600}h{(duration.seconds%3600)//60}m"
+ if args.tzid:
+ tzinfo = tz.gettz(args.tzid)
+ if tzinfo is None:
+ self.parser.error(f"Invalid timezone ID: {args.tzid}")
+ else:
+ # Fallback to UTC
+ tzinfo = tz.UTC
+ args.tzid = "UTC"
+
event_data = {
'start': args.start_dt,
'duration': args.duration,