diff options
author | nico <nico@magicbroccoli.de> | 2020-06-17 15:47:31 +0200 |
---|---|---|
committer | nico <nico@magicbroccoli.de> | 2020-06-17 15:47:31 +0200 |
commit | 71440b7a8fa8b20cb1174e5451efc6ab7f9824ae (patch) | |
tree | 124cc68b0fbdd11c023baffd478367ab04e2a7be /control.py | |
parent | d36dbe03c8c4c11730a8da3c07844ef57fc21ff5 (diff) |
pep8 and friends
* add default logging NullHandler
* fix indentation mismatch
* rename control to calls to better point out its purpose
* rename class to EjabberdApiCalls to better point out it purpose
* changed get_nodes to an internal support method
Diffstat (limited to 'control.py')
-rw-r--r-- | control.py | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/control.py b/control.py deleted file mode 100644 index f865444..0000000 --- a/control.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -import re -import logging - -from packaging import version -from api import EjabberdApi - -class EjabberdCtl(EjabberdApi): - - - @property - def verstring(self): - if self._login is not None: - ver_str = re.compile('([1-9][0-9.]+(?![.a-z]))\\b') - status = self.cmd('status', {}) - - # matches - try: - tmp = ver_str.findall(status)[0] - # raise SystemExit code 17 if no status message is received - except TypeError: - raise SystemExit(17) - - # return parsed version string - logging.debug(f"fetch version: {tmp}") - return version.parse(tmp) - - return None - - def fetch_onlineuser(self): - tmp = self.cmd("connected_users_info", {}) - if "connected_users_info" not in tmp: - return tmp - data = [] - for c in tmp["connected_users_info"]: - if "session" not in c: - continue - user = {} - for attrs in c["session"]: - for k, v in attrs.items(): - user[k] = v - data.append(user) - return data - - def fetch_nodes(self): - result = self.cmd("list_cluster", {}) - if "nodes" not in result: - return result - data = [] - for node in result["nodes"]: - data.append(node["node"]) - return data - - def fetch_vhosts(self): - result = self.cmd("registered_vhosts", {}) - if "vhosts" not in result: - return result - data = [] - for vhost in result["vhosts"]: - data.append(vhost["vhost"]) - return data - - def fetch_s2s_in(self): - result = self.cmd("incoming_s2s_number", {}) - if "s2s_incoming" not in result: - return result - return result["s2s_incoming"] - - def fetch_s2s_out(self): - result = self.cmd("outgoing_s2s_number", {}) - if "s2s_outgoing" not in result: - return result - return result["s2s_outgoing"] - - def fetch_registered_count(self, vhost=None): - if vhost is None: - result = self.cmd("stats", {"name":"registeredusers"}) - if "stat" in result: - return result["stat"] - else: - result = self.cmd("stats_host", {"name":"registeredusers", "host": vhost}) - if "stat" in result: - return result["stat"] - - 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 "rooms" in result: - return len(result["rooms"]) - return len(result) |