diff libervia/frontends/quick_frontend/quick_app.py @ 4270:0d7bb4df2343

Reformatted code base using black.
author Goffi <goffi@goffi.org>
date Wed, 19 Jun 2024 18:44:57 +0200
parents d01b8d002619
children
line wrap: on
line diff
--- a/libervia/frontends/quick_frontend/quick_app.py	Tue Jun 18 12:06:45 2024 +0200
+++ b/libervia/frontends/quick_frontend/quick_app.py	Wed Jun 19 18:44:57 2024 +0200
@@ -44,7 +44,7 @@
     #       and a way to keep some XMLUI request between sessions is expected in backend
     host = None
     bridge = None
-    cache_keys_to_get = ['avatar', 'nicknames']
+    cache_keys_to_get = ["avatar", "nicknames"]
 
     def __init__(self, profile):
         self.profile = profile
@@ -136,10 +136,13 @@
 
     def _plug_profile_get_features_cb(self, features):
         self.host.features = features
-        self.host.bridge.entities_data_get([], ProfileManager.cache_keys_to_get,
-                                         profile=self.profile,
-                                         callback=self._plug_profile_got_cached_values,
-                                         errback=self._plug_profile_failed_cached_values)
+        self.host.bridge.entities_data_get(
+            [],
+            ProfileManager.cache_keys_to_get,
+            profile=self.profile,
+            callback=self._plug_profile_got_cached_values,
+            errback=self._plug_profile_failed_cached_values,
+        )
 
     def _plug_profile_failed_cached_values(self, failure):
         log.error("Couldn't get cached values: {}".format(failure))
@@ -153,7 +156,9 @@
                 self.host.entity_data_updated_handler(entity_s, key, value, self.profile)
 
         if not self.connected:
-            self.host.set_presence_status(C.PRESENCE_UNAVAILABLE, "", profile=self.profile)
+            self.host.set_presence_status(
+                C.PRESENCE_UNAVAILABLE, "", profile=self.profile
+            )
         else:
 
             contact_list.fill()
@@ -258,8 +263,12 @@
     AUTO_RESYNC = True
 
     def __init__(
-        self, bridge_factory, xmlui, check_options=None, connect_bridge=True,
-        async_bridge_factory=None
+        self,
+        bridge_factory,
+        xmlui,
+        check_options=None,
+        connect_bridge=True,
+        async_bridge_factory=None,
     ):
         """Create a frontend application
 
@@ -276,7 +285,7 @@
         self._plugs_in_progress = set()
         self.ready_profiles = set()  # profiles which are connected and ready
         self.signals_cache = {}  # used to keep signal received between start of
-                                 # plug_profile and when the profile is actualy ready
+        # plug_profile and when the profile is actualy ready
         self.contact_lists = quick_contact_list.QuickContactListHandler(self)
         self.widgets = quick_widgets.QuickWidgetsManager(self)
         if check_options is not None:
@@ -289,7 +298,7 @@
 
         # listeners are callable watching events
         self._listeners = {}  # key: listener type ("avatar", "selected", etc),
-                              # value: list of callbacks
+        # value: list of callbacks
 
         # cf. [register_action_handler]
         self._action_handlers: dict[str, Callable[[dict, str, int, str], None]] = {}
@@ -391,13 +400,14 @@
     def on_backend_ready(self):
         log.info("backend is ready")
         self.bridge.namespaces_get(
-            callback=self._namespaces_get_cb, errback=self._namespaces_get_eb)
+            callback=self._namespaces_get_cb, errback=self._namespaces_get_eb
+        )
         # we cache available encryption plugins, as we'll use them on each
         # new chat widget
         self.bridge.encryption_plugins_get(
             callback=self._encryption_plugins_get_cb,
-            errback=self._encryption_plugins_get_eb)
-
+            errback=self._encryption_plugins_get_eb,
+        )
 
     @property
     def current_profile(self):
@@ -596,7 +606,8 @@
             if not ignore_missing:
                 log.error(
                     f"Trying to remove an inexisting listener (type = {type_}): "
-                    f"{callback}")
+                    f"{callback}"
+                )
 
     def call_listeners(self, type_, *args, **kwargs):
         """Call the methods which listen type_ event. If a profiles filter has
@@ -769,17 +780,28 @@
     def contact_new_handler(self, jid_s, attributes, groups, profile):
         entity = jid.JID(jid_s)
         groups = list(groups)
-        self.contact_lists[profile].set_contact(entity, groups, attributes, in_roster=True)
+        self.contact_lists[profile].set_contact(
+            entity, groups, attributes, in_roster=True
+        )
 
     def message_new_handler(
-            self, uid, timestamp, from_jid_s, to_jid_s, msg, subject, type_, extra_s,
-            profile):
+        self, uid, timestamp, from_jid_s, to_jid_s, msg, subject, type_, extra_s, profile
+    ):
         from_jid = jid.JID(from_jid_s)
         to_jid = jid.JID(to_jid_s)
         extra = data_format.deserialise(extra_s)
         if not self.trigger.point(
-            "messageNewTrigger", uid, timestamp, from_jid, to_jid, msg, subject, type_,
-            extra, profile=profile,):
+            "messageNewTrigger",
+            uid,
+            timestamp,
+            from_jid,
+            to_jid,
+            msg,
+            subject,
+            type_,
+            extra,
+            profile=profile,
+        ):
             return
 
         from_me = from_jid.bare == self.profiles[profile].whoami.bare
@@ -800,9 +822,9 @@
         self.widgets.get_or_create_widget(
             quick_chat.QuickChat,
             target,
-            type_ = C.CHAT_GROUP if is_room else C.CHAT_ONE2ONE,
-            on_new_widget = None,
-            profile = profile,
+            type_=C.CHAT_GROUP if is_room else C.CHAT_ONE2ONE,
+            on_new_widget=None,
+            profile=profile,
         )
 
         if (
@@ -824,24 +846,34 @@
     def message_encryption_started_handler(self, destinee_jid_s, plugin_data, profile):
         destinee_jid = jid.JID(destinee_jid_s)
         plugin_data = data_format.deserialise(plugin_data)
-        for widget in self.widgets.get_widgets(quick_chat.QuickChat,
-                                              target=destinee_jid.bare,
-                                              profiles=(profile,)):
+        for widget in self.widgets.get_widgets(
+            quick_chat.QuickChat, target=destinee_jid.bare, profiles=(profile,)
+        ):
             widget.message_encryption_started(plugin_data)
 
     def message_encryption_stopped_handler(self, destinee_jid_s, plugin_data, profile):
         destinee_jid = jid.JID(destinee_jid_s)
-        for widget in self.widgets.get_widgets(quick_chat.QuickChat,
-                                              target=destinee_jid.bare,
-                                              profiles=(profile,)):
+        for widget in self.widgets.get_widgets(
+            quick_chat.QuickChat, target=destinee_jid.bare, profiles=(profile,)
+        ):
             widget.message_encryption_stopped(plugin_data)
 
     def message_state_handler(self, uid, status, profile):
         for widget in self.widgets.get_widgets(quick_chat.QuickChat, profiles=(profile,)):
             widget.on_message_state(uid, status, profile)
 
-    def message_send(self, to_jid, message, subject=None, mess_type="auto", extra=None, callback=None, errback=None, profile_key=C.PROF_KEY_NONE):
-        if not subject and not extra and (not message or message == {'': ''}):
+    def message_send(
+        self,
+        to_jid,
+        message,
+        subject=None,
+        mess_type="auto",
+        extra=None,
+        callback=None,
+        errback=None,
+        profile_key=C.PROF_KEY_NONE,
+    ):
+        if not subject and not extra and (not message or message == {"": ""}):
             log.debug("Not sending empty message")
             return
 
@@ -853,13 +885,23 @@
             callback = (
                 lambda __=None: None
             )  # FIXME: optional argument is here because pyjamas doesn't support callback
-               #        without arg with json proxy
+            #        without arg with json proxy
         if errback is None:
             errback = lambda failure: self.show_dialog(
                 message=failure.message, title=failure.fullname, type="error"
             )
 
-        if not self.trigger.point("messageSendTrigger", to_jid, message, subject, mess_type, extra, callback, errback, profile_key=profile_key):
+        if not self.trigger.point(
+            "messageSendTrigger",
+            to_jid,
+            message,
+            subject,
+            mess_type,
+            extra,
+            callback,
+            errback,
+            profile_key=profile_key,
+        ):
             return
 
         self.bridge.message_send(
@@ -906,7 +948,8 @@
         self.call_listeners("presence", entity, show, priority, statuses, profile=profile)
 
     def muc_room_joined_handler(
-            self, room_jid_s, occupants, user_nick, subject, statuses, profile):
+        self, room_jid_s, occupants, user_nick, subject, statuses, profile
+    ):
         """Called when a MUC room is joined"""
         log.debug(
             "Room [{room_jid}] joined by {profile}, users presents:{users}".format(
@@ -936,7 +979,8 @@
         chat_widget = self.widgets.get_widget(quick_chat.QuickChat, room_jid, profile)
         if chat_widget:
             self.widgets.delete_widget(
-                chat_widget, all_instances=True, explicit_close=True)
+                chat_widget, all_instances=True, explicit_close=True
+            )
         self.contact_lists[profile].remove_contact(room_jid)
 
     def muc_room_user_changed_nick_handler(self, room_jid_s, old_nick, new_nick, profile):
@@ -971,12 +1015,22 @@
         @param profile (unicode): current profile
         """
         from_jid = jid.JID(from_jid_s)
-        for widget in self.widgets.get_widgets(quick_chat.QuickChat, target=from_jid.bare,
-                                              profiles=(profile,)):
+        for widget in self.widgets.get_widgets(
+            quick_chat.QuickChat, target=from_jid.bare, profiles=(profile,)
+        ):
             widget.on_chat_state(from_jid, state, profile)
 
-    def notify(self, type_, entity=None, message=None, subject=None, callback=None,
-               cb_args=None, widget=None, profile=C.PROF_KEY_NONE):
+    def notify(
+        self,
+        type_,
+        entity=None,
+        message=None,
+        subject=None,
+        callback=None,
+        cb_args=None,
+        widget=None,
+        profile=C.PROF_KEY_NONE,
+    ):
         """Trigger an event notification
 
         @param type_(unicode): notifation kind,
@@ -1009,7 +1063,9 @@
         self._notif_id += 1
         self.call_listeners("notification", entity, notif_data, profile=profile)
 
-    def get_notifs(self, entity=None, type_=None, exact_jid=None, profile=C.PROF_KEY_NONE):
+    def get_notifs(
+        self, entity=None, type_=None, exact_jid=None, profile=C.PROF_KEY_NONE
+    ):
         """return notifications for given entity
 
         @param entity(jid.JID, None, C.ENTITY_ALL): jid of the entity to check
@@ -1203,11 +1259,11 @@
     def _debug_handler(self, action, parameters, profile):
         if action == "widgets_dump":
             from pprint import pformat
+
             log.info("Widgets dump:\n{data}".format(data=pformat(self.widgets._widgets)))
         else:
             log.warning("Unknown debug action: {action}".format(action=action))
 
-
     def show_dialog(self, message, title, type="info", answer_cb=None, answer_data=None):
         """Show a dialog to user
 
@@ -1276,9 +1332,7 @@
             self.call_listeners("avatar", entity, value, profile=profile)
 
     def register_action_handler(
-        self,
-        action_type: str,
-        handler: Callable[[dict, str, int, str], None]
+        self, action_type: str, handler: Callable[[dict, str, int, str], None]
     ) -> None:
         """Register a handler for action type.
 
@@ -1307,13 +1361,13 @@
     def action_manager(
         self,
         action_data: dict,
-        callback: Callable|None = None,
-        ui_show_cb: Callable|None = None,
+        callback: Callable | None = None,
+        ui_show_cb: Callable | None = None,
         user_action: bool = True,
-        action_id: str|None = None,
-        progress_cb: Callable|None = None,
-        progress_eb: Callable|None = None,
-        profile: str = C.PROF_KEY_NONE
+        action_id: str | None = None,
+        progress_cb: Callable | None = None,
+        progress_eb: Callable | None = None,
+        profile: str = C.PROF_KEY_NONE,
     ) -> None:
         """Handle backend action
 
@@ -1386,8 +1440,11 @@
             data_format.deserialise(data), callback, callback_id, profile
         )
         self.bridge.action_launch(
-            callback_id, data_format.serialise(data), profile, callback=action_cb,
-            errback=self.dialog_failure
+            callback_id,
+            data_format.serialise(data),
+            profile,
+            callback=action_cb,
+            errback=self.dialog_failure,
         )
 
     def launch_menu(