diff options
| author | Sergey Bolhovskoy <elzorfox@ya.ru> | 2015-02-06 07:52:46 +0000 | 
|---|---|---|
| committer | Sergey Bolhovskoy <elzorfox@ya.ru> | 2015-02-06 07:52:46 +0000 | 
| commit | 7aa194b9f14d8f1520ee248b6dbc643bc57aefa9 (patch) | |
| tree | 4a1e81885319625cfdeaa30a6ced3d26606d62f9 | |
| parent | 890f005fb098f226924dd04eb402a8dc8490a753 (diff) | |
VKontakte: 
code cleanup and optimization
git-svn-id: http://svn.miranda-ng.org/main/trunk@12016 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
| -rw-r--r-- | protocols/VKontakte/src/misc.cpp | 47 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk.h | 4 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_chats.cpp | 3 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_feed.cpp | 3 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_history.cpp | 9 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_proto.cpp | 7 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_thread.cpp | 50 | 
7 files changed, 68 insertions, 55 deletions
diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp index 414d9fc65a..4d3560d128 100644 --- a/protocols/VKontakte/src/misc.cpp +++ b/protocols/VKontakte/src/misc.cpp @@ -19,6 +19,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.  static char* szImageTypes[] = { "photo_2560", "photo_1280", "photo_807", "photo_604", "photo_256", "photo_130", "photo_128", "photo_75", "photo_64" };
 +bool IsEmpty(TCHAR *str)
 +{
 +	if (str == NULL)
 +		return true;
 +	if (str[0] == 0)
 +		return true;
 +	return false;
 +}
 +
 +bool IsEmpty(char *str)
 +{
 +	if (str == NULL)
 +		return true;
 +	if (str[0] == 0)
 +		return true;
 +	return false;
 +}
 +
  CMString json_as_CMString(JSONNODE* pNode)
  {
  	ptrT pString(json_as_string(pNode));
 @@ -345,8 +363,8 @@ bool CVkProto::CheckJsonResult(AsyncHttpRequest *pReq, JSONNODE *pNode)  			pReq->m_iRetry--;
  		}
  		else {
 -			CMString msg, msgformat = TranslateT("Error %d. Data will not be sent or received.");
 -			msg.AppendFormat(msgformat, iErrorCode);
 +			CMString msg;
 +			msg.AppendFormat(TranslateT("Error %d. Data will not be sent or received."), iErrorCode);
  			MsgPopup(NULL, msg.GetBuffer(), TranslateT("Error"), true);
  			debugLogA("CVkProto::CheckJsonResult SendError");
  		}
 @@ -518,26 +536,23 @@ void __cdecl CVkProto::DBAddAuthRequestThread(void *p)  	if (hContact == NULL || hContact == INVALID_CONTACT_ID || !IsOnline())
  		return;
 -	for (int i = 0; i < MAX_RETRIES && CMString(ptrT(db_get_tsa(hContact, m_szModuleName, "Nick"))).IsEmpty(); i++) {
 +	for (int i = 0; i < MAX_RETRIES && IsEmpty(ptrT(db_get_tsa(hContact, m_szModuleName, "Nick"))); i++) {
  		Sleep(1500);
  		if (!IsOnline())
  			return;
  	}
 +
  	DBAddAuthRequest(hContact);
  }
  void CVkProto::DBAddAuthRequest(const MCONTACT hContact)
  {
  	debugLogA("CVkProto::DBAddAuthRequest");
 -
 -	CMString tszNick = ptrT(db_get_tsa(hContact, m_szModuleName, "Nick"));
 -	CMString tszFirstName = ptrT(db_get_tsa(hContact, m_szModuleName, "FirstName"));
 -	CMString tszLastName = ptrT(db_get_tsa(hContact, m_szModuleName, "LastName"));
 -	
 -	ptrA szNick(mir_utf8encodeT(tszNick.GetBuffer()));
 -	ptrA szFirstName(mir_utf8encodeT(tszFirstName.GetBuffer()));
 -	ptrA szLastName(mir_utf8encodeT(tszLastName.GetBuffer()));
 +		
 +	ptrA szNick(mir_utf8encodeT(ptrT(db_get_tsa(hContact, m_szModuleName, "Nick"))));
 +	ptrA szFirstName(mir_utf8encodeT(ptrT(db_get_tsa(hContact, m_szModuleName, "FirstName"))));
 +	ptrA szLastName(mir_utf8encodeT(ptrT(db_get_tsa(hContact, m_szModuleName, "LastName"))));
  	//blob is: uin(DWORD), hContact(DWORD), nick(ASCIIZ), first(ASCIIZ), last(ASCIIZ), email(ASCIIZ), reason(ASCIIZ)
  	//blob is: 0(DWORD), hContact(DWORD), nick(ASCIIZ), first(ASCIIZ), last(ASCIIZ), ""(ASCIIZ), ""(ASCIIZ)
 @@ -570,7 +585,7 @@ void CVkProto::DBAddAuthRequest(const MCONTACT hContact)  	*pCurBlob = '\0';	//reason
  	db_event_add(NULL, &dbei);
 -	debugLogA("CVkProto::DBAddAuthRequest %s", tszNick.IsEmpty() ? "<null>" : szNick);
 +	debugLogA("CVkProto::DBAddAuthRequest %s", szNick ? szNick : "<null>");
  }
  MCONTACT CVkProto::MContactFromDbEvent(MEVENT hDbEvent)
 @@ -1011,16 +1026,16 @@ CMString CVkProto::GetAttachmentDescr(JSONNODE *pAttachments, BBCSupport iBBC)  			ptrT ptszUrl(json_as_string(json_get(pLink, "url")));
  			ptrT ptszTitle(json_as_string(json_get(pLink, "title")));
  			ptrT ptszDescription(json_as_string(json_get(pLink, "description")));
 -			CMString tszImage(json_as_CMString(json_get(pLink, "image_src")));
 +			ptrT ptszImage(json_as_string(json_get(pLink, "image_src")));
  			res.AppendFormat(_T("%s: %s"), 
  				SetBBCString(TranslateT("Link"), iBBC, vkbbcB).GetBuffer(), 
  				SetBBCString(ptszTitle, iBBC, vkbbcUrl, ptszUrl).GetBuffer());
 -			if (!tszImage.IsEmpty())
 +			if (!IsEmpty(ptszImage))
  				if (m_iIMGBBCSupport)
 -					res.AppendFormat(_T("\n\t%s: [img]%s[/img]"), TranslateT("Image"), tszImage.GetBuffer());
 +					res.AppendFormat(_T("\n\t%s: [img]%s[/img]"), TranslateT("Image"), ptszImage);
  				else
 -					res.AppendFormat(_T("\n\t%s: %s"), TranslateT("Image"), tszImage.GetBuffer());
 +					res.AppendFormat(_T("\n\t%s: %s"), TranslateT("Image"), ptszImage);
  			if (ptszDescription)
  				res.AppendFormat(_T("\n\t%s"), ptszDescription);
 diff --git a/protocols/VKontakte/src/vk.h b/protocols/VKontakte/src/vk.h index 8f0a871185..cde70d8614 100644 --- a/protocols/VKontakte/src/vk.h +++ b/protocols/VKontakte/src/vk.h @@ -88,4 +88,6 @@ bool tlstrstr(TCHAR* _s1, TCHAR* _s2);  void InitIcons(void);
  HANDLE GetIconHandle(int iCommand);
 -char* ExpUrlEncode(const char *szUrl, bool strict = false);
\ No newline at end of file +char* ExpUrlEncode(const char *szUrl, bool strict = false);
 +bool IsEmpty(TCHAR *str);
 +bool IsEmpty(char *str);
\ No newline at end of file diff --git a/protocols/VKontakte/src/vk_chats.cpp b/protocols/VKontakte/src/vk_chats.cpp index 1ec4075495..8a2ddb51ed 100644 --- a/protocols/VKontakte/src/vk_chats.cpp +++ b/protocols/VKontakte/src/vk_chats.cpp @@ -282,7 +282,6 @@ void CVkProto::AppendChatMessage(CVkChatInfo *cc, int uid, int msgTime, LPCTSTR  	TCHAR tszId[20];
  	_itot(uid, tszId, 10);
 -	CMString tszBody(ptszBody);
  	GCDEST gcd = { m_szModuleName, cc->m_tszId, GC_EVENT_MESSAGE };
  	GCEVENT gce = { sizeof(GCEVENT), &gcd };
 @@ -291,7 +290,7 @@ void CVkProto::AppendChatMessage(CVkChatInfo *cc, int uid, int msgTime, LPCTSTR  	gce.time = msgTime;
  	gce.dwFlags = (bIsHistory) ? GCEF_NOTNOTIFY : GCEF_ADDTOLOG;
  	gce.ptszNick = cu->m_tszNick ? mir_tstrdup(cu->m_tszNick) : mir_tstrdup(TranslateT("Unknown"));
 -	gce.ptszText = tszBody.IsEmpty() ? mir_tstrdup(_T("...")) : mir_tstrdup(tszBody.GetBuffer());
 +	gce.ptszText = IsEmpty((TCHAR *)ptszBody) ? mir_tstrdup(_T("...")) : mir_tstrdup(ptszBody);
  	CallServiceSync(MS_GC_EVENT, 0, (LPARAM)&gce);
  }
 diff --git a/protocols/VKontakte/src/vk_feed.cpp b/protocols/VKontakte/src/vk_feed.cpp index c0e651ed77..9240e56dd2 100644 --- a/protocols/VKontakte/src/vk_feed.cpp +++ b/protocols/VKontakte/src/vk_feed.cpp @@ -30,9 +30,8 @@ void CVkProto::AddFeedSpecialUser()  	if (!hContact) {
  		hContact = FindUser(VK_FEED_USER, true);
 -		CMString tszNick = TranslateT("VKontakte");
 -		setTString(hContact, "Nick", tszNick.GetBuffer());
 +		setTString(hContact, "Nick", TranslateT("VKontakte"));
  		CMString tszUrl = _T("https://vk.com/press/Simple.png");
  		SetAvatarUrl(hContact, tszUrl);
  		ReloadAvatarInfo(hContact);
 diff --git a/protocols/VKontakte/src/vk_history.cpp b/protocols/VKontakte/src/vk_history.cpp index 09715eac04..f2a6d53f05 100644 --- a/protocols/VKontakte/src/vk_history.cpp +++ b/protocols/VKontakte/src/vk_history.cpp @@ -126,14 +126,15 @@ void CVkProto::GetServerHistory(MCONTACT hContact, int iOffset, int iCount, int  	if (-1 == userID || userID == VK_FEED_USER)
  		return;
 -	CMStringA code, formatcode = "var iOffset=%d;var iReqCount=%d;var userID=%d;var iTime=%d;var lastMid=%d;"
 +	CMStringA code;
 +
 +	code.AppendFormat("var iOffset=%d;var iReqCount=%d;var userID=%d;var iTime=%d;var lastMid=%d;"
  		"var Hist=API.messages.getHistory({\"user_id\":userID,\"count\":iReqCount,\"offset\":iOffset});"
  		"var allCount=Hist.count;var ext=Hist.items.length;var index=0;"
  		"while(ext!=0){if(Hist.items[index].date>iTime){if(Hist.items[index].id>lastMid)"
  		"{index=index+1;ext=ext-1;}else ext=0;}else ext=0;};"
 -		"var ret=Hist.items.slice(0,index); return{\"count\":index,\"datetime\":iTime,\"items\":ret,\"once\":%d,\"rcount\":iReqCount};";
 -
 -	code.AppendFormat(formatcode, iOffset, iCount, userID, iTime, iLastMsgId, (int)once);
 +		"var ret=Hist.items.slice(0,index); return{\"count\":index,\"datetime\":iTime,\"items\":ret,\"once\":%d,\"rcount\":iReqCount};", 
 +		iOffset, iCount, userID, iTime, iLastMsgId, (int)once);
  	Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/execute.json", true, &CVkProto::OnReceiveHistoryMessages)
  		<< CHAR_PARAM("code", code)
  		<< VER_API)->pUserInfo = new CVkSendMsgParam(hContact, iLastMsgId, iOffset);
 diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp index d8215f969e..49a3736e81 100644 --- a/protocols/VKontakte/src/vk_proto.cpp +++ b/protocols/VKontakte/src/vk_proto.cpp @@ -317,7 +317,7 @@ int CVkProto::OnPreBuildContactMenu(WPARAM hContact, LPARAM)  {
  	LONG userID = getDword(hContact, "ID", -1);
  	bool bisFriend = (getByte(hContact, "Auth", -1) == 0);
 -	bool bisBroadcast = !(CMString(ptrT(db_get_tsa(hContact, m_szModuleName, "AudioUrl"))).IsEmpty());
 +	bool bisBroadcast = !(IsEmpty(ptrT(db_get_tsa(hContact, m_szModuleName, "AudioUrl"))));
  	Menu_ShowItem(g_hContactMenuItems[CMI_VISITPROFILE], !isChatRoom(hContact));
  	Menu_ShowItem(g_hContactMenuItems[CMI_ADDASFRIEND], !bisFriend && !isChatRoom(hContact) && userID != VK_FEED_USER);
  	Menu_ShowItem(g_hContactMenuItems[CMI_DELETEFRIEND], bisFriend && userID != VK_FEED_USER);
 @@ -656,12 +656,11 @@ void CVkProto::OnReceiveAuthRequest(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *  			int iRet = json_as_int(pResponse);
  			setByte(param->hContact, "Auth", 0);
  			if (iRet == 2) {
 -				CMString msg,
 -					msgformat = TranslateT("User %s added as friend"),
 +				CMString msg,			
  					tszNick = ptrT(db_get_tsa(param->hContact, m_szModuleName, "Nick"));
  				if (tszNick.IsEmpty())
  					tszNick = TranslateT("(Unknown contact)");
 -				msg.AppendFormat(msgformat, tszNick.GetBuffer());
 +				msg.AppendFormat(TranslateT("User %s added as friend"), tszNick.GetBuffer());
  				MsgPopup(param->hContact, msg.GetBuffer(), tszNick.GetBuffer());
  			}
  		} 
 diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp index d088d03b19..a34e83d07e 100644 --- a/protocols/VKontakte/src/vk_thread.cpp +++ b/protocols/VKontakte/src/vk_thread.cpp @@ -110,11 +110,11 @@ void CVkProto::SetServerStatus(int iNewStatus)  	int iOldStatus = m_iStatus;
  	CMString oldStatusMsg = ptrT(db_get_tsa(NULL, m_szModuleName, "OldStatusMsg"));
 -	CMString ListeningToMsg = ptrT(db_get_tsa(NULL, m_szModuleName, "ListeningTo"));
 +	ptrT ptszListeningToMsg(db_get_tsa(NULL, m_szModuleName, "ListeningTo"));
  	if (iNewStatus == ID_STATUS_OFFLINE) {
  		m_iStatus = ID_STATUS_OFFLINE;
 -		if (!ListeningToMsg.IsEmpty()) 
 +		if (!IsEmpty(ptszListeningToMsg))
  			RetrieveStatusMsg(oldStatusMsg);
  		if (iOldStatus != ID_STATUS_OFFLINE && iOldStatus != ID_STATUS_INVISIBLE)
  			Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/account.setOffline.json", true, &CVkProto::OnReceiveSmth)
 @@ -127,7 +127,7 @@ void CVkProto::SetServerStatus(int iNewStatus)  	}
  	else {
  		m_iStatus = ID_STATUS_INVISIBLE;
 -		if (!ListeningToMsg.IsEmpty()) 
 +		if (!IsEmpty(ptszListeningToMsg))
  			RetrieveStatusMsg(oldStatusMsg);
  		if (iOldStatus == ID_STATUS_ONLINE)
  			Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/account.setOffline.json", true, &CVkProto::OnReceiveSmth)
 @@ -386,10 +386,9 @@ void CVkProto::RetrieveUserInfo(LONG userID)  	CMString userIDs, code;
  	userIDs.AppendFormat(_T("%i"), userID);
 -	CMString codeformat("var userIDs=\"%s\";"
 -		"return{\"freeoffline\":0,\"users\":API.users.get({\"user_ids\":userIDs,\"fields\":\"%s\",\"name_case\":\"nom\"})};");
 -		
 -	code.AppendFormat(codeformat, userIDs.GetBuffer(), CMString(fieldsName).GetBuffer());
 +			
 +	code.AppendFormat(_T("var userIDs=\"%s\";return{\"freeoffline\":0,\"users\":API.users.get({\"user_ids\":userIDs,\"fields\":\"%s\",\"name_case\":\"nom\"})};"), 
 +		userIDs.GetBuffer(), CMString(fieldsName).GetBuffer());
  	Push(new AsyncHttpRequest(this, REQUEST_POST, "/method/execute.json", true, &CVkProto::OnReceiveUserInfo)
  		<< TCHAR_PARAM("code", code)
  		<< VER_API);
 @@ -988,9 +987,9 @@ void CVkProto::OnReceiveStatus(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)  	JSONNODE *pAudio = json_get(pResponse, "audio");
  	if (pAudio == NULL) {
 -		CMString StatusText = json_as_CMString(json_get(pResponse, "text"));
 -		if (StatusText.GetBuffer()[0] != TCHAR(9835))
 -			setTString("OldStatusMsg", StatusText.GetBuffer());
 +		ptrT ptszStatusText(json_as_string(json_get(pResponse, "text")));
 +		if (ptszStatusText[0] != TCHAR(9835))
 +			setTString("OldStatusMsg", ptszStatusText);
  	}
  }
 @@ -1012,13 +1011,13 @@ void CVkProto::RetrieveStatusMusic(const CMString &StatusMsg)  		return;
  	CMString code;
 -	CMString oldStatusMsg = ptrT(db_get_tsa(0, m_szModuleName, "OldStatusMsg"));
 +	ptrT ptszOldStatusMsg(db_get_tsa(0, m_szModuleName, "OldStatusMsg"));
  	if (StatusMsg.IsEmpty()) {
  		if (m_iMusicSendMetod == sendBroadcastOnly)
  			code = "API.audio.setBroadcast();return null;";
  		else {
  			CMString codeformat("API.status.set({text:\"%s\"});return null;");
 -			code.AppendFormat(codeformat, oldStatusMsg);
 +			code.AppendFormat(codeformat, ptszOldStatusMsg);
  		}
  	}
  	else {
 @@ -1064,19 +1063,19 @@ INT_PTR __cdecl CVkProto::SvcSetListeningTo(WPARAM, LPARAM lParam)  		return 1;
  	LISTENINGTOINFO *pliInfo = (LISTENINGTOINFO*)lParam;
 -	CMStringW wszListeningTo;
 +	CMString tszListeningTo;
  	if (pliInfo == NULL || pliInfo->cbSize != sizeof(LISTENINGTOINFO)) 
  		db_unset(NULL, m_szModuleName, "ListeningTo");
  	else if (pliInfo->dwFlags & LTI_UNICODE) {
  		if (ServiceExists(MS_LISTENINGTO_GETPARSEDTEXT))
 -			wszListeningTo = ptrT((LPWSTR)CallService(MS_LISTENINGTO_GETPARSEDTEXT, (WPARAM)_T("%artist% - %title%"), (LPARAM)pliInfo));
 +			tszListeningTo = ptrT((LPWSTR)CallService(MS_LISTENINGTO_GETPARSEDTEXT, (WPARAM)_T("%artist% - %title%"), (LPARAM)pliInfo));
  		else
 -			wszListeningTo.Format(_T("%s - %s"),
 +			tszListeningTo.Format(_T("%s - %s"),
  			pliInfo->ptszArtist ? pliInfo->ptszArtist : _T(""),
  			pliInfo->ptszTitle ? pliInfo->ptszTitle : _T(""));
 -		setTString("ListeningTo", wszListeningTo);
 +		setTString("ListeningTo", tszListeningTo);
  	}
 -	RetrieveStatusMusic(wszListeningTo);
 +	RetrieveStatusMusic(tszListeningTo);
  	return 0;
  }
 @@ -1099,11 +1098,11 @@ INT_PTR __cdecl CVkProto::SvcDeleteFriend(WPARAM hContact, LPARAM flag)  	if (!IsOnline() || userID == -1 || userID == VK_FEED_USER)
  		return 1;
 -	CMString formatstr = TranslateT("Are you sure to delete %s from your friend list?"),
 -		tszNick = ptrT(db_get_tsa(hContact, m_szModuleName, "Nick")),
 -		ptszMsg;
 +	 
 +	ptrT ptszNick(db_get_tsa(hContact, m_szModuleName, "Nick"));
 +	CMString ptszMsg;
  	if (flag == 0) {
 -		ptszMsg.AppendFormat(formatstr, tszNick.IsEmpty() ? TranslateT("(Unknown contact)") : tszNick);
 +		ptszMsg.AppendFormat(TranslateT("Are you sure to delete %s from your friend list?"), IsEmpty(ptszNick) ? TranslateT("(Unknown contact)") : ptszNick);
  		if (IDNO == MessageBox(NULL, ptszMsg.GetBuffer(), TranslateT("Attention!"), MB_ICONWARNING | MB_YESNO))
  			return 1;
  	}
 @@ -1191,12 +1190,11 @@ INT_PTR __cdecl CVkProto::SvcBanUser(WPARAM hContact, LPARAM)  		tszVarWarning += ".\n";
  	code += "return 1;";
 -	CMString formatstr = TranslateT("Are you sure to ban %s? %s%sContinue?"),
 -		tszNick = ptrT(db_get_tsa(hContact, m_szModuleName, "Nick")),
 -		ptszMsg;
 +	ptrT ptszNick(db_get_tsa(hContact, m_szModuleName, "Nick"));
 +	CMString ptszMsg;
 -	ptszMsg.AppendFormat(formatstr, 
 -		tszNick.IsEmpty() ? TranslateT("(Unknown contact)") : tszNick.GetBuffer(), 
 +	ptszMsg.AppendFormat(TranslateT("Are you sure to ban %s? %s%sContinue?"), 
 +		IsEmpty(ptszNick) ? TranslateT("(Unknown contact)") : ptszNick, 
  		tszVarWarning.IsEmpty() ? _T(" ") : TranslateT("\nIt will also"),
  		tszVarWarning.IsEmpty() ? _T("\n") : tszVarWarning.GetBuffer());
  | 
