diff options
Diffstat (limited to 'MySpace/server_con.cpp')
-rw-r--r-- | MySpace/server_con.cpp | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/MySpace/server_con.cpp b/MySpace/server_con.cpp index 53429bd..94c0cc5 100644 --- a/MySpace/server_con.cpp +++ b/MySpace/server_con.cpp @@ -397,7 +397,7 @@ void __cdecl ServerThreadFunc(void*) { if(uid) {
HANDLE hContact = FindContact(uid);
if(!hContact) {
- hContact = CreateContact(uid, 0, 0, false);
+ hContact = CreateContact(uid, 0, 0, true);
LookupUID(uid);
}
char smsg[1024];
@@ -411,6 +411,8 @@ void __cdecl ServerThreadFunc(void*) { HANDLE hContact = FindContact(uid);
if(!hContact) {
hContact = CreateContact(uid, 0, 0, false);
+ DBWriteContactSettingByte(hContact, "CList", "NotOnList", 1);
+ DBWriteContactSettingByte(hContact, "CList", "Hidden", 1);
LookupUID(uid);
}
char smsg[1024];
@@ -427,7 +429,9 @@ void __cdecl ServerThreadFunc(void*) { if(uid) {
HANDLE hContact = FindContact(uid);
if(!hContact) {
- hContact = CreateContact(uid, 0, 0, true);
+ hContact = CreateContact(uid, 0, 0, false);
+ DBWriteContactSettingByte(hContact, "CList", "NotOnList", 1);
+ DBWriteContactSettingByte(hContact, "CList", "Hidden", 1);
LookupUID(uid);
}
char text[MAX_MESSAGE_SIZE];
@@ -511,7 +515,26 @@ void __cdecl ServerThreadFunc(void*) { HANDLE hContact = FindContact(uid);
if(hContact) {
if(mpsr.psr.nick) DBWriteContactSettingStringUtf(hContact, MODULE, "Nick", mpsr.psr.nick);
- if(mpsr.psr.email) DBWriteContactSettingStringUtf(hContact, MODULE, "email", mpsr.psr.nick);
+ if(mpsr.psr.email) DBWriteContactSettingStringUtf(hContact, MODULE, "email", mpsr.psr.email);
+
+ char band[256], song[256];
+ band[0] = song[0] = 0;
+ for(LinkedList<KeyValue>::Iterator i = body.start(); i.has_val(); i.next()) {
+ KeyValue &kv = i.val();
+ if(strcmp(kv.first.text, "Gender") == 0) {
+ DBWriteContactSettingByte(hContact, MODULE, "Gender", kv.second.text[0]);
+ } else {
+ DBWriteContactSettingStringUtf(hContact, MODULE, kv.first.text, kv.second.text);
+ if(strcmp(kv.first.text, "BandName") == 0) strncpy(band, kv.second.text, 256);
+ if(strcmp(kv.first.text, "SongName") == 0) strncpy(song, kv.second.text, 256);
+ }
+ }
+ if(band[0] && song[0]) {
+ char listenTo[512];
+ mir_snprintf(listenTo, 512, "%s/%s", band, song);
+ DBWriteContactSettingStringUtf(hContact, MODULE, "ListeningTo", listenTo);
+ }
+
ProtoBroadcastAck(MODULE, hContact, ACKTYPE_GETINFO, ACKRESULT_SUCCESS, (HANDLE)1, 0);
}
|