commit 9ef47194b8cf04fa013c4b497bb2675f77605626
parent dd66490e8194fd7d905d94221ea1e37bc798b38a
Author: Carlosokumu <carlosokumu254@gmail.com>
Date: Sat, 23 Aug 2025 15:57:28 +0300
extend ArgsParser:
-Updatehandle_create to detect and prevent creating events with duplicate details in an existing iCalendar file
Diffstat:
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/calendarapp/cmd/args_parser.py b/calendarapp/cmd/args_parser.py
@@ -132,13 +132,25 @@ class ArgsParser:
'description': args.description,
'organizer': args.organizer,
'tzid': args.tzid
- }
-
- event = self.ical_manager.create_event(event_data)
+ }
if args.file:
filename = args.file
+ cal = self.ical_manager.load_ical_file(args.file)
+ exists = self.ical_manager.check_existing_event(cal,event_data)
+ if exists:
+ details = (
+ f"Summary='{event_data.get('summary')}', "
+ f"Start={event_data.get('start')}, "
+ f"Tzid={event_data.get('tzid')}, "
+ f"Location='{event_data.get('location')}'"
+ )
+ self.parser.error( f"Duplicate event detected: An event with these details already exists: {details}. "f"Try using the 'edit' command instead.")
+ return
+
else:
filename = f"event_{datetime.now().strftime('%Y%m%d_%H%M%S')}.ics"
+
+ event = self.ical_manager.create_event(event_data)
self.ical_manager.save_ical_file(event, filename)
def handle_edit(self, args):