diff --git a/include/mam_query.hrl b/include/mam_query.hrl index c0a31d6d..1dc1b8d1 100644 --- a/include/mam_query.hrl +++ b/include/mam_query.hrl @@ -1,20 +1,28 @@ %% Created automatically by xdata generator (xdata_codec.erl) %% Source: mam_query.xdata -%% Form type: urn:xmpp:mam:1 +%% Form type: urn:xmpp:mam:2 %% Document: XEP-0313 -type property() :: {'with', jid:jid()} | {'start', erlang:timestamp()} | {'end', erlang:timestamp()} | - {'withtext', binary()}. + {'withtext', binary()} | + {'after-id', binary()} | + {'before-id', binary()} | + {'ids', [binary()]}. -type result() :: [property()]. +-type options(T) :: [{binary(), T}]. -type form_property() :: {'with', jid:jid() | undefined} | {'start', erlang:timestamp() | undefined} | {'end', erlang:timestamp() | undefined} | - {'withtext', binary()}. + {'withtext', binary()} | + {'after-id', binary()} | + {'before-id', binary()} | + {'ids', [binary()]} | + {'ids', [binary()], options(binary())}. -type form() :: [form_property() | xdata_field()]. -type error_reason() :: {form_type_mismatch, binary()} | diff --git a/include/ns.hrl b/include/ns.hrl index 69254f5b..ae990b74 100644 --- a/include/ns.hrl +++ b/include/ns.hrl @@ -152,6 +152,7 @@ -define(NS_MAM_0, <<"urn:xmpp:mam:0">>). -define(NS_MAM_1, <<"urn:xmpp:mam:1">>). -define(NS_MAM_2, <<"urn:xmpp:mam:2">>). +-define(NS_MAM_2_EXTENDED, <<"urn:xmpp:mam:2#extended">>). -define(NS_MAM_FULLTEXT_0, <<"urn:xmpp:fulltext:0">>). -define(NS_SID_0, <<"urn:xmpp:sid:0">>). -define(NS_INBOX_1, <<"urn:xmpp:inbox:1">>). diff --git a/include/xmpp_codec.hrl b/include/xmpp_codec.hrl index 1c08e226..a27a7106 100644 --- a/include/xmpp_codec.hrl +++ b/include/xmpp_codec.hrl @@ -274,6 +274,10 @@ -record(gone, {uri = <<>> :: binary()}). -type gone() :: #gone{}. +-record(mam_metadata_end, {id = <<>> :: binary(), + timestamp :: erlang:timestamp()}). +-type mam_metadata_end() :: #mam_metadata_end{}. + -record(message_thread, {parent = <<>> :: binary(), data = <<>> :: binary()}). -type message_thread() :: #message_thread{}. @@ -311,6 +315,10 @@ xmlns = <<>> :: binary()}). -type sm_resume() :: #sm_resume{}. +-record(mam_metadata_start, {id = <<>> :: binary(), + timestamp :: erlang:timestamp()}). +-type mam_metadata_start() :: #mam_metadata_start{}. + -record(jingle_content, {creator :: 'initiator' | 'responder', disposition = <<>> :: binary(), name = <<>> :: binary(), @@ -384,6 +392,10 @@ desc = <<>> :: binary()}). -type delay() :: #delay{}. +-record(mam_metadata, {start :: 'undefined' | #mam_metadata_start{}, + 'end' :: 'undefined' | #mam_metadata_end{}}). +-type mam_metadata() :: #mam_metadata{}. + -record(handshake, {data = <<>> :: binary()}). -type handshake() :: #handshake{}. @@ -915,12 +927,6 @@ -record(muc_hats, {hats = [] :: [#muc_hat{}]}). -type muc_hats() :: #muc_hats{}. --record(oob_x, {url :: binary(), - desc = <<>> :: binary(), - sid = <<>> :: binary(), - sub_els = [] :: [xmpp_element() | fxml:xmlel()]}). --type oob_x() :: #oob_x{}. - -record(x509_ca_list, {certs = [] :: [binary()]}). -type x509_ca_list() :: #x509_ca_list{}. @@ -1468,6 +1474,12 @@ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}). -type vcard_temp() :: #vcard_temp{}. +-record(oob_x, {url :: binary(), + desc = <<>> :: binary(), + sid = <<>> :: binary(), + sub_els = [] :: [xmpp_element() | fxml:xmlel()]}). +-type oob_x() :: #oob_x{}. + -type xmpp_element() :: address() | addresses() | adhoc_actions() | @@ -1557,6 +1569,9 @@ legacy_auth_feature() | mam_archived() | mam_fin() | + mam_metadata() | + mam_metadata_end() | + mam_metadata_start() | mam_prefs() | mam_query() | mam_result() | diff --git a/specs/mam_query.xdata b/specs/mam_query.xdata index 52f12bfc..96372c98 100644 --- a/specs/mam_query.xdata +++ b/specs/mam_query.xdata @@ -1,5 +1,5 @@ - urn:xmpp:mam:1 + urn:xmpp:mam:2 XEP-0313 Form to query message archives + + + + +