Skip to content

Commit b8d7833

Browse files
committed
Get meeting from video object and add video_id and speaker_timeline as meeting attributes
1 parent d63d066 commit b8d7833

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

videodb/meeting.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ def _update_attributes(self, data: dict) -> None:
2424
self.meeting_url = data.get("meeting_url")
2525
self.status = data.get("status")
2626
self.time_zone = data.get("time_zone")
27+
self.video_id = data.get("video_id")
28+
self.speaker_timeline = data.get("speaker_timeline")
2729

2830
def refresh(self) -> "Meeting":
2931
"""Refresh meeting data from the server.

videodb/video.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,3 +608,29 @@ def play(self) -> str:
608608
:rtype: str
609609
"""
610610
return play_stream(self.stream_url)
611+
612+
def get_meeting(self):
613+
"""Get meeting information associated with the video.
614+
615+
:return: :class:`Meeting <Meeting>` object if meeting is associated, None otherwise
616+
:rtype: Optional[:class:`videodb.meeting.Meeting`]
617+
:raises InvalidRequestError: If the API request fails
618+
"""
619+
# TODO: Add type check for Meeting
620+
from videodb.meeting import Meeting
621+
622+
try:
623+
meeting_data = self._connection.get(
624+
path=f"{ApiPath.video}/{self.id}/{ApiPath.meeting}"
625+
)
626+
if meeting_data:
627+
return Meeting(
628+
self._connection,
629+
id=meeting_data.get("meeting_id"),
630+
collection_id=self.collection_id,
631+
**meeting_data,
632+
)
633+
return None
634+
except Exception:
635+
# Return None if no meeting is associated or API call fails
636+
return None

0 commit comments

Comments
 (0)