diff options
Diffstat (limited to 'MySpace/server_con.cpp')
-rw-r--r-- | MySpace/server_con.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/MySpace/server_con.cpp b/MySpace/server_con.cpp index 47624ba..03321da 100644 --- a/MySpace/server_con.cpp +++ b/MySpace/server_con.cpp @@ -58,6 +58,7 @@ int stat_mir_to_myspace(int mir_status) { case ID_STATUS_INVISIBLE: return 0;
case ID_STATUS_AWAY: return 5;
case ID_STATUS_ONLINE: return 1;
+ case ID_STATUS_IDLE: return 2;
}
return 0;
}
@@ -66,6 +67,7 @@ int stat_myspace_to_mir(int myspace_status) { switch(myspace_status) {
case 0: return ID_STATUS_OFFLINE;
case 1: return ID_STATUS_ONLINE;
+ case 2: return ID_STATUS_IDLE;
case 5: return ID_STATUS_AWAY;
}
return 0;
@@ -253,7 +255,12 @@ void try_login(NetMessage &msg, HANDLE connection) { }
void ParseStatusMessage(HANDLE hContact, char *smsg) {
- DBWriteContactSettingWord(hContact, MODULE, "Status", stat_myspace_to_mir(smsg[3] - '0'));
+ int stat = stat_myspace_to_mir(smsg[3] - '0');
+ if(stat == ID_STATUS_IDLE) {
+ DBWriteContactSettingWord(hContact, MODULE, "IdleTS", (DWORD)time(0));
+ } else {
+ DBWriteContactSettingWord(hContact, MODULE, "Status", stat);
+ }
smsg += 8;
char *end = strstr(smsg, "|");
if(end) *end = 0;
|