mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-21 16:55:07 -05:00
Take standards@ feedback into account
This commit is contained in:
parent
63715d1254
commit
5fe1b6fb16
94
xep-0444.xml
94
xep-0444.xml
@ -75,19 +75,20 @@
|
|||||||
</p>
|
</p>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Discovering support' anchor='disco'>
|
<section1 topic='Discovering support' anchor='disco'>
|
||||||
<p>
|
<section2 topic="Basic support" anchor="disco-base">
|
||||||
If a client implements message reactions, it MUST specify the
|
<p>
|
||||||
'urn:xmpp:reactions:0' feature in its service discovery information features
|
If a client implements message reactions, it MUST specify the
|
||||||
as specified in &xep0030; and the Entity Capabilities profile specified in &xep0115;.
|
'urn:xmpp:reactions:0' feature in its service discovery information features
|
||||||
</p>
|
as specified in &xep0030; and the Entity Capabilities profile specified in &xep0115;.
|
||||||
<example caption='Client requests information about a chat partner's client'><![CDATA[
|
</p>
|
||||||
|
<example caption='Client requests information about a chat partner's client'><![CDATA[
|
||||||
<iq type='get'
|
<iq type='get'
|
||||||
to='romeo@montague.lit/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
from='juliet@capulet.lit/balcony'
|
from='juliet@capulet.lit/balcony'
|
||||||
id='info1'>
|
id='info1'>
|
||||||
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
||||||
</iq>]]></example>
|
</iq>]]></example>
|
||||||
<example caption='Partner's client advertises support for reactions'><![CDATA[
|
<example caption='Partner's client advertises support for reactions'><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
to='juliet@capulet.lit/balcony'
|
to='juliet@capulet.lit/balcony'
|
||||||
from='romeo@montague.lit/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
@ -97,7 +98,48 @@
|
|||||||
<feature var='urn:xmpp:reactions:0'/>
|
<feature var='urn:xmpp:reactions:0'/>
|
||||||
...
|
...
|
||||||
</query>
|
</query>
|
||||||
|
</iq>]]></example>
|
||||||
|
</section2>
|
||||||
|
<section2 topic="Restricted reactions" anchor="disco-restricted">
|
||||||
|
<p>
|
||||||
|
In some cases, only a limited number and/or subset
|
||||||
|
of emojis are allowed to react to a message.
|
||||||
|
This is particularly useful in the context of gateways to other chat
|
||||||
|
networks that are not as permissive about which and how many emojis
|
||||||
|
can be used for message reactions.
|
||||||
|
MUC components may also allow room admins to restrict the subset and/or number
|
||||||
|
of emojis per message.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To allow clients to adapt their UIs, entities that have such restrictions in place
|
||||||
|
SHOULD advertise it with &xep0128; in a &xep0004; using the
|
||||||
|
'urn:xmpp:reactions:0:restrictions' namespace as FORM_TYPE.
|
||||||
|
</p>
|
||||||
|
<example caption='Entities advertises support for restricted reactions'><![CDATA[
|
||||||
|
<iq type='result'
|
||||||
|
to='juliet@capulet.lit/balcony'
|
||||||
|
from='romeo@montague.lit/orchard'
|
||||||
|
id='info1'>
|
||||||
|
<query xmlns='http://jabber.org/protocol/disco#info'>
|
||||||
|
...
|
||||||
|
<feature var='urn:xmpp:reactions:0'/>
|
||||||
|
<x xmlns='jabber:x:data' type='result'>
|
||||||
|
<field var='FORM_TYPE' type='hidden'>
|
||||||
|
<value>urn:xmpp:reactions:0:restrictions</value>
|
||||||
|
</field>
|
||||||
|
<field var='max_reactions_per_user'>
|
||||||
|
<value>1</value>
|
||||||
|
</field>
|
||||||
|
<field var='allowlist'>
|
||||||
|
<value>💘</value>
|
||||||
|
<value>❤️</value>
|
||||||
|
<value>💜</value>
|
||||||
|
</field>
|
||||||
|
</x>
|
||||||
|
...
|
||||||
|
</query>
|
||||||
</iq>]]></example>
|
</iq>]]></example>
|
||||||
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Use Cases' anchor='usecases'>
|
<section1 topic='Use Cases' anchor='usecases'>
|
||||||
<section2 topic="Sending reactions to a message" anchor="sending-reactions">
|
<section2 topic="Sending reactions to a message" anchor="sending-reactions">
|
||||||
@ -146,15 +188,11 @@
|
|||||||
<store xmlns="urn:xmpp:hints"/>
|
<store xmlns="urn:xmpp:hints"/>
|
||||||
</message>]]></example>
|
</message>]]></example>
|
||||||
</section2>
|
</section2>
|
||||||
<section2 topic="Rejecting a reaction" anchor="restricting-reactions">
|
<section2 topic="Rejecting a reaction" anchor="rejecting">
|
||||||
<p>
|
<p>
|
||||||
In some cases, only a limited number and/or subset
|
Entities implementing reaction restrictions MUST reply to invalid reactions payloads
|
||||||
of emojis are allowed to react to a message.
|
with a message type="error" containing a 'not-acceptable' error.
|
||||||
This is particularly useful in the context of gateways to other chat
|
The error payload SHOULD contain a human-readable text message explaining the reaction rules.
|
||||||
networks that are not as permissive about which and how many emojis
|
|
||||||
can be used for message reactions.
|
|
||||||
MUC components may also allow room admins to restrict the subset and/or number
|
|
||||||
of emojis per message.
|
|
||||||
</p>
|
</p>
|
||||||
<example caption="Romeo sends a message"><![CDATA[
|
<example caption="Romeo sends a message"><![CDATA[
|
||||||
<message from="romeo@legacy-love-network.capulet.net"
|
<message from="romeo@legacy-love-network.capulet.net"
|
||||||
@ -174,9 +212,6 @@
|
|||||||
</reactions>
|
</reactions>
|
||||||
<store xmlns="urn:xmpp:hints"/>
|
<store xmlns="urn:xmpp:hints"/>
|
||||||
</message>]]></example>
|
</message>]]></example>
|
||||||
<p>
|
|
||||||
In this case, the recipient (or any intermediary node) MUST reject the reaction-containing message.
|
|
||||||
</p>
|
|
||||||
<example caption="Romeo rejects the reactions"><![CDATA[
|
<example caption="Romeo rejects the reactions"><![CDATA[
|
||||||
<message from="romeo@legacy-love-network.capulet.net"
|
<message from="romeo@legacy-love-network.capulet.net"
|
||||||
to="juliet@capulet.net"
|
to="juliet@capulet.net"
|
||||||
@ -191,27 +226,8 @@
|
|||||||
</error>
|
</error>
|
||||||
</message>]]></example>
|
</message>]]></example>
|
||||||
<p>
|
<p>
|
||||||
When receiving this kind of error message, the reaction-sending entity MUST consider that its emoji reactions
|
When receiving this error message, the reaction-sending entity MUST revert the "message reactions"
|
||||||
to this message are now void.
|
to its previous state in its user interface.
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Optionally, an error message can contain a reactions element, listing the subset of emojis that were valid in
|
|
||||||
the original reactions message.
|
|
||||||
</p>
|
|
||||||
<example caption="Romeo removes a subset of reactions"><![CDATA[
|
|
||||||
<message from="romeo@legacy-love-network.capulet.net"
|
|
||||||
to="juliet@capulet.net"
|
|
||||||
type="error"
|
|
||||||
id="will-be-rejected1">
|
|
||||||
<error xmlns="jabber:client" type="modify">
|
|
||||||
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
|
|
||||||
<reactions id='restricted-reactions-1' xmlns='urn:xmpp:reactions:0'>
|
|
||||||
<reaction>💘</reaction>
|
|
||||||
</reactions>
|
|
||||||
</error>
|
|
||||||
</message>]]></example>
|
|
||||||
<p>
|
|
||||||
In this case, the reaction-sending entity MUST modify the emojis accordingly.
|
|
||||||
</p>
|
</p>
|
||||||
</section2>
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
|
Loading…
Reference in New Issue
Block a user