# HG changeset patch # User Kim Alvefur # Date 1616444403 -3600 # Node ID 08b71d02c6dc29f169295bed21e07e8306a5c277 # Parent f7381268a59792db966b99c6bf85a8d4dceebc28 mod_pubsub_post: Allow specifying item id by a special mapping If `{http://jabber.org/protocol/pubsub}id` exists as an attribute at the top level then it is used, otherwise the previous behavior (.id if string) diff -r f7381268a597 -r 08b71d02c6dc mod_pubsub_post/mod_pubsub_post.lua --- a/mod_pubsub_post/mod_pubsub_post.lua Mon Mar 22 21:18:35 2021 +0100 +++ b/mod_pubsub_post/mod_pubsub_post.lua Mon Mar 22 21:20:03 2021 +0100 @@ -63,7 +63,14 @@ return { status_code = 400; body = "object or array expected"; }; end local payload = wrap(node, parsed, data) - return publish_payload(node, actor, type(parsed.id) == "string" and parsed.id or "current", payload); + local item_id = "current"; + if payload.attr["http://jabber.org/protocol/pubsub\1id"] then + item_id = payload.attr["http://jabber.org/protocol/pubsub\1id"]; + payload.attr["http://jabber.org/protocol/pubsub\1id"] = nil; + elseif type(parsed.id) == "string" then + item_id = parsed.id; + end + return publish_payload(node, actor, item_id, payload); end local function publish_atom(node, actor, feed)