mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 15:15:10 +00:00
[ADD] Have avatars on first-message too
This commit is contained in:
parent
94090a8c97
commit
a48c3ba126
3 changed files with 21 additions and 6 deletions
|
|
@ -195,7 +195,6 @@ ASGetAvatar(const ParseeConfig *c, char *room, char *user)
|
||||||
ret = StrDuplicate(
|
ret = StrDuplicate(
|
||||||
JsonValueAsString(HashMapGet(reply, "avatar_url"))
|
JsonValueAsString(HashMapGet(reply, "avatar_url"))
|
||||||
);
|
);
|
||||||
StreamFlush(StreamStderr());
|
|
||||||
HttpClientContextFree(ctx);
|
HttpClientContextFree(ctx);
|
||||||
JsonFree(reply);
|
JsonFree(reply);
|
||||||
Free(path);
|
Free(path);
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
|
||||||
{
|
{
|
||||||
char *jid = ParseeEncodeMXID(state_key);
|
char *jid = ParseeEncodeMXID(state_key);
|
||||||
char *sha = NULL, *mime = NULL;
|
char *sha = NULL, *mime = NULL;
|
||||||
char *avatar = ASGetAvatar(data->config, room_id, state_key);
|
char *avatar = ASGetAvatar(data->config, NULL, state_key);
|
||||||
char *url = ParseeToUnauth(data, avatar);
|
char *url = ParseeToUnauth(data, avatar);
|
||||||
chat_id = ParseeGetFromRoomID(data, room_id);
|
chat_id = ParseeGetFromRoomID(data, room_id);
|
||||||
|
|
||||||
|
|
@ -115,7 +115,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
|
||||||
char *muc = ParseeGetMUCID(data, chat_id);
|
char *muc = ParseeGetMUCID(data, chat_id);
|
||||||
char *name = ASGetName(data->config, room_id, state_key);
|
char *name = ASGetName(data->config, room_id, state_key);
|
||||||
char *jabber = JoinMUC(data, event, jid, muc, name, sha);
|
char *jabber = JoinMUC(data, event, jid, muc, name, sha);
|
||||||
avatar = ASGetAvatar(data->config, room_id, state_key);
|
avatar = ASGetAvatar(data->config, NULL, state_key);
|
||||||
Log(LOG_DEBUG, "MATRIX: Joining as '%s' (avatar=%s)", jabber, avatar);
|
Log(LOG_DEBUG, "MATRIX: Joining as '%s' (avatar=%s)", jabber, avatar);
|
||||||
|
|
||||||
Free(jabber);
|
Free(jabber);
|
||||||
|
|
@ -333,7 +333,8 @@ GetXMPPInformation(ParseeData *data, HashMap *event, char **from, char **to)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *matrix_name;
|
char *matrix_name, *matrix_avatar;
|
||||||
|
char *mime, *sha;
|
||||||
|
|
||||||
muc_id = ParseeGetMUCID(data, chat_id);
|
muc_id = ParseeGetMUCID(data, chat_id);
|
||||||
if (!chat_id)
|
if (!chat_id)
|
||||||
|
|
@ -347,10 +348,16 @@ GetXMPPInformation(ParseeData *data, HashMap *event, char **from, char **to)
|
||||||
}
|
}
|
||||||
|
|
||||||
matrix_name = ASGetName(data->config, room_id, matrix_sender);
|
matrix_name = ASGetName(data->config, room_id, matrix_sender);
|
||||||
Free(JoinMUC(data, event, *from, muc_id, matrix_name, NULL));
|
matrix_avatar = ASGetAvatar(data->config, NULL, matrix_sender);
|
||||||
|
|
||||||
|
ASGetMIMESHA(data->config, matrix_avatar, &mime, &sha);
|
||||||
|
Free(JoinMUC(data, event, *from, muc_id, matrix_name, sha));
|
||||||
*to = muc_id;
|
*to = muc_id;
|
||||||
|
|
||||||
|
Free(matrix_avatar);
|
||||||
Free(matrix_name);
|
Free(matrix_name);
|
||||||
|
Free(mime);
|
||||||
|
Free(sha);
|
||||||
}
|
}
|
||||||
|
|
||||||
Free(chat_id);
|
Free(chat_id);
|
||||||
|
|
@ -437,8 +444,9 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
|
||||||
|
|
||||||
/* TODO: Avoid using the AS endpoints */
|
/* TODO: Avoid using the AS endpoints */
|
||||||
name = ASGetName(data->config, id, m_sender);
|
name = ASGetName(data->config, id, m_sender);
|
||||||
avatar = ASGetAvatar(data->config, id, sender);
|
avatar = ASGetAvatar(data->config, NULL, m_sender);
|
||||||
ASGetMIMESHA(data->config, avatar, &mime, &sha);
|
ASGetMIMESHA(data->config, avatar, &mime, &sha);
|
||||||
|
|
||||||
Free(JoinMUC(data, event, encoded_from, muc_id, name, sha));
|
Free(JoinMUC(data, event, encoded_from, muc_id, name, sha));
|
||||||
|
|
||||||
to = muc_id;
|
to = muc_id;
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,11 @@ XMLEncodeString(Stream *stream, char *data)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
if (!stream || !data)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < strlen(data); i++)
|
for (i = 0; i < strlen(data); i++)
|
||||||
{
|
{
|
||||||
char c = data[i];
|
char c = data[i];
|
||||||
|
|
@ -145,6 +150,9 @@ XMLEncodeString(Stream *stream, char *data)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
StreamPrintf(stream, "%c", c);
|
StreamPrintf(stream, "%c", c);
|
||||||
|
/* TODO: Maybe consider Unistrings and encode arbitrary Unicode
|
||||||
|
* codepoints * with special XML. Oughta make it printable, you know?
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue