From dc6fa7c3117f9f65395359c5581d29127a72fcee Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Aug 30 2024 07:29:41 +0000 Subject: Add support for Google calendar Meet button Fix https://pagure.io/fedocal/issue/216 --- diff --git a/fedocal/fedocallib/__init__.py b/fedocal/fedocallib/__init__.py index 061b129..0032931 100644 --- a/fedocal/fedocallib/__init__.py +++ b/fedocal/fedocallib/__init__.py @@ -684,6 +684,8 @@ def add_meeting_to_vcal(ical, meeting, reminder=None): entry.add('organizer').value = ', '.join(meeting.meeting_manager) if meeting.meeting_location: entry.add('location').value = meeting.meeting_location + if meeting.meeting_location.startswith('https://meet.google.com/'): + entry.add('x-google-conference').value = meeting.meeting_location start = entry.add('dtstart') stop = entry.add('dtend') diff --git a/tests/test_fedocallib.py b/tests/test_fedocallib.py index 0cfe7d6..39cfd4f 100644 --- a/tests/test_fedocallib.py +++ b/tests/test_fedocallib.py @@ -753,6 +753,26 @@ class Fedocallibtests(Modeltests): self.assertFalse(hasattr(event, 'valarm_list')) self.assertFalse(hasattr(event, 'valarm')) + def test_add_meeting_to_vcal_gmeet(self): + """ Test the add_meeting_to_vcal function with Google Meet""" + import vobject + calendar = vobject.iCalendar() + self.__setup_meeting() + meetings = fedocallib.get_future_single_meeting_of_user( + self.session, 'pingou', from_date=TODAY) + self.assertNotEqual(meetings, None) + self.assertEqual(len(meetings), 4) + + meeting = meetings[0] + meeting.meeting_location = "https://meet.google.com/do-not-exist" + + fedocallib.add_meeting_to_vcal(calendar, meeting) + self.assertEqual(len(calendar.vevent_list), 1) + event = calendar.vevent + print(meeting) + print(event) + self.assertEqual(event.x_google_conference.value, event.location.value) + def test_add_meetings_to_vcal(self): """ Test the add_meetings_to_vcal function. """ import vobject