From 59e7fddf68763f1206e9cd9a104edf7569ed8a9c Mon Sep 17 00:00:00 2001 From: sje Date: Mon, 2 Jul 2007 17:09:25 +0000 Subject: deal with temp contacts better write userinfo data to db, and create 'ListeningTo' item git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@245 4f64403b-2f21-0410-a795-97e2b3489a10 --- MySpace/server_con.cpp | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'MySpace/server_con.cpp') 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::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); } -- cgit v1.2.3