diff options
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/VKontakte/src/vk_proto.cpp | 2 | ||||
-rw-r--r-- | protocols/VKontakte/src/vk_proto.h | 3 | ||||
-rw-r--r-- | protocols/VKontakte/src/vk_thread.cpp | 16 |
3 files changed, 13 insertions, 8 deletions
diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp index 49a3736e81..633056f5b0 100644 --- a/protocols/VKontakte/src/vk_proto.cpp +++ b/protocols/VKontakte/src/vk_proto.cpp @@ -108,6 +108,8 @@ CVkProto::CVkProto(const char *szModuleName, const TCHAR *ptszUserName) : m_bNotificationFilterMentions = getBool("NotificationFilterMentions", true);
m_bUseNonStandardUrlEncode = getBool("UseNonStandardUrlEncode", true);
+
+ m_bSetBroadcast = false;
// Set all contacts offline -- in case we crashed
SetAllContactStatuses(ID_STATUS_OFFLINE);
vk_Instances.insert(this);
diff --git a/protocols/VKontakte/src/vk_proto.h b/protocols/VKontakte/src/vk_proto.h index 1d7a898f7c..e70d399565 100644 --- a/protocols/VKontakte/src/vk_proto.h +++ b/protocols/VKontakte/src/vk_proto.h @@ -586,7 +586,8 @@ private: m_bNotificationFilterReposts,
m_bNotificationFilterMentions,
m_bUseBBCOnAttacmentsAsNews,
- m_bUseNonStandardUrlEncode;
+ m_bUseNonStandardUrlEncode,
+ m_bSetBroadcast;
int m_iNewsInterval,
m_iNotificationsInterval,
diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp index a326002929..034cecd7e3 100644 --- a/protocols/VKontakte/src/vk_thread.cpp +++ b/protocols/VKontakte/src/vk_thread.cpp @@ -114,9 +114,9 @@ void CVkProto::SetServerStatus(int iNewStatus) ptrT ptszListeningToMsg(db_get_tsa(NULL, m_szModuleName, "ListeningTo"));
if (iNewStatus == ID_STATUS_OFFLINE) {
- m_iStatus = ID_STATUS_OFFLINE;
- if (!IsEmpty(ptszListeningToMsg))
+ if (!IsEmpty(ptszListeningToMsg) && m_bSetBroadcast)
RetrieveStatusMsg(oldStatusMsg);
+ m_iStatus = ID_STATUS_OFFLINE;
if (iOldStatus != ID_STATUS_OFFLINE && iOldStatus != ID_STATUS_INVISIBLE)
Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/account.setOffline.json", true, &CVkProto::OnReceiveSmth)
<< VER_API);
@@ -126,10 +126,10 @@ void CVkProto::SetServerStatus(int iNewStatus) Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/account.setOnline.json", true, &CVkProto::OnReceiveSmth)
<< VER_API);
}
- else {
- m_iStatus = ID_STATUS_INVISIBLE;
- if (!IsEmpty(ptszListeningToMsg))
+ else {
+ if (!IsEmpty(ptszListeningToMsg) && m_bSetBroadcast)
RetrieveStatusMsg(oldStatusMsg);
+ m_iStatus = ID_STATUS_INVISIBLE;
if (iOldStatus == ID_STATUS_ONLINE)
Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/account.setOffline.json", true, &CVkProto::OnReceiveSmth)
<< VER_API);
@@ -1041,6 +1041,7 @@ void CVkProto::RetrieveStatusMusic(const CMString &StatusMsg) CMString codeformat("API.status.set({text:\"%s\"});return null;");
code.AppendFormat(codeformat, ptszOldStatusMsg);
}
+ m_bSetBroadcast = false;
}
else {
if (m_iMusicSendMetod == sendBroadcastOnly) {
@@ -1072,6 +1073,7 @@ void CVkProto::RetrieveStatusMusic(const CMString &StatusMsg) "};return OldMsg;");
code.AppendFormat(codeformat, StatusMsg);
}
+ m_bSetBroadcast = true;
}
Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/execute.json", true, &CVkProto::OnReceiveStatus)
<< TCHAR_PARAM("code", code)
@@ -1093,8 +1095,8 @@ INT_PTR __cdecl CVkProto::SvcSetListeningTo(WPARAM, LPARAM lParam) tszListeningTo = ptrT((LPWSTR)CallService(MS_LISTENINGTO_GETPARSEDTEXT, (WPARAM)_T("%artist% - %title%"), (LPARAM)pliInfo));
else
tszListeningTo.Format(_T("%s - %s"),
- pliInfo->ptszArtist ? pliInfo->ptszArtist : _T(""),
- pliInfo->ptszTitle ? pliInfo->ptszTitle : _T(""));
+ pliInfo->ptszArtist ? pliInfo->ptszArtist : _T(""),
+ pliInfo->ptszTitle ? pliInfo->ptszTitle : _T(""));
setTString("ListeningTo", tszListeningTo);
}
RetrieveStatusMusic(tszListeningTo);
|