mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 21:25:11 +00:00
[ADD] Respect MIME, start bridging leaves/kicks
Wow, this one _wasn't_ pushed at 3AM, Outstanding.
This commit is contained in:
parent
4d055f3688
commit
43b3f8aaf5
8 changed files with 146 additions and 24 deletions
|
|
@ -63,6 +63,35 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
|
|||
Free(jid);
|
||||
Free(chat_id);
|
||||
}
|
||||
else if (StrEquals(membership, "leave") && !ParseeIsPuppet(conf, state_key))
|
||||
{
|
||||
/* TODO: Manage bans */
|
||||
XMPPComponent *jabber = data->jabber;
|
||||
char *jid = ParseeEncodeMXID(state_key);
|
||||
char *name = NULL, *rev = NULL, *muc_id = NULL;
|
||||
char *reason = GrabString(event, 2, "content", "reason");
|
||||
|
||||
/* Try to find the chat ID */
|
||||
chat_id = ParseeGetFromRoomID(data, room_id);
|
||||
muc_id = ParseeGetMUCID(data, chat_id);
|
||||
if (!chat_id)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* TODO: Check the name's validity */
|
||||
name = ASGetName(data->config, room_id, state_key);
|
||||
rev = StrConcat(4, muc_id, "/", name, "[p]");
|
||||
|
||||
XMPPLeaveMUC(jabber, jid, rev, reason);
|
||||
|
||||
end:
|
||||
Free(chat_id);
|
||||
Free(muc_id);
|
||||
Free(name);
|
||||
Free(rev);
|
||||
Free(jid);
|
||||
}
|
||||
}
|
||||
static void
|
||||
ParseeBotHandler(ParseeData *data, HashMap *event)
|
||||
|
|
@ -95,7 +124,6 @@ ParseeBotHandler(ParseeData *data, HashMap *event)
|
|||
return;
|
||||
}
|
||||
|
||||
/* TODO: Make an improvment. This is the bare minimum */
|
||||
if (!ParseeIsAdmin(data, sender))
|
||||
{
|
||||
Free(ASSend(
|
||||
|
|
@ -172,8 +200,6 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
/* TODO: Reunite DM/MUC code to bring feature parity. */
|
||||
type = direct ? "chat" : "groupchat";
|
||||
user = GrabString(json, 1, "xmpp_user");
|
||||
unauth = ParseeToUnauth(data, url);
|
||||
|
|
@ -237,7 +263,7 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
|
|||
stanza, sender, ev_id, unauth, origin_id,
|
||||
xmpp_ident
|
||||
);
|
||||
/* Culprit */
|
||||
|
||||
if (direct)
|
||||
{
|
||||
ParseePushDMStanza(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue