From ba1514070dd80d08cc4ee8d52ee0dd9ff8c5be37 Mon Sep 17 00:00:00 2001 From: David Huss <dh@atoav.com> Date: Wed, 30 Jun 2021 17:15:53 +0200 Subject: [PATCH] Add handling for counts on empty meetings --- bbbmeetings/__init__.py | 2 +- bbbmeetings/bbbmeetings.py | 44 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/bbbmeetings/__init__.py b/bbbmeetings/__init__.py index 1e1206c..7f42bc3 100644 --- a/bbbmeetings/__init__.py +++ b/bbbmeetings/__init__.py @@ -1,4 +1,4 @@ -__version__ = '0.1.3' +__version__ = '0.1.4' __all__ = ["bbbmeetings"] from .bbbmeetings import BBBServers, BBBServer, Meeting, Attendee \ No newline at end of file diff --git a/bbbmeetings/bbbmeetings.py b/bbbmeetings/bbbmeetings.py index 25a460b..3a4e2ab 100644 --- a/bbbmeetings/bbbmeetings.py +++ b/bbbmeetings/bbbmeetings.py @@ -54,14 +54,20 @@ class BBBServers(): """ Returns the count of participants of a meeting """ + if len(self.meetings) == 0: + return 0 return sum([m.participantCount for m in self.meetings]) @property def biggest_meeting(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.people) @property def smallest_meeting(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return min(self.meetings, key=lambda m: m.people) @property @@ -70,34 +76,50 @@ class BBBServers(): @property def listeners(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.listenerCount for m in self.meetings]) @property def connected_with_mic(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.voiceParticipantCount for m in self.meetings]) @property def video_active(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.videoCount for m in self.meetings]) @property def moderators(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.moderatorCount for m in self.meetings]) @property def longest_duration(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.duration) @property def most_listeners(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.listeners) @property def most_video_active(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.video_active) @property def most_moderators(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.moderators) @property @@ -154,46 +176,68 @@ class BBBServer(): @property def biggest_meeting(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.people) @property def smallest_meeting(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return min(self.meetings, key=lambda m: m.people) @property def n_meetings(self) -> int: + if len(self.meetings) == 0: + return 0 return len(self.meetings) @property def listeners(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.listeners for m in self.meetings]) @property def connected_with_mic(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.connected_with_mic for m in self.meetings]) @property def video_active(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.cideo_active for m in self.meetings]) @property def moderators(self) -> int: + if len(self.meetings) == 0: + return 0 return sum([m.moderators for m in self.meetings]) @property def longest_duration(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.duration) @property def most_listeners(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.listeners) @property def most_video_active(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.video_active) @property def most_moderators(self) -> Optional['Meeting']: + if len(self.meetings) == 0: + return None return max(self.meetings, key=lambda m: m.moderators) @property diff --git a/pyproject.toml b/pyproject.toml index 367def6..9c71520 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bbbmeetings" -version = "0.1.3" +version = "0.1.4" description = "A module for reading bbb meetings from bbb servers" authors = ["David Huss <david.huss@hfbk-hamburg.de>"] maintainers = ["David Huss <david.huss@hfbk-hamburg.de>"] -- GitLab