diff options
author | George Hazan <ghazan@miranda.im> | 2023-01-17 14:37:50 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-01-17 14:37:50 +0300 |
commit | 4c60037f6852f7771ed86e0b285a872e4bbadb87 (patch) | |
tree | a6977ea0a68db5612f3ac8664efd9d66a483e52c /protocols/VKontakte | |
parent | 893fe6d2f16f5e70087aa9d5949aff5aaff556d2 (diff) |
PROTO_INTERFACE::GetAvatarPath - new helper for calculating avatars' root for an account
Diffstat (limited to 'protocols/VKontakte')
-rw-r--r-- | protocols/VKontakte/src/vk_avatars.cpp | 10 | ||||
-rw-r--r-- | protocols/VKontakte/src/vk_proto.cpp | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/protocols/VKontakte/src/vk_avatars.cpp b/protocols/VKontakte/src/vk_avatars.cpp index b7829cd58a..f6e02d8c2c 100644 --- a/protocols/VKontakte/src/vk_avatars.cpp +++ b/protocols/VKontakte/src/vk_avatars.cpp @@ -130,9 +130,8 @@ INT_PTR CVkProto::SvcGetMyAvatar(WPARAM wParam, LPARAM lParam) void CVkProto::GetAvatarFileName(MCONTACT hContact, wchar_t *pwszDest, size_t cbLen)
{
- int tPathLen = mir_snwprintf(pwszDest, cbLen, L"%s\\%S", VARSW(L"%miranda_avatarcache%").get(), m_szModuleName);
- CreateDirectoryTreeW(pwszDest);
- pwszDest[tPathLen++] = '\\';
+ CMStringW wszPath(GetAvatarPath());
+ wszPath += '\\';
const wchar_t *szFileType = L".jpg";
ptrW wszUrl(getWStringA(hContact, "AvatarUrl"));
@@ -144,11 +143,12 @@ void CVkProto::GetAvatarFileName(MCONTACT hContact, wchar_t *pwszDest, size_t cb p = wcsrchr(wszUrl, '.');
if (p != nullptr)
szFileType = p;
-
}
LONG id = getDword(hContact, "ID", VK_INVALID_USER);
- mir_snwprintf(pwszDest + tPathLen, MAX_PATH - tPathLen, L"%d%s", id, szFileType);
+ wszPath.AppendFormat(L"%d%s", id, szFileType);
+
+ wcsncpy_s(pwszDest, cbLen, wszPath, _TRUNCATE);
}
void CVkProto::SetAvatarUrl(MCONTACT hContact, CMStringW &wszUrl)
diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp index b894b36a64..f16be722f7 100644 --- a/protocols/VKontakte/src/vk_proto.cpp +++ b/protocols/VKontakte/src/vk_proto.cpp @@ -70,6 +70,9 @@ CVkProto::CVkProto(const char *szModuleName, const wchar_t *pwszUserName) : // Set all contacts offline -- in case we crashed
SetAllContactStatuses(ID_STATUS_OFFLINE);
+ // Avatars
+ CreateDirectoryTreeW(GetAvatarPath());
+
// Group chats
GCREGISTER gcr = {};
gcr.ptszDispName = m_tszUserName;
|