From f03b5f4c44fd2891c6ef1d7cc00062bfe0f69ad5 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 16 Jun 2025 12:57:02 +0200 Subject: [PATCH] Support list of IDs in pubsub-items-retract (processone/xmpp#100) --- src/mod_mix.erl | 2 +- src/mod_muc_rtbl.erl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mod_mix.erl b/src/mod_mix.erl index c6aa60ef6..ced8ada75 100644 --- a/src/mod_mix.erl +++ b/src/mod_mix.erl @@ -626,7 +626,7 @@ notify_participant_joined(Mod, LServer, To, From, ID, Nick) -> notify_participant_left(Mod, LServer, To, ID) -> {Chan, Host, _} = jid:tolower(To), Items = #ps_items{node = ?NS_MIX_NODES_PARTICIPANTS, - retract = ID}, + retract = [ID]}, Event = #ps_event{items = Items}, Msg = #message{from = jid:remove_resource(To), id = p1_rand:get_string(), diff --git a/src/mod_muc_rtbl.erl b/src/mod_muc_rtbl.erl index d7504ab7c..94186e890 100644 --- a/src/mod_muc_rtbl.erl +++ b/src/mod_muc_rtbl.erl @@ -151,9 +151,9 @@ pubsub_event_handler(#message{from = #jid{luser = <<>>, lserver = SServer}, SNode = mod_muc_rtbl_opt:rtbl_node(Server), if SServer == SServer2 -> case xmpp:get_subtag(Msg, #ps_event{}) of - #ps_event{items = #ps_items{node = Node, retract = Retract}} when Node == SNode, + #ps_event{items = #ps_items{node = Node, retract = [Retract | _] = RetractList}} when Node == SNode, is_binary(Retract) -> - mnesia:dirty_delete(muc_rtbl, {Server, Retract}); + [mnesia:dirty_delete(muc_rtbl, {Server, R1}) || R1 <- RetractList]; #ps_event{items = #ps_items{node = Node, items = Items}} when Node == SNode -> Added = lists:foldl( fun(#ps_item{id = ID}, Acc) ->