From 30393bb69042afbac8c4303751fd4f8e69ca98c0 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Thu, 25 Oct 2018 01:22:57 +0200 Subject: [PATCH] Move unwrap_mucsub_message/1 into misc --- src/misc.erl | 20 +++++++++++++++++++- src/mod_mam.erl | 2 +- src/mod_muc_room.erl | 21 +-------------------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/misc.erl b/src/misc.erl index 8a44f2b6b..5aa281565 100644 --- a/src/misc.erl +++ b/src/misc.erl @@ -29,7 +29,7 @@ %% API -export([add_delay_info/3, add_delay_info/4, - unwrap_carbon/1, is_standalone_chat_state/1, + unwrap_carbon/1, unwrap_mucsub_message/1, is_standalone_chat_state/1, tolower/1, term_to_base64/1, base64_to_term/1, ip_to_list/1, hex_to_bin/1, hex_to_base64/1, url_encode/1, expand_keyword/3, atom_to_binary/1, binary_to_atom/1, tuple_to_binary/1, @@ -91,6 +91,24 @@ unwrap_carbon(#message{} = Msg) -> end; unwrap_carbon(Stanza) -> Stanza. +-spec unwrap_mucsub_message(xmpp_element()) -> message() | false. +unwrap_mucsub_message(#message{} = OuterMsg) -> + case xmpp:get_subtag(OuterMsg, #ps_event{}) of + #ps_event{ + items = #ps_items{ + node = Node, + items = [ + #ps_item{ + sub_els = [#message{} = InnerMsg]} | _]}} + when Node == ?NS_MUCSUB_NODES_MESSAGES; + Node == ?NS_MUCSUB_NODES_SUBJECT -> + InnerMsg; + _ -> + false + end; +unwrap_mucsub_message(_Packet) -> + false. + -spec is_standalone_chat_state(stanza()) -> boolean(). is_standalone_chat_state(Stanza) -> case unwrap_carbon(Stanza) of diff --git a/src/mod_mam.erl b/src/mod_mam.erl index ca2cbeb02..9689a93a2 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -653,7 +653,7 @@ should_archive(#message{body = Body, subject = Subject, true -> true; _ -> - case mod_muc_room:unwrap_mucsub_message(Pkt) of + case misc:unwrap_mucsub_message(Pkt) of #message{type = groupchat} = Msg -> should_archive(Msg#message{type = chat}, LServer); #message{} = Msg -> diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index aeb031763..492f9a4b3 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -39,8 +39,7 @@ is_occupant_or_admin/2, route/2, expand_opts/1, - config_fields/0, - unwrap_mucsub_message/1]). + config_fields/0]). %% gen_fsm callbacks -export([init/1, @@ -4461,24 +4460,6 @@ wrap(From, To, Packet, Node) -> id = p1_rand:get_string(), sub_els = [El]}]}}]}. --spec unwrap_mucsub_message(xmpp_element()) -> message() | false. -unwrap_mucsub_message(#message{} = Packet) -> - case xmpp:get_subtag(Packet, #ps_event{}) of - #ps_event{ - items = #ps_items{ - node = Node, - items = [ - #ps_item{ - sub_els = [#message{} = Message]} | _]}} - when Node == ?NS_MUCSUB_NODES_MESSAGES; - Node == ?NS_MUCSUB_NODES_SUBJECT -> - Message; - _ -> - false - end; -unwrap_mucsub_message(_Packet) -> - false. - %% -spec send_multiple(jid(), binary(), [#user{}], stanza()) -> ok. %% send_multiple(From, Server, Users, Packet) -> %% JIDs = [ User#user.jid || {_, User} <- ?DICT:to_list(Users)],