From b96341a58f9bcf8829e34b17d766f55a58c3f82d Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Mon, 30 Nov 2020 21:00:45 +0100 Subject: mod_mam: Advertise extended MAM 0.7.x behind a feature flag In order to ease testing until the extended feautres are all implemented. Also TODOs for all the sub-features. --- doc/doap.xml | 3 +- plugins/mod_mam/mod_mam.lua | 13 ++++++- spec/scansion/mam_extended.scs | 78 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 spec/scansion/mam_extended.scs diff --git a/doc/doap.xml b/doc/doap.xml index 30a876fa..57c8c97d 100644 --- a/doc/doap.xml +++ b/doc/doap.xml @@ -568,7 +568,8 @@ - 0.6.3 + 0.7.2 + partial 0.10.0 mod_mam, mod_muc_mam diff --git a/plugins/mod_mam/mod_mam.lua b/plugins/mod_mam/mod_mam.lua index dd498fdd..cc7b7fba 100644 --- a/plugins/mod_mam/mod_mam.lua +++ b/plugins/mod_mam/mod_mam.lua @@ -1,7 +1,7 @@ -- Prosody IM -- Copyright (C) 2008-2017 Matthew Wild -- Copyright (C) 2008-2017 Waqas Hussain --- Copyright (C) 2011-2017 Kim Alvefur +-- Copyright (C) 2011-2020 Kim Alvefur -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. @@ -10,6 +10,7 @@ -- local xmlns_mam = "urn:xmpp:mam:2"; +local xmlns_mam_ext = "urn:xmpp:mam:2#extended"; local xmlns_delay = "urn:xmpp:delay"; local xmlns_forward = "urn:xmpp:forward:0"; local xmlns_st_id = "urn:xmpp:sid:0"; @@ -512,8 +513,18 @@ module:hook("pre-message/full", c2s_message_handler, 0); module:hook("message/bare", message_handler, 0); module:hook("message/full", message_handler, 0); +local advertise_extended = module:get_option_boolean("mam_advertise_extend", false); +-- TODO before-id, after-id +-- TODO ids +-- TODO page flipping +-- TODO archive metadata query +-- TODO delete feature flag option + module:hook("account-disco-info", function(event) (event.reply or event.stanza):tag("feature", {var=xmlns_mam}):up(); + if advertise_extended then + (event.reply or event.stanza):tag("feature", {var=xmlns_mam_ext}):up(); + end (event.reply or event.stanza):tag("feature", {var=xmlns_st_id}):up(); end); diff --git a/spec/scansion/mam_extended.scs b/spec/scansion/mam_extended.scs new file mode 100644 index 00000000..033547dd --- /dev/null +++ b/spec/scansion/mam_extended.scs @@ -0,0 +1,78 @@ +# MAM 0.7.x Extended features + +[Client] Romeo + jid: extmamtester@localhost + password: password + +--------- + +Romeo connects + +# Enable MAM so we can save some messages +Romeo sends: + + + + + + + +Romeo receives: + + + + + + + +# Some messages to look for later +Romeo sends: + + Hello + + +Romeo sends: + + U there? + + +Romeo sends: + + + + +Romeo receives: + + + + + + Hello + + + + + +Romeo receives: + + + + + + U there? + + + + + +# FIXME unstable tag order from util.rsm +Romeo receives: + + + + 2 + + + + + -- cgit v1.2.3