ungana

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | README

commit b313f4ec26b0a6d163c8c71ce12524e46d857c1d
parent 9bdcf152348f975cb5162e42283473a8581d1c1a
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Thu, 21 Aug 2025 18:02:11 +0300

enhance   _process_contact_arg in ArgsParser to parse CONTACT information, supporting freeform text and optional parameters such as ALTREP for alternative representations.

Diffstat:
Mcalendarapp/cmd/args_parser.py | 20++++++++++++++++++++
1 file changed, 20 insertions(+), 0 deletions(-)

diff --git a/calendarapp/cmd/args_parser.py b/calendarapp/cmd/args_parser.py @@ -77,6 +77,7 @@ class ArgsParser: help="Event headline image") parser.add_argument("-ld", "--long", help="Exhaustive description of the event") + parser.add_argument("-c","--contact",help="Contact details") create_event_parser = subparsers.add_parser('create', help='Create a new calendar event') @@ -268,6 +269,12 @@ class ArgsParser: if args.location: updates["LOCATION"] = args.location if args.description: updates["DESCRIPTION"] = args.description if args.organizer: updates["ORGANIZER"] = args.organizer + if args.contact: + value, params = self._process_contact_arg(args.contact) + if params: + updates["CONTACT"] = (value, params) # will be expanded + else: + updates["CONTACT"] = value for ctx_name in ("poster", "long"): arg_val = getattr(args, ctx_name, None) @@ -280,6 +287,19 @@ class ArgsParser: return updates, attachments + def _process_contact_arg(self, raw_contact: str): + if "|" in raw_contact: + value, param_str = raw_contact.split("|", 1) + params = {} + for token in param_str.split(";"): + if "=" in token: + k, v = token.split("=", 1) + params[k.strip().upper()] = v.strip() + return value.strip(), params + return raw_contact.strip(), {} + + + def run(self): args = self.parse_args()