component AP gateway: handle attachments

This commit is contained in:
Goffi 2023-03-23 15:42:21 +01:00
commit c3f97ec712

View file

@ -97,7 +97,7 @@ class XEP_0277(object):
"namespace": NS_ATOM,
"type": "blog",
"to_sync": True,
"parser": self.item2mbdata,
"parser": self.item_2_mb_data,
"match_cb": self._cacheNodeMatchCb,
}
)
@ -249,7 +249,7 @@ class XEP_0277(object):
for item in itemsEvent.items:
if item.name == C.PS_ITEM:
# FIXME: service and node should be used here
self.item2mbdata(client, item, None, None).addCallbacks(
self.item_2_mb_data(client, item, None, None).addCallbacks(
manageItem, lambda failure: None, (C.PS_PUBLISH,)
)
elif item.name == C.PS_RETRACT:
@ -260,12 +260,12 @@ class XEP_0277(object):
## data/item transformation ##
@defer.inlineCallbacks
def item2mbdata(
def item_2_mb_data(
self,
client: SatXMPPEntity,
item_elt: domish.Element,
service: Optional[jid.JID],
# FIXME: node is Optional until all calls to item2mbdata set properly service
# FIXME: node is Optional until all calls to item_2_mb_data set properly service
# and node. Once done, the Optional must be removed here
node: Optional[str]
) -> dict:
@ -615,7 +615,7 @@ class XEP_0277(object):
defer.returnValue(microblog_data)
async def data2entry(self, client, mb_data, item_id, service, node):
async def mb_data_2_entry_elt(self, client, mb_data, item_id, service, node):
"""Convert a data dict to en entry usable to create an item
@param mb_data: data dict as given by bridge method.
@ -1036,7 +1036,7 @@ class XEP_0277(object):
await self._manageComments(client, data, service, node, item_id, access=None)
except error.StanzaError:
log.warning("Can't create comments node for item {}".format(item_id))
item = await self.data2entry(client, data, item_id, service, node)
item = await self.mb_data_2_entry_elt(client, data, item_id, service, node)
if not await self.host.trigger.asyncPoint(
"XEP-0277_send", client, service, node, item, data
@ -1165,9 +1165,9 @@ class XEP_0277(object):
item_id = data.get("id", "")
# we have to serialise then deserialise to be sure that all triggers are called
item_elt = await self.data2entry(client, data, item_id, service, node)
item_elt = await self.mb_data_2_entry_elt(client, data, item_id, service, node)
item_elt.uri = pubsub.NS_PUBSUB
return await self.item2mbdata(client, item_elt, service, node)
return await self.item_2_mb_data(client, item_elt, service, node)
## retract ##
@ -1243,7 +1243,7 @@ class XEP_0277(object):
extra=extra,
)
mb_data_list, metadata = await self._p.transItemsDataD(
items_data, partial(self.item2mbdata, client, service=service, node=node))
items_data, partial(self.item_2_mb_data, client, service=service, node=node))
encrypted = metadata.pop("encrypted", None)
if encrypted is not None:
for mb_data in mb_data_list:
@ -1461,7 +1461,7 @@ class XEP_0277(object):
d = self._p.transItemsDataD(
items_data,
# FIXME: service and node should be used here
partial(self.item2mbdata, client),
partial(self.item_2_mb_data, client),
serialise=True
)
d.addCallback(lambda serialised: ("", serialised))
@ -1663,7 +1663,7 @@ class XEP_0277(object):
lambda items_data: self._p.transItemsDataD(
items_data,
partial(
self.item2mbdata, client, service=service, node=node
self.item_2_mb_data, client, service=service, node=node
),
serialise=True
)
@ -1704,7 +1704,7 @@ class XEP_0277(object):
d.addCallback(
lambda items_data: self._p.transItemsDataD(
items_data,
partial(self.item2mbdata, client, service=service, node=node),
partial(self.item_2_mb_data, client, service=service, node=node),
)
)
d.addCallback(getComments)