From dce577bf3af6e841e53a6867074fb23c7664b094 Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 14 May 2026 11:41:52 +0200 Subject: [PATCH] plugin XEP-0163: type hints --- libervia/backend/plugins/plugin_xep_0163.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libervia/backend/plugins/plugin_xep_0163.py b/libervia/backend/plugins/plugin_xep_0163.py index a29946eb..5dad2cf3 100644 --- a/libervia/backend/plugins/plugin_xep_0163.py +++ b/libervia/backend/plugins/plugin_xep_0163.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from typing import Optional, Callable +from typing import TYPE_CHECKING, Callable, cast from twisted.python.failure import Failure from libervia.backend.core.core_types import SatXMPPEntity @@ -30,9 +30,13 @@ from twisted.words.xish import domish from tx_xmpp import disco, pubsub from tx_xmpp.formats import Mood +from libervia.backend.plugins.plugin_xep_0060 import XEP_0060 from libervia.backend.tools.common import data_format from libervia.backend.tools import utils +if TYPE_CHECKING: + from libervia.backend.core.main import LiberviaBackend + log = getLogger(__name__) NS_USER_MOOD = "http://jabber.org/protocol/mood" @@ -50,12 +54,13 @@ PLUGIN_INFO = { } -class XEP_0163(object): - def __init__(self, host): +class XEP_0163: + def __init__(self, host: "LiberviaBackend"): log.info(_("PEP plugin initialization")) self.host = host self.pep_events = set() self.pep_out_cb = {} + self._ps = cast(XEP_0060, host.plugins["XEP-0060"]) host.trigger.add("PubSub Disco Info", self.diso_info_trigger) host.bridge.add_method( "pep_send", @@ -129,7 +134,7 @@ class XEP_0163(object): d = utils.as_deferred(in_callback, itemsEvent, client.profile) d.addErrback(self.log_error) - self.host.plugins["XEP-0060"].add_managed_node(node, items_cb=filter_pep_event) + self._ps.add_managed_node(node, items_cb=filter_pep_event) def send_pep_event(self, node, data, profile): """Publish the event data @@ -140,7 +145,7 @@ class XEP_0163(object): """ client = self.host.get_client(profile) item = pubsub.Item(payload=data) - return self.host.plugins["XEP-0060"].publish(client, None, node, [item]) + return self._ps.publish(client, None, node, [item]) def pep_send(self, event_type, data, profile_key=C.PROF_KEY_NONE): """Send personal event after checking the data is alright