diff --git a/calls.py b/calls.py index 94e8dde..89a2a22 100644 --- a/calls.py +++ b/calls.py @@ -60,6 +60,16 @@ class EjabberdApiCalls(EjabberdApi): return None + # ghetto method until we have a better solution + @staticmethod + def _parse_muc_count(vhost, data: (list, dict)) -> int: + tmp = 0 + + for el in list(map(lambda x: x.split(sep="@"), data)): + if vhost in el[1]: + tmp += 1 + return tmp + def fetch_onlineuser(self): tmp = self.cmd("connected_users_info", {}) if "connected_users_info" not in tmp: @@ -141,12 +151,13 @@ class EjabberdApiCalls(EjabberdApi): def fetch_muc_count(self, vhost=None, muc_host="conference"): host = "global" - if vhost is not None: - if self.verstring.major >= 19: - host = ".".join([muc_host, vhost]) - else: - host = vhost result = self.cmd("muc_online_rooms", {"host": host}) + if vhost is not None: + # if self.verstring.major >= 19: + # host = ".".join([muc_host, vhost]) + # else: + # host = vhost + return self._parse_muc_count(vhost, result) if "rooms" in result: return len(result["rooms"]) return len(result)