diff options
author | George Hazan <george.hazan@gmail.com> | 2015-01-29 16:24:44 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2015-01-29 16:24:44 +0000 |
commit | 518e9a70f554179f344510f594d7d759b56cea58 (patch) | |
tree | c1e952b455e38e5ab2ee92a8868afc34f51364ed /protocols/WhatsApp | |
parent | 25a7a059a20f51e6df201ba606e38c4aef45e8f0 (diff) |
fix for the automatic nick name extraction
git-svn-id: http://svn.miranda-ng.org/main/trunk@11951 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/WhatsApp')
-rw-r--r-- | protocols/WhatsApp/src/WhatsAPI++/WAConnection.cpp | 14 | ||||
-rw-r--r-- | protocols/WhatsApp/src/contacts.cpp | 14 | ||||
-rw-r--r-- | protocols/WhatsApp/src/dialogs.cpp | 30 | ||||
-rw-r--r-- | protocols/WhatsApp/src/messages.cpp | 32 | ||||
-rw-r--r-- | protocols/WhatsApp/src/version.h | 2 |
5 files changed, 44 insertions, 48 deletions
diff --git a/protocols/WhatsApp/src/WhatsAPI++/WAConnection.cpp b/protocols/WhatsApp/src/WhatsAPI++/WAConnection.cpp index 9aa4450937..fcb659e97b 100644 --- a/protocols/WhatsApp/src/WhatsAPI++/WAConnection.cpp +++ b/protocols/WhatsApp/src/WhatsAPI++/WAConnection.cpp @@ -195,12 +195,8 @@ bool WAConnection::read() throw(WAException) if (node == NULL)
return false;
- #ifdef _DEBUG
- {
- string tmp = node->toString();
- rawConn->log(tmp.c_str());
- }
- #endif
+ string tmp = node->toString();
+ rawConn->log(tmp.c_str());
if (ProtocolTreeNode::tagEquals(node, "iq"))
parseIq(node);
@@ -307,6 +303,7 @@ void WAConnection::parseMessage(ProtocolTreeNode *messageNode) throw (WAExceptio const string &id = messageNode->getAttributeValue("id");
const string &attribute_t = messageNode->getAttributeValue("t");
const string &from = messageNode->getAttributeValue("from");
+ const string ¬ify = messageNode->getAttributeValue("notify");
const string &author = messageNode->getAttributeValue("author");
const string &typeAttribute = messageNode->getAttributeValue("type");
@@ -343,7 +340,7 @@ void WAConnection::parseMessage(ProtocolTreeNode *messageNode) throw (WAExceptio if (receiptRequested)
sendSubjectReceived(from, id);
}
- else if (typeAttribute == "chat" || typeAttribute == "text") {
+ else if (typeAttribute == "text") {
FMessage fmessage;
fmessage.wants_receipt = false;
fmessage.timestamp = atoi(attribute_t.c_str());
@@ -354,7 +351,7 @@ void WAConnection::parseMessage(ProtocolTreeNode *messageNode) throw (WAExceptio ProtocolTreeNode *childNode = messageChildren[i];
if (ProtocolTreeNode::tagEquals(childNode, "body")) {
fmessage.key = Key(from, false, id);
- fmessage.remote_resource = author;
+ fmessage.notifyname = notify;
fmessage.data = childNode->getDataAsString();
fmessage.status = FMessage::STATUS_UNSENT;
}
@@ -395,6 +392,7 @@ void WAConnection::parseMessage(ProtocolTreeNode *messageNode) throw (WAExceptio }
fmessage.key = Key(from, false, id);
+ fmessage.notifyname = notify;
fmessage.remote_resource = author;
}
}
diff --git a/protocols/WhatsApp/src/contacts.cpp b/protocols/WhatsApp/src/contacts.cpp index 0250420ed2..487afc6321 100644 --- a/protocols/WhatsApp/src/contacts.cpp +++ b/protocols/WhatsApp/src/contacts.cpp @@ -28,9 +28,10 @@ MCONTACT WhatsAppProto::AddToContactList(const std::string& jid, BYTE , bool don oldName = dbv.pszVal;
db_free(&dbv);
}
- db_set_utf(hContact, m_szModuleName, WHATSAPP_KEY_NICK, new_name);
if (oldName.compare(string(new_name)) != 0) {
+ db_set_utf(hContact, m_szModuleName, WHATSAPP_KEY_NICK, new_name);
+
CMString tmp(FORMAT, TranslateT("is now known as '%s'"), ptrT(mir_utf8decodeT(new_name)));
this->NotifyEvent(_A2T(oldName.c_str()), tmp, hContact, WHATSAPP_EVENT_OTHER);
}
@@ -496,13 +497,10 @@ INT_PTR __cdecl WhatsAppProto::OnChangeGroupSubject(WPARAM hContact, LPARAM lPar {
input_box* ib = new input_box;
- DBVARIANT dbv;
- if (getTString(hContact, WHATSAPP_KEY_NICK, &dbv))
- ib->defaultValue = _T("");
- else {
- ib->defaultValue = dbv.ptszVal;
- db_free(&dbv);
- }
+ ptrT szNick(getTStringA(hContact, WHATSAPP_KEY_NICK));
+ if (szNick != NULL)
+ ib->defaultValue = szNick;
+
ib->limit = WHATSAPP_GROUP_NAME_LIMIT;
ib->text = _T("Enter new group subject");
ib->title = _T("WhatsApp - Change Group Subject");
diff --git a/protocols/WhatsApp/src/dialogs.cpp b/protocols/WhatsApp/src/dialogs.cpp index e00b69196e..0550dc4102 100644 --- a/protocols/WhatsApp/src/dialogs.cpp +++ b/protocols/WhatsApp/src/dialogs.cpp @@ -16,21 +16,16 @@ INT_PTR CALLBACK WhatsAppAccountProc(HWND hwndDlg, UINT message, WPARAM wparam, SendDlgItemMessage(hwndDlg, IDC_PW, EM_LIMITTEXT, 3, 0);
SendDlgItemMessage(hwndDlg, IDC_PW2, EM_LIMITTEXT, 3, 0);
CheckDlgButton(hwndDlg, IDC_SSL, db_get_b(NULL, proto->m_szModuleName, WHATSAPP_KEY_SSL, 0) ? BST_CHECKED : BST_UNCHECKED);
- DBVARIANT dbv;
+ {
+ ptrA szStr(proto->getStringA(WHATSAPP_KEY_CC));
+ if (szStr != NULL)
+ SetDlgItemTextA(hwndDlg, IDC_CC, szStr);
- if (!db_get_s(0, proto->m_szModuleName, WHATSAPP_KEY_CC, &dbv, DBVT_ASCIIZ)) {
- SetDlgItemTextA(hwndDlg, IDC_CC, dbv.pszVal);
- db_free(&dbv);
- }
-
- if (!db_get_s(0, proto->m_szModuleName, WHATSAPP_KEY_LOGIN, &dbv, DBVT_ASCIIZ)) {
- SetDlgItemTextA(hwndDlg, IDC_LOGIN, dbv.pszVal);
- db_free(&dbv);
- }
+ if ((szStr = proto->getStringA(WHATSAPP_KEY_LOGIN)) != NULL)
+ SetDlgItemTextA(hwndDlg, IDC_LOGIN, szStr);
- if (!db_get_s(0, proto->m_szModuleName, WHATSAPP_KEY_NICK, &dbv, DBVT_ASCIIZ)) {
- SetDlgItemTextA(hwndDlg, IDC_NICK, dbv.pszVal);
- db_free(&dbv);
+ if ((szStr = proto->getStringA(WHATSAPP_KEY_NICK)) != NULL)
+ SetDlgItemTextA(hwndDlg, IDC_NICK, szStr);
}
EnableWindow(GetDlgItem(hwndDlg, IDC_PW), FALSE);
@@ -44,7 +39,6 @@ INT_PTR CALLBACK WhatsAppAccountProc(HWND hwndDlg, UINT message, WPARAM wparam, SendDlgItemMessage(hwndDlg, IDC_PW2, EM_SETREADONLY, 1, 0);
EnableWindow(GetDlgItem(hwndDlg, IDC_SSL), FALSE);
}
-
return TRUE;
case WM_COMMAND:
@@ -108,15 +102,15 @@ INT_PTR CALLBACK WhatsAppAccountProc(HWND hwndDlg, UINT message, WPARAM wparam, char str[128];
GetDlgItemTextA(hwndDlg, IDC_CC, str, SIZEOF(str));
- db_set_s(0, proto->m_szModuleName, WHATSAPP_KEY_CC, str);
+ proto->setString(WHATSAPP_KEY_CC, str);
GetDlgItemTextA(hwndDlg, IDC_LOGIN, str, SIZEOF(str));
- db_set_s(0, proto->m_szModuleName, WHATSAPP_KEY_LOGIN, str);
+ proto->setString(WHATSAPP_KEY_LOGIN, str);
GetDlgItemTextA(hwndDlg, IDC_NICK, str, SIZEOF(str));
- db_set_s(0, proto->m_szModuleName, WHATSAPP_KEY_NICK, str);
+ proto->setString(WHATSAPP_KEY_NICK, str);
- db_set_b(0, proto->m_szModuleName, WHATSAPP_KEY_SSL, IsDlgButtonChecked(hwndDlg, IDC_SSL));
+ proto->setByte(WHATSAPP_KEY_SSL, IsDlgButtonChecked(hwndDlg, IDC_SSL));
return TRUE;
}
break;
diff --git a/protocols/WhatsApp/src/messages.cpp b/protocols/WhatsApp/src/messages.cpp index d2f170a020..37b2ebad65 100644 --- a/protocols/WhatsApp/src/messages.cpp +++ b/protocols/WhatsApp/src/messages.cpp @@ -121,18 +121,24 @@ void WhatsAppProto::onMessageStatusUpdate(FMessage* fmsg) if (hContact == 0)
return;
- if (fmsg->status == FMessage::STATUS_RECEIVED_BY_SERVER) {
- size_t delim = fmsg->key.id.find('-');
- if (delim == string::npos)
- return;
-
- int msgId = atoi(fmsg->key.id.substr(delim+1).c_str());
- ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)msgId, 0);
-
- time_t timestamp = atol(fmsg->key.id.substr(0, delim).c_str());
- - TCHAR ttime[64]; - _tcsftime(ttime, SIZEOF(ttime), _T("%X"), localtime(×tamp)); - utils::setStatusMessage(hContact, CMString(FORMAT, TranslateT("Message received: %s by %s"), ttime, pcli->pfnGetContactDisplayName(hContact, 0))); + const TCHAR *ptszBy;
+ switch (fmsg->status) {
+ case FMessage::STATUS_RECEIVED_BY_SERVER: ptszBy = TranslateT("server"); break;
+ case FMessage::STATUS_RECEIVED_BY_TARGET: ptszBy = pcli->pfnGetContactDisplayName(hContact, 0); break;
+ default:
+ return;
}
+
+ size_t delim = fmsg->key.id.find('-');
+ if (delim == string::npos)
+ return;
+
+ int msgId = atoi(fmsg->key.id.substr(delim+1).c_str());
+ ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)msgId, 0);
+
+ time_t timestamp = atol(fmsg->key.id.substr(0, delim).c_str());
+
+ TCHAR ttime[64];
+ _tcsftime(ttime, SIZEOF(ttime), _T("%X"), localtime(×tamp));
+ utils::setStatusMessage(hContact, CMString(FORMAT, TranslateT("Message received: %s by %s"), ttime, ptszBy));
}
diff --git a/protocols/WhatsApp/src/version.h b/protocols/WhatsApp/src/version.h index 6d60ffbd86..f762aa15d7 100644 --- a/protocols/WhatsApp/src/version.h +++ b/protocols/WhatsApp/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0
#define __MINOR_VERSION 1
#define __RELEASE_NUM 2
-#define __BUILD_NUM 4
+#define __BUILD_NUM 5
#include <stdver.h>
|