[ADD/MID] Clean up code, nick changes, XMPP nofly.

This commit is contained in:
LDA 2024-07-08 08:53:26 +02:00
commit 71bef54634
2 changed files with 59 additions and 49 deletions

View file

@ -55,6 +55,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
{
char *muc = ParseeGetMUCID(data, chat_id);
char *rev = StrConcat(2, muc, "/parsee");
/* Make the user join the MUC */
XMPPJoinMUC(data->jabber, jid, rev);
Free(rev);
@ -63,9 +64,12 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
Free(jid);
Free(chat_id);
}
else if (StrEquals(membership, "leave") && !ParseeIsPuppet(conf, state_key))
else if ((StrEquals(membership, "leave") ||
StrEquals(membership, "ban"))
&& !ParseeIsPuppet(conf, state_key))
{
/* TODO: Manage bans */
/* TODO: Manage bans on their own, rather than a spicy leave.
* Then again, this could cause desync issues. */
XMPPComponent *jabber = data->jabber;
char *jid = ParseeEncodeMXID(state_key);
char *name = NULL, *rev = NULL, *muc_id = NULL;
@ -84,7 +88,6 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
rev = StrConcat(4, muc_id, "/", name, "[p]");
XMPPLeaveMUC(jabber, jid, rev, reason);
end:
Free(chat_id);
Free(muc_id);
@ -104,7 +107,11 @@ ParseeBotHandler(ParseeData *data, HashMap *event)
"@", data->config->sender_localpart,
":", data->config->homeserver_host
);
Command *cmd;
Command *cmd = NULL;
ParseeCmdArg arg = {
.data = data,
.event = event
};
if (StrEquals(msgtype, "m.notice"))
{
@ -137,13 +144,7 @@ ParseeBotHandler(ParseeData *data, HashMap *event)
body++;
cmd = CommandParse(body);
{
ParseeCmdArg arg;
arg.data = data;
arg.event = event;
RouteCommand(data->handler, cmd, &arg);
}
RouteCommand(data->handler, cmd, &arg);
Free(profile);
CommandFree(cmd);
@ -308,10 +309,16 @@ ParseeEventHandler(ParseeData *data, HashMap *event)
ParseeMemberHandler(data, event);
return;
}
if (StrEquals(event_type, "m.room.message"))
else if (StrEquals(event_type, "m.room.message"))
{
ParseeMessageHandler(data, event);
return;
}
else if (StrEquals(event_type, "m.room.redaction"))
{
Log(LOG_WARNING, "Unsupported event redaction %s", event_id);
/* TODO: Implement Matrix->XMPP redactions. */
}
}