[ADD] Have avatars on first-message too

This commit is contained in:
LDA 2024-10-08 17:27:25 +02:00
commit a48c3ba126
3 changed files with 21 additions and 6 deletions

View file

@ -195,7 +195,6 @@ ASGetAvatar(const ParseeConfig *c, char *room, char *user)
ret = StrDuplicate(
JsonValueAsString(HashMapGet(reply, "avatar_url"))
);
StreamFlush(StreamStderr());
HttpClientContextFree(ctx);
JsonFree(reply);
Free(path);

View file

@ -103,7 +103,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
{
char *jid = ParseeEncodeMXID(state_key);
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);
chat_id = ParseeGetFromRoomID(data, room_id);
@ -115,7 +115,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
char *muc = ParseeGetMUCID(data, chat_id);
char *name = ASGetName(data->config, room_id, state_key);
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);
Free(jabber);
@ -333,7 +333,8 @@ GetXMPPInformation(ParseeData *data, HashMap *event, char **from, char **to)
}
else
{
char *matrix_name;
char *matrix_name, *matrix_avatar;
char *mime, *sha;
muc_id = ParseeGetMUCID(data, 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);
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;
Free(matrix_avatar);
Free(matrix_name);
Free(mime);
Free(sha);
}
Free(chat_id);
@ -437,8 +444,9 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
/* TODO: Avoid using the AS endpoints */
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);
Free(JoinMUC(data, event, encoded_from, muc_id, name, sha));
to = muc_id;

View file

@ -116,6 +116,11 @@ XMLEncodeString(Stream *stream, char *data)
{
size_t i;
if (!stream || !data)
{
return;
}
for (i = 0; i < strlen(data); i++)
{
char c = data[i];
@ -145,6 +150,9 @@ XMLEncodeString(Stream *stream, char *data)
continue;
}
StreamPrintf(stream, "%c", c);
/* TODO: Maybe consider Unistrings and encode arbitrary Unicode
* codepoints * with special XML. Oughta make it printable, you know?
*/
}
}
void