(jabber) Throttle own VCard updates; move avatar-cache to /tmp/

This commit is contained in:
Jaidyn Ann 2021-08-01 18:35:53 -05:00
parent 150fd736e1
commit 8cca8a324e
2 changed files with 12 additions and 3 deletions

View File

@ -61,7 +61,8 @@ JabberHandler::JabberHandler()
:
fClient(NULL),
fVCardManager(NULL),
fSession(NULL)
fSession(NULL),
fLastOwnVCard(0)
{
fAvatars = new BList();
}
@ -1021,10 +1022,9 @@ JabberHandler::_SetupAvatarCache()
BPath path;
if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) != B_OK)
if (find_directory(B_SYSTEM_TEMP_DIRECTORY, &path) != B_OK)
return B_ERROR;
path.Append("Cardie/Cache/Accounts");
path.Append(GetName());
if (create_directory(path.Path(), 0755) != B_OK)
@ -1928,6 +1928,14 @@ JabberHandler::handleVCard(const gloox::JID& jid, const gloox::VCard* card)
if (!card)
return;
// Throttles updates to your own VCard― ime some servers spam for no reason
if (jid.bare() == fJid.bare()) {
bigtime_t last = fLastOwnVCard;
fLastOwnVCard = time(NULL);
if (fLastOwnVCard - last < 60)
return;
}
gloox::VCard::Name name = card->name();
gloox::VCard::Photo photo = card->photo();
BString nick(card->nickname().c_str());

View File

@ -126,6 +126,7 @@ private:
BPath fAvatarCachePath;
BMessage fAvatarCache;
BList* fAvatars;
bigtime_t fLastOwnVCard; // Last time VCard updated
void _SendMessage(BMessage* msg);
void _MessageSent(const char* id, const char* subject,