Skip to content

Commit 62da43a

Browse files
authored
Merge pull request #104 from sstrigler/update_spam_reporting_0377
update xep-0377 spam reporting to urn:xmpp:reporting:1
2 parents d78344f + f2563a7 commit 62da43a

File tree

5 files changed

+149
-229
lines changed

5 files changed

+149
-229
lines changed

include/xmpp_codec.hrl

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@
190190
cdata = <<>> :: binary()}).
191191
-type scram_upgrade_salt() :: #scram_upgrade_salt{}.
192192

193+
-record(receipt_request, {}).
194+
-type receipt_request() :: #receipt_request{}.
195+
193196
-record(legacy_auth_feature, {}).
194197
-type legacy_auth_feature() :: #legacy_auth_feature{}.
195198

@@ -640,7 +643,7 @@
640643
items = [] :: [#ps_item{}]}).
641644
-type ps_publish() :: #ps_publish{}.
642645

643-
-record(report, {reason :: 'abuse' | 'spam' | 'undefined',
646+
-record(report, {reason :: 'abuse' | 'spam',
644647
text = [] :: [#text{}]}).
645648
-type report() :: #report{}.
646649

@@ -856,6 +859,11 @@
856859
resource :: 'undefined' | binary()}).
857860
-type legacy_auth() :: #legacy_auth{}.
858861

862+
-record(privacy_query, {lists = [] :: [#privacy_list{}],
863+
default :: 'none' | 'undefined' | binary(),
864+
active :: 'none' | 'undefined' | binary()}).
865+
-type privacy_query() :: #privacy_query{}.
866+
859867
-record(pubsub_serverinfo_remote_domain, {name = <<>> :: binary(),
860868
type = [] :: ['bidi' | 'incoming' | 'outgoing']}).
861869
-type pubsub_serverinfo_remote_domain() :: #pubsub_serverinfo_remote_domain{}.
@@ -918,6 +926,14 @@
918926
-record(credentials, {services = [] :: [#service{}]}).
919927
-type credentials() :: #credentials{}.
920928

929+
-record(vcard_email, {home = false :: boolean(),
930+
work = false :: boolean(),
931+
internet = false :: boolean(),
932+
pref = false :: boolean(),
933+
x400 = false :: boolean(),
934+
userid :: 'undefined' | binary()}).
935+
-type vcard_email() :: #vcard_email{}.
936+
921937
-record(block_item, {jid :: jid:jid(),
922938
spam_report :: 'undefined' | #report{}}).
923939
-type block_item() :: #block_item{}.
@@ -1238,6 +1254,38 @@
12381254
suffix :: 'undefined' | binary()}).
12391255
-type vcard_name() :: #vcard_name{}.
12401256

1257+
-record(vcard_temp, {version :: 'undefined' | binary(),
1258+
fn :: 'undefined' | binary(),
1259+
n :: 'undefined' | #vcard_name{},
1260+
nickname :: 'undefined' | binary(),
1261+
photo :: 'undefined' | #vcard_photo{},
1262+
bday :: 'undefined' | binary(),
1263+
adr = [] :: [#vcard_adr{}],
1264+
label = [] :: [#vcard_label{}],
1265+
tel = [] :: [#vcard_tel{}],
1266+
email = [] :: [#vcard_email{}],
1267+
jabberid :: 'undefined' | binary(),
1268+
mailer :: 'undefined' | binary(),
1269+
tz :: 'undefined' | binary(),
1270+
geo :: 'undefined' | #vcard_geo{},
1271+
title :: 'undefined' | binary(),
1272+
role :: 'undefined' | binary(),
1273+
logo :: 'undefined' | #vcard_logo{},
1274+
org :: 'undefined' | #vcard_org{},
1275+
categories = [] :: [binary()],
1276+
note :: 'undefined' | binary(),
1277+
prodid :: 'undefined' | binary(),
1278+
rev :: 'undefined' | binary(),
1279+
sort_string :: 'undefined' | binary(),
1280+
sound :: 'undefined' | #vcard_sound{},
1281+
uid :: 'undefined' | binary(),
1282+
url :: 'undefined' | binary(),
1283+
class :: 'confidential' | 'private' | 'public' | 'undefined',
1284+
key :: 'undefined' | #vcard_key{},
1285+
desc :: 'undefined' | binary(),
1286+
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
1287+
-type vcard_temp() :: #vcard_temp{}.
1288+
12411289
-record(ibb_data, {sid = <<>> :: binary(),
12421290
seq :: non_neg_integer(),
12431291
data = <<>> :: binary()}).
@@ -1351,65 +1399,6 @@
13511399
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
13521400
-type jingle() :: #jingle{}.
13531401

1354-
-record(muc_subscription, {jid :: undefined | jid:jid(),
1355-
nick = <<>> :: binary(),
1356-
events = [] :: [binary()]}).
1357-
-type muc_subscription() :: #muc_subscription{}.
1358-
1359-
-record(muc_subscriptions, {list = [] :: [#muc_subscription{}]}).
1360-
-type muc_subscriptions() :: #muc_subscriptions{}.
1361-
1362-
-record(pubsub_owner, {affiliations :: 'undefined' | {binary(),[#ps_affiliation{}]},
1363-
configure :: 'undefined' | {binary(),'undefined' | #xdata{}},
1364-
default :: 'undefined' | {binary(),'undefined' | #xdata{}},
1365-
delete :: 'undefined' | {binary(),binary()},
1366-
purge :: 'undefined' | binary(),
1367-
subscriptions :: 'undefined' | {binary(),[#ps_subscription{}]}}).
1368-
-type pubsub_owner() :: #pubsub_owner{}.
1369-
1370-
-record(receipt_request, {}).
1371-
-type receipt_request() :: #receipt_request{}.
1372-
1373-
-record(vcard_email, {home = false :: boolean(),
1374-
work = false :: boolean(),
1375-
internet = false :: boolean(),
1376-
pref = false :: boolean(),
1377-
x400 = false :: boolean(),
1378-
userid :: 'undefined' | binary()}).
1379-
-type vcard_email() :: #vcard_email{}.
1380-
1381-
-record(vcard_temp, {version :: 'undefined' | binary(),
1382-
fn :: 'undefined' | binary(),
1383-
n :: 'undefined' | #vcard_name{},
1384-
nickname :: 'undefined' | binary(),
1385-
photo :: 'undefined' | #vcard_photo{},
1386-
bday :: 'undefined' | binary(),
1387-
adr = [] :: [#vcard_adr{}],
1388-
label = [] :: [#vcard_label{}],
1389-
tel = [] :: [#vcard_tel{}],
1390-
email = [] :: [#vcard_email{}],
1391-
jabberid :: 'undefined' | binary(),
1392-
mailer :: 'undefined' | binary(),
1393-
tz :: 'undefined' | binary(),
1394-
geo :: 'undefined' | #vcard_geo{},
1395-
title :: 'undefined' | binary(),
1396-
role :: 'undefined' | binary(),
1397-
logo :: 'undefined' | #vcard_logo{},
1398-
org :: 'undefined' | #vcard_org{},
1399-
categories = [] :: [binary()],
1400-
note :: 'undefined' | binary(),
1401-
prodid :: 'undefined' | binary(),
1402-
rev :: 'undefined' | binary(),
1403-
sort_string :: 'undefined' | binary(),
1404-
sound :: 'undefined' | #vcard_sound{},
1405-
uid :: 'undefined' | binary(),
1406-
url :: 'undefined' | binary(),
1407-
class :: 'confidential' | 'private' | 'public' | 'undefined',
1408-
key :: 'undefined' | #vcard_key{},
1409-
desc :: 'undefined' | binary(),
1410-
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
1411-
-type vcard_temp() :: #vcard_temp{}.
1412-
14131402
-record(register, {registered = false :: boolean(),
14141403
remove = false :: boolean(),
14151404
instructions :: 'undefined' | binary(),
@@ -1434,10 +1423,21 @@
14341423
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
14351424
-type register() :: #register{}.
14361425

1437-
-record(privacy_query, {lists = [] :: [#privacy_list{}],
1438-
default :: 'none' | 'undefined' | binary(),
1439-
active :: 'none' | 'undefined' | binary()}).
1440-
-type privacy_query() :: #privacy_query{}.
1426+
-record(muc_subscription, {jid :: undefined | jid:jid(),
1427+
nick = <<>> :: binary(),
1428+
events = [] :: [binary()]}).
1429+
-type muc_subscription() :: #muc_subscription{}.
1430+
1431+
-record(muc_subscriptions, {list = [] :: [#muc_subscription{}]}).
1432+
-type muc_subscriptions() :: #muc_subscriptions{}.
1433+
1434+
-record(pubsub_owner, {affiliations :: 'undefined' | {binary(),[#ps_affiliation{}]},
1435+
configure :: 'undefined' | {binary(),'undefined' | #xdata{}},
1436+
default :: 'undefined' | {binary(),'undefined' | #xdata{}},
1437+
delete :: 'undefined' | {binary(),binary()},
1438+
purge :: 'undefined' | binary(),
1439+
subscriptions :: 'undefined' | {binary(),[#ps_subscription{}]}}).
1440+
-type pubsub_owner() :: #pubsub_owner{}.
14411441

14421442
-type xmpp_element() :: address() |
14431443
addresses() |

specs/xmpp_codec.spec

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -230,21 +230,9 @@
230230
refs = [#ref{name = block_item,
231231
label = '$items'}]}).
232232

233-
-xml(report_reason_abuse,
234-
#elem{name = <<"abuse">>,
235-
xmlns = <<"urn:xmpp:reporting:0">>,
236-
module = 'xep0377',
237-
result = 'abuse'}).
238-
239-
-xml(report_reason_spam,
240-
#elem{name = <<"spam">>,
241-
xmlns = <<"urn:xmpp:reporting:0">>,
242-
module = 'xep0377',
243-
result = 'spam'}).
244-
245233
-xml(report_text,
246234
#elem{name = <<"text">>,
247-
xmlns = <<"urn:xmpp:reporting:0">>,
235+
xmlns = <<"urn:xmpp:reporting:1">>,
248236
module = 'xep0377',
249237
result = {text, '$lang', '$data'},
250238
cdata = #cdata{label = '$data'},
@@ -254,16 +242,14 @@
254242

255243
-xml(report,
256244
#elem{name = <<"report">>,
257-
xmlns = <<"urn:xmpp:reporting:0">>,
245+
xmlns = <<"urn:xmpp:reporting:1">>,
258246
module = 'xep0377',
259247
result = {report, '$reason', '$text'},
260-
refs = [#ref{name = report_reason_abuse,
261-
label = '$reason',
262-
min = 0, max = 1},
263-
#ref{name = report_reason_spam,
264-
label = '$reason',
265-
min = 0, max = 1},
266-
#ref{name = report_text,
248+
attrs = [#attr{name = <<"reason">>,
249+
required = true,
250+
enc = {enc_reporting_reason, []},
251+
dec = {dec_reporting_reason, []}}],
252+
refs = [#ref{name = report_text,
267253
label = '$text'}]}).
268254

269255
-xml(disco_identity,
@@ -5907,6 +5893,13 @@ dec_message_type(<<"headline">>) -> headline;
59075893
dec_message_type(<<"error">>) -> error;
59085894
dec_message_type(_) -> normal.
59095895

5896+
enc_reporting_reason(abuse) -> <<"urn:xmpp:reporting:abuse">>;
5897+
enc_reporting_reason(spam) -> <<"urn:xmpp:reporting:spam">>.
5898+
5899+
-spec dec_reporting_reason(_) -> abuse | spam.
5900+
dec_reporting_reason(<<"urn:xmpp:reporting:abuse">>) -> abuse;
5901+
dec_reporting_reason(<<"urn:xmpp:reporting:spam">>) -> spam.
5902+
59105903
%% Local Variables:
59115904
%% mode: erlang
59125905
%% End:

src/xep0191.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,11 @@ decode_block_item_els(__TopXMLNS, __Opts,
227227
_attrs,
228228
__TopXMLNS)
229229
of
230-
<<"urn:xmpp:reporting:0">> ->
230+
<<"urn:xmpp:reporting:1">> ->
231231
decode_block_item_els(__TopXMLNS,
232232
__Opts,
233233
_els,
234-
xep0377:decode_report(<<"urn:xmpp:reporting:0">>,
234+
xep0377:decode_report(<<"urn:xmpp:reporting:1">>,
235235
__Opts,
236236
_el));
237237
_ ->

0 commit comments

Comments
 (0)