Mercurial > libervia-backend
diff sat/plugins/plugin_xep_0163.py @ 2624:56f94936df1e
code style reformatting using black
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 27 Jun 2018 20:14:46 +0200 |
parents | 26edcf3a30eb |
children | 189e38fb11ff |
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0163.py Wed Jun 27 07:51:29 2018 +0200 +++ b/sat/plugins/plugin_xep_0163.py Wed Jun 27 20:14:46 2018 +0200 @@ -21,13 +21,14 @@ from sat.core import exceptions from sat.core.constants import Const as C from sat.core.log import getLogger + log = getLogger(__name__) from twisted.words.xish import domish from wokkel import disco, pubsub from wokkel.formats import Mood -NS_USER_MOOD = 'http://jabber.org/protocol/mood' +NS_USER_MOOD = "http://jabber.org/protocol/mood" PLUGIN_INFO = { C.PI_NAME: "Personal Eventing Protocol Plugin", @@ -37,19 +38,25 @@ C.PI_DEPENDENCIES: ["XEP-0060"], C.PI_MAIN: "XEP_0163", C.PI_HANDLER: "no", - C.PI_DESCRIPTION: _("""Implementation of Personal Eventing Protocol""") + C.PI_DESCRIPTION: _("""Implementation of Personal Eventing Protocol"""), } class XEP_0163(object): - def __init__(self, host): log.info(_("PEP plugin initialization")) self.host = host self.pep_events = set() self.pep_out_cb = {} host.trigger.add("PubSub Disco Info", self.disoInfoTrigger) - host.bridge.addMethod("PEPSend", ".plugin", in_sign='sa{ss}s', out_sign='', method=self.PEPSend, async=True) # args: type(MOOD, TUNE, etc), data, profile_key; + host.bridge.addMethod( + "PEPSend", + ".plugin", + in_sign="sa{ss}s", + out_sign="", + method=self.PEPSend, + async=True, + ) # args: type(MOOD, TUNE, etc), data, profile_key; self.addPEPEvent("MOOD", NS_USER_MOOD, self.userMoodCB, self.sendMood) def disoInfoTrigger(self, disco_info, profile): @@ -78,13 +85,18 @@ self.pep_events.add(node) if notify: self.pep_events.add(node + "+notify") + def filterPEPEvent(client, itemsEvent): """Ignore messages which are not coming from PEP (i.e. main server) @param itemsEvent(pubsub.ItemsEvent): pubsub event """ if itemsEvent.sender.user or itemsEvent.sender.resource: - log.debug("ignoring non PEP event from {} (profile={})".format(itemsEvent.sender.full(), client.profile)) + log.debug( + "ignoring non PEP event from {} (profile={})".format( + itemsEvent.sender.full(), client.profile + ) + ) return in_callback(itemsEvent, client.profile) @@ -110,11 +122,14 @@ """ profile = self.host.memory.getProfileName(profile_key) if not profile: - log.error(_(u'Trying to send personal event with an unknown profile key [%s]') % profile_key) + log.error( + _(u"Trying to send personal event with an unknown profile key [%s]") + % profile_key + ) raise exceptions.ProfileUnknownError if not event_type in self.pep_out_cb.keys(): - log.error(_('Trying to send personal event for an unknown type')) - raise exceptions.DataError('Type unknown') + log.error(_("Trying to send personal event for an unknown type")) + raise exceptions.DataError("Type unknown") return self.pep_out_cb[event_type](data, profile) def userMoodCB(self, itemsEvent, profile): @@ -122,7 +137,9 @@ log.debug(_("No item found")) return try: - mood_elt = [child for child in itemsEvent.items[0].elements() if child.name == "mood"][0] + mood_elt = [ + child for child in itemsEvent.items[0].elements() if child.name == "mood" + ][0] except IndexError: log.error(_("Can't find mood element in mood event")) return @@ -130,8 +147,14 @@ if not mood: log.debug(_("No mood found")) return - self.host.bridge.psEvent(C.PS_PEP, itemsEvent.sender.full(), itemsEvent.nodeIdentifier, - "MOOD", {"mood": mood.value or "", "text": mood.text or ""}, profile) + self.host.bridge.psEvent( + C.PS_PEP, + itemsEvent.sender.full(), + itemsEvent.nodeIdentifier, + "MOOD", + {"mood": mood.value or "", "text": mood.text or ""}, + profile, + ) def sendMood(self, data, profile): """Send XEP-0107's User Mood @@ -139,8 +162,8 @@ @param data: must include mood and text @param profile: profile which send the mood""" try: - value = data['mood'].lower() - text = data['text'] if 'text' in data else '' + value = data["mood"].lower() + text = data["text"] if "text" in data else "" except KeyError: raise exceptions.DataError("Mood data must contain at least 'mood' key") mood = UserMood(value, text) @@ -152,7 +175,7 @@ def __init__(self, value, text=None): Mood.__init__(self, value, text) - domish.Element.__init__(self, (NS_USER_MOOD, 'mood')) + domish.Element.__init__(self, (NS_USER_MOOD, "mood")) self.addElement(value) if text: - self.addElement('text', content=text) + self.addElement("text", content=text)