[ADD/WIP] Parsee IDs, -v flag

This commit is contained in:
LDA 2024-08-16 16:38:21 +02:00
commit aa9b68e02d
7 changed files with 56 additions and 13 deletions

View file

@ -247,6 +247,7 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
char *sender = NULL;
char *unedited_id = MatrixGetEdit(event);
char *url = GrabString(event, 2, "content", "url");
char *encoded_from = NULL;
bool direct = false;
@ -284,9 +285,13 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
type = direct ? "chat" : "groupchat";
user = GrabString(json, 1, "xmpp_user");
unauth = ParseeToUnauth(data, url);
encoded_from = ParseeEncodeMXID(m_sender);
xmppified_user = StrConcat(3,
encoded_from, "@", jabber->host
);
if (direct)
{
xmppified_user = ParseeEncodeMXID(m_sender);
to = StrDuplicate(user);
Free(chat_id);
@ -300,7 +305,6 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
{
goto end;
}
xmppified_user = ParseeEncodeMXID(m_sender);
/* TODO: Check the name's validity.
* Is there a good way to check for that that isn't
@ -308,7 +312,7 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
name = ASGetName(data->config, id, m_sender);
rev = StrConcat(4, muc_id, "/", name, "[p]");
XMPPJoinMUC(jabber, xmppified_user, rev);
XMPPJoinMUC(jabber, encoded_from, rev);
to = muc_id;
@ -342,7 +346,7 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
char *xmpp_ident = StrRandom(32);
builder = CreateStanzaBuilder(xmppified_user, to, xmpp_ident);
SetStanzaType(builder, type);
SetStanzaBody(builder, xepd ? xepd : body);
SetStanzaBody(builder, unauth ? unauth : (xepd ? xepd : body));
SetStanzaReply(builder, stanza, sender);
SetStanzaLink(builder, unauth);
SetStanzaEdit(builder, origin_id);
@ -372,6 +376,7 @@ end:
Free(sender);
Free(unauth);
Free(unedited_id);
Free(encoded_from);
DbUnlock(data->db, ref);
ref = NULL;