summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protocols/SkypeWeb/res/resource.rc10
-rw-r--r--protocols/SkypeWeb/src/skype_messages.cpp23
-rw-r--r--protocols/SkypeWeb/src/skype_options.cpp2
-rw-r--r--protocols/SkypeWeb/src/skype_options.h1
-rw-r--r--protocols/SkypeWeb/src/skype_proto.h2
5 files changed, 28 insertions, 10 deletions
diff --git a/protocols/SkypeWeb/res/resource.rc b/protocols/SkypeWeb/res/resource.rc
index 5f34486a4d..0a0f387416 100644
--- a/protocols/SkypeWeb/res/resource.rc
+++ b/protocols/SkypeWeb/res/resource.rc
@@ -138,13 +138,11 @@ BEGIN
EDITTEXT IDC_GROUP,79,49,219,12,ES_AUTOHSCROLL
GROUPBOX "Others",IDC_STATIC,5,79,298,65
CONTROL "Automatic messages synchronization",IDC_AUTOSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,89,176,10
- CONTROL "Use local time for received messages",IDC_LOCALTIME,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,100,176,10
CONTROL "Always notify as unread for all incoming message",IDC_MESASUREAD,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,112,285,10
- EDITTEXT IDC_PLACE,79,124,109,14,ES_AUTOHSCROLL
- RTEXT "Place:",IDC_STATIC,13,127,62,9
- CONTROL "Use hostname",IDC_USEHOST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,196,126,102,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,100,285,10
+ EDITTEXT IDC_PLACE,80,117,109,14,ES_AUTOHSCROLL
+ RTEXT "Place:",IDC_STATIC,13,120,62,11
+ CONTROL "Use hostname",IDC_USEHOST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,196,120,102,10
CONTROL "Use BBCode",IDC_BBCODES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,196,89,102,10
END
diff --git a/protocols/SkypeWeb/src/skype_messages.cpp b/protocols/SkypeWeb/src/skype_messages.cpp
index 29e9a4e2aa..ba3c7eb5aa 100644
--- a/protocols/SkypeWeb/src/skype_messages.cpp
+++ b/protocols/SkypeWeb/src/skype_messages.cpp
@@ -81,6 +81,15 @@ void CSkypeProto::OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg)
{
if (m_OutMessages.getIndex(hMessage) != -1)
{
+ if (response->pData != NULL)
+ {
+ JSONNode jRoot = JSONNode::parse(response->pData);
+ auto it = m_mpOutMessages.find(hMessage);
+ if (it == m_mpOutMessages.end())
+ {
+ m_mpOutMessages[hMessage] = jRoot["OriginalArrivalTime"].as_int();
+ }
+ }
ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, hMessage, 0);
m_OutMessages.remove(hMessage);
}
@@ -129,6 +138,13 @@ int CSkypeProto::OnPreCreateMessage(WPARAM, LPARAM lParam)
memcpy(&evt->dbei->pBlob[evt->dbei->cbBlob], messageId, messageId.GetLength());
evt->dbei->cbBlob += messageId.GetLength();
+ auto it = m_mpOutMessages.find((HANDLE)evt->seq);
+ if (it != m_mpOutMessages.end())
+ {
+ evt->dbei->timestamp = it->second;
+ m_mpOutMessages.erase(it);
+ }
+
return 0;
}
@@ -145,7 +161,7 @@ void CSkypeProto::OnPrivateMessageEvent(const JSONNode &node)
ptrA szClearedContent(RemoveHtml(strContent.c_str()));
bool bEdited = node["skypeeditedid"];
- time_t timestamp = getByte("UseLocalTime", 0) ? time(NULL) : IsoToUnixTime(node["composetime"].as_string().c_str());
+ time_t timestamp = IsoToUnixTime(node["composetime"].as_string().c_str());
int nEmoteOffset = node["skypeemoteoffset"].as_int();
@@ -169,6 +185,11 @@ void CSkypeProto::OnPrivateMessageEvent(const JSONNode &node)
HANDLE hMessage = (HANDLE)atol(szMessageId);
if (m_OutMessages.getIndex(hMessage) != -1)
{
+ auto it = m_mpOutMessages.find(hMessage);
+ if (it == m_mpOutMessages.end())
+ {
+ m_mpOutMessages[hMessage] = timestamp;
+ }
ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, hMessage, 0);
m_OutMessages.remove(hMessage);
}
diff --git a/protocols/SkypeWeb/src/skype_options.cpp b/protocols/SkypeWeb/src/skype_options.cpp
index d2339df840..5e565a6755 100644
--- a/protocols/SkypeWeb/src/skype_options.cpp
+++ b/protocols/SkypeWeb/src/skype_options.cpp
@@ -24,14 +24,12 @@ CSkypeOptionsMain::CSkypeOptionsMain(CSkypeProto *proto, int idDialog)
m_group(this, IDC_GROUP),
m_place(this, IDC_PLACE),
m_autosync(this, IDC_AUTOSYNC),
- m_localtime(this, IDC_LOCALTIME),
m_allasunread(this, IDC_MESASUREAD),
m_usehostname(this, IDC_USEHOST),
m_usebb(this, IDC_BBCODES)
{
CreateLink(m_group, SKYPE_SETTINGS_GROUP, _T("Skype"));
CreateLink(m_autosync, "AutoSync", DBVT_BYTE, 1);
- CreateLink(m_localtime, "UseLocalTime", DBVT_BYTE, 0);
CreateLink(m_allasunread, "MarkMesUnread", DBVT_BYTE, 1);
CreateLink(m_place, "Place", _T(""));
CreateLink(m_usehostname, "UseHostName", DBVT_BYTE, 0);
diff --git a/protocols/SkypeWeb/src/skype_options.h b/protocols/SkypeWeb/src/skype_options.h
index 90d60ae138..f7bd9711da 100644
--- a/protocols/SkypeWeb/src/skype_options.h
+++ b/protocols/SkypeWeb/src/skype_options.h
@@ -26,7 +26,6 @@ private:
CCtrlEdit m_group;
CCtrlEdit m_place;
CCtrlCheck m_autosync;
- CCtrlCheck m_localtime;
CCtrlCheck m_allasunread;
CCtrlCheck m_usehostname;
CCtrlCheck m_usebb;
diff --git a/protocols/SkypeWeb/src/skype_proto.h b/protocols/SkypeWeb/src/skype_proto.h
index 366acb6c97..dc1a15cb5b 100644
--- a/protocols/SkypeWeb/src/skype_proto.h
+++ b/protocols/SkypeWeb/src/skype_proto.h
@@ -98,6 +98,8 @@ private:
bool isTerminated,
HistorySynced;
+ std::map<HANDLE, time_t> m_mpOutMessages;
+
std::map<std::string, std::string> cookies;
static std::map<std::tstring, std::tstring> languages;