mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 19:55:10 +00:00
[ADD/MID] Clean up code, nick changes, XMPP nofly.
This commit is contained in:
parent
47823ba56b
commit
71bef54634
2 changed files with 59 additions and 49 deletions
|
|
@ -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. */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue