mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-14 00:45:10 +00:00
[ADD/WIP] Start adding reactions
This commit is contained in:
parent
de1ee3986e
commit
1126497d5b
7 changed files with 93 additions and 6 deletions
|
|
@ -38,6 +38,7 @@ MessageStanza(ParseeData *args, XMLElement *stanza)
|
|||
{
|
||||
XMPPComponent *jabber = args->jabber;
|
||||
|
||||
XMLElement *reactions = NULL;
|
||||
XMLElement *body = NULL;
|
||||
XMLElement *data = NULL;
|
||||
|
||||
|
|
@ -71,7 +72,7 @@ MessageStanza(ParseeData *args, XMLElement *stanza)
|
|||
char *s_id_str = XMPPGetStanzaID(stanza);
|
||||
char *o_id_str = XMPPGetOriginID(stanza);
|
||||
char *id_str = HashMapGet(stanza->attrs, "id");
|
||||
char *event_id;
|
||||
char *event_id = NULL;
|
||||
char *replaced = XMPPGetReplacedID(stanza);
|
||||
|
||||
/* TODO: Create smarter puppet names */
|
||||
|
|
@ -85,6 +86,9 @@ MessageStanza(ParseeData *args, XMLElement *stanza)
|
|||
|
||||
/* Check if it is a media link */
|
||||
oob = XMLookForTKV(stanza, "x", "xmlns", "jabber:x:oob");
|
||||
reactions = XMLookForTKV(stanza,
|
||||
"reactions", "xmlns", "urn:xmpp:reactions:0"
|
||||
);
|
||||
if (oob)
|
||||
{
|
||||
char *mxc, *mime = NULL;
|
||||
|
|
@ -102,6 +106,28 @@ MessageStanza(ParseeData *args, XMLElement *stanza)
|
|||
Free(mime);
|
||||
Free(mxc);
|
||||
}
|
||||
else if (reactions)
|
||||
{
|
||||
char *reacted_id = HashMapGet(reactions->attrs, "id");
|
||||
Array *react_child = reactions->children;
|
||||
size_t reacts = ArraySize(react_child);
|
||||
event_id = ParseeEventFromSID(args, chat_id, reacted_id);
|
||||
for (i = 0; i < reacts; i++)
|
||||
{
|
||||
XMLElement *reaction, *react_data;
|
||||
reaction = ArrayGet(react_child, i);
|
||||
react_data = ArrayGet(reaction->children, 0);
|
||||
|
||||
/* TODO: We should manage removed reactions. */
|
||||
Free(ASSend(
|
||||
args->config, mroom_id, encoded,
|
||||
"m.reaction",
|
||||
MatrixCreateReact(event_id, react_data->data)
|
||||
));
|
||||
}
|
||||
Free(event_id);
|
||||
event_id = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
event_id = ASSend(
|
||||
|
|
@ -166,6 +192,7 @@ IQDiscoGet(ParseeData *args, XMPPComponent *jabber, XMLElement *stanza)
|
|||
while (0)
|
||||
|
||||
AdvertiseSimple("urn:xmpp:message-correct:0");
|
||||
AdvertiseSimple("urn:xmpp:reactions:0");
|
||||
AdvertiseSimple("urn:xmpp:styling:0");
|
||||
AdvertiseSimple("urn:xmpp:reply:0");
|
||||
AdvertiseSimple("urn:xmpp:sid:0");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue