summaryrefslogtreecommitdiff
path: root/protocols/Steam/src/steam_contacts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Steam/src/steam_contacts.cpp')
-rw-r--r--protocols/Steam/src/steam_contacts.cpp519
1 files changed, 6 insertions, 513 deletions
diff --git a/protocols/Steam/src/steam_contacts.cpp b/protocols/Steam/src/steam_contacts.cpp
index 8929d25bec..ab95bf4649 100644
--- a/protocols/Steam/src/steam_contacts.cpp
+++ b/protocols/Steam/src/steam_contacts.cpp
@@ -31,520 +31,13 @@ MCONTACT CSteamProto::AddContact(const SteamWebApi::FriendApi::Friend &contact)
this->setString(hContact, "Homepage", contact.GetHomepage());
this->setDword(hContact, "LastEventDateTS", contact.GetLastEvent());
- /*DBVARIANT dbv;
- if ( !this->getTString(SKYPE_SETTINGS_DEF_GROUP, &dbv))
+ DBVARIANT dbv;
+ if (!getWString("DefaultGroup", &dbv))
{
- ::db_set_ts(hContact, "CList", "Group", dbv.ptszVal);
- ::db_free(&dbv);
- }*/
+ db_set_ts(hContact, "CList", "Group", dbv.ptszVal);
+ db_free(&dbv);
+ }
}
return hContact;
-}
-
-//void CSteamProto::OnContactListLoadedAsync(Steam::FriendList::Result *friendList)
-//{
-// if (friendList->success)
-// {
-// for (int i = 0; i < friendList->friendIds.getCount(); i++)
-// {
-// if (!FindContact(friendList->friendIds[i]))
-// {
-// Steam::Friend::Result rFriend;
-// Steam::Friend(m_hNetlibUser)
-// .LoadSummaries(friendList->friendIds[i], &rFriend);
-// if (!rFriend.success) continue;
-// AddContact(rFriend);
-// }
-// }
-// }
-//}
-
-//void CSkypeProto::UpdateContactAuthState(MCONTACT hContact, const ContactRef &contact)
-//{
-// uint newTS = 0;
-// contact->GetPropAuthreqTimestamp(newTS);
-// DWORD oldTS = this->getDword("AuthTS", 0);
-// if (newTS > oldTS)
-// {
-// bool result;
-// if (contact->HasAuthorizedMe(result) && !result)
-// this->setByte(hContact, "Auth", !result);
-// else
-// {
-// this->delSetting(hContact, "Auth");
-// if (contact->IsMemberOfHardwiredGroup(CContactGroup::ALL_BUDDIES, result) && !result)
-// this->setByte(hContact, "Grant", !result);
-// else
-// this->delSetting(hContact, "Grant");
-// }
-//
-// this->setDword(hContact, "AuthTS", newTS);
-// }
-//}
-//
-//void CSkypeProto::UpdateContactStatus(MCONTACT hContact, const ContactRef &contact)
-//{
-// Contact::AVAILABILITY availability;
-// contact->GetPropAvailability(availability);
-// this->setWord(hContact, SKYPE_SETTINGS_STATUS, CSkypeProto::SkypeToMirandaStatus(availability));
-//
-// if (availability == Contact::SKYPEOUT)
-// this->setWord(hContact, SKYPE_SETTINGS_STATUS, ID_STATUS_ONTHEPHONE);
-// else
-// {
-// if (availability == Contact::PENDINGAUTH)
-// this->setByte(hContact, "Auth", 1);
-// else
-// this->delSetting(hContact, "Auth");
-// }
-//}
-//
-//void CSkypeProto::UpdateContactClient(MCONTACT hContact, const ContactRef &contact)
-//{
-// bool isMobile = false;
-// contact->HasCapability(Contact::CAPABILITY_MOBILE_DEVICE, isMobile/*, true*/);
-//
-// this->setTString(hContact, "MirVer", isMobile ? L"SkypeMobile" : L"Skype");
-//}
-//
-//void CSkypeProto::UpdateContactOnlineSinceTime(MCONTACT hContact, const ContactRef &contact)
-//{
-// uint newTS = 0;
-// contact->GetPropLastonlineTimestamp(newTS);
-// DWORD oldTS = ::db_get_dw(hContact, this->m_szModuleName, "OnlineSinceTS", 0);
-// if (newTS > oldTS)
-// this->setDword(hContact, "OnlineSinceTS", newTS);
-//}
-//
-//void CSkypeProto::UpdateContactLastEventDate(MCONTACT hContact, const ContactRef &contact)
-//{
-// uint newTS = 0;
-// contact->GetPropLastusedTimestamp(newTS);
-// DWORD oldTS = this->getDword(hContact, "LastEventDateTS", 0);
-// if (newTS > oldTS)
-// this->setDword(hContact, "LastEventDateTS", newTS);
-//}
-//
-//void CSkypeProto::OnContactChanged(const ContactRef &contact, int prop)
-//{
-// SEString data;
-// contact->GetPropSkypename(data);
-// wchar_t *sid = ::mir_utf8decodeW(data);
-// MCONTACT hContact = this->GetContactBySid(sid);
-// ::mir_free(sid);
-//
-// SEObject *contactObj = contact.fetch();
-//
-// if (hContact)
-// {
-// switch(prop)
-// {
-// case Contact::P_AUTHREQ_TIMESTAMP:
-// {
-// uint newTS = 0;
-// contact->GetPropAuthreqTimestamp(newTS);
-// DWORD oldTS = this->getDword(hContact, "AuthTS", 0);
-// if (newTS > oldTS)
-// this->RaiseAuthRequestEvent(newTS, contact);
-// }
-// break;
-//
-// case Contact::P_AUTHREQUEST_COUNT:
-// // todo: all authrequests after first should be catch here
-// this->UpdateContactAuthState(hContact, contact);
-// break;
-//
-// case Contact::P_AVAILABILITY:
-// this->UpdateContactStatus(hContact, contact);
-// this->UpdateChatUserStatus(contact);
-// break;
-//
-// //case CContact::P_AVATAR_IMAGE:
-// case Contact::P_AVATAR_TIMESTAMP:
-// this->UpdateProfileAvatar(contactObj, hContact);
-// break;
-//
-// //case CContact::P_MOOD_TEXT:
-// case Contact::P_MOOD_TIMESTAMP:
-// this->UpdateProfileStatusMessage(contactObj, hContact);
-// break;
-//
-// case Contact::P_FULLNAME:
-// this->UpdateChatUserNick(contact);
-// break;
-//
-// case Contact::P_PROFILE_TIMESTAMP:
-// this->UpdateProfile(contactObj, hContact);
-// break;
-// }
-// }
-//}
-//
-//void CSkypeProto::OnContactListChanged(const ContactRef &contact)
-//{
-// bool result;
-//
-// contact->IsMemberOfHardwiredGroup(CContactGroup::ALL_BUDDIES, result);
-// if (result)
-// {
-// if ( !this->contactList.contains(contact))
-// {
-// CContact::Ref newContact(contact);
-// this->contactList.append(newContact);
-// newContact.fetch();
-// }
-// }
-//
-// contact->IsMemberOfHardwiredGroup(CContactGroup::CONTACTS_WAITING_MY_AUTHORIZATION, result);
-// if (result)
-// {
-// SEString data;
-//
-// uint newTS = 0;
-// contact->GetPropAuthreqTimestamp(newTS);
-//
-// this->RaiseAuthRequestEvent(newTS, contact);
-// }
-//}
-//
-//bool CSkypeProto::IsProtoContact(MCONTACT hContact)
-//{
-// return ::lstrcmpiA(::GetContactProto(hContact), this->m_szModuleName) == 0;
-//}
-//
-//MCONTACT CSkypeProto::GetContactBySid(const wchar_t *sid)
-//{
-// MCONTACT hContact = NULL;
-//
-// ::EnterCriticalSection(&this->contact_search_lock);
-//
-// for (hContact = ::db_find_first(this->m_szModuleName); hContact; hContact = ::db_find_next(hContact, this->m_szModuleName))
-// {
-// ptrW contactSid(::db_get_wsa(hContact, this->m_szModuleName, SKYPE_SETTINGS_SID));
-// if (::lstrcmpi(contactSid, sid) == 0)
-// break;
-// }
-//
-// ::LeaveCriticalSection(&this->contact_search_lock);
-//
-// return hContact;
-//}
-//
-//MCONTACT CSkypeProto::GetContactFromAuthEvent(HANDLE hEvent)
-//{
-// // db_event_getContact
-// DWORD body[3];
-// DBEVENTINFO dbei = { sizeof(DBEVENTINFO) };
-// dbei.cbBlob = sizeof(DWORD) * 2;
-// dbei.pBlob = (PBYTE)&body;
-//
-// if (::db_event_get(hEvent, &dbei))
-// return INVALID_CONTACT_ID;
-//
-// if (dbei.eventType != EVENTTYPE_AUTHREQUEST)
-// return INVALID_CONTACT_ID;
-//
-// if (strcmp(dbei.szModule, this->m_szModuleName) != 0)
-// return INVALID_CONTACT_ID;
-//
-// return ::DbGetAuthEventContact(&dbei);
-//}
-//
-//
-//void __cdecl CSkypeProto::LoadContactList(void* data)
-//{
-// this->debugLogW(L"Updating contacts list");
-//
-// bool isFirstLoad = data != NULL;
-//
-// this->GetHardwiredContactGroup(CContactGroup::ALL_BUDDIES, this->commonList);
-// this->commonList.fetch();
-//
-// this->commonList->GetContacts(this->contactList);
-// fetch(this->contactList);
-// for (uint i = 0; i < this->contactList.size(); i++)
-// {
-// CContact::Ref contact = this->contactList[i];
-//
-// MCONTACT hContact = this->AddContact(contact);
-//
-// if ( !isFirstLoad)
-// {
-// // todo: move to AddContact?
-// this->UpdateContactAuthState(hContact, contact);
-// this->UpdateContactStatus(hContact, contact);
-//
-// ptrW nick( ::db_get_wsa(hContact, "CList", "MyHandle"));
-// if ( !nick || !::wcslen(nick))
-// {
-// nick = ::mir_utf8decodeW(contact->GetNick());
-// ::db_set_ws(hContact, "CList", "MyHandle", nick);
-// }
-//
-// this->UpdateProfile(contact.fetch(), hContact);
-// }
-// }
-//}
-//
-//void __cdecl CSkypeProto::LoadAuthWaitList(void*)
-//{
-// CContact::Refs authContacts;
-// this->GetHardwiredContactGroup(CContactGroup::CONTACTS_WAITING_MY_AUTHORIZATION, this->authWaitList);
-// this->authWaitList.fetch();
-//
-// this->authWaitList->GetContacts(authContacts);
-// for (uint i = 0; i < authContacts.size(); i++)
-// {
-// CContact::Ref contact = authContacts[i];
-//
-// uint newTS = 0;
-// contact->GetPropAuthreqTimestamp(newTS);
-//
-// this->RaiseAuthRequestEvent(newTS, contact);
-// }
-//}
-//
-//bool CSkypeProto::IsContactOnline(MCONTACT hContact)
-//{
-// return this->getWord(hContact, SKYPE_SETTINGS_STATUS, ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE;
-//}
-//
-//void CSkypeProto::SetAllContactStatus(int status)
-//{
-// ::EnterCriticalSection(&this->contact_search_lock);
-//
-// for (MCONTACT hContact = ::db_find_first(this->m_szModuleName); hContact; hContact = ::db_find_next(hContact, this->m_szModuleName))
-// {
-// if (this->getByte(hContact, "IsSkypeOut", 0) != 0)
-// continue;
-// if (this->isChatRoom(hContact))
-// continue;
-// if (this->IsContactOnline(hContact))
-// ::db_set_w(hContact, this->m_szModuleName, SKYPE_SETTINGS_STATUS, status);
-// }
-//
-// ::LeaveCriticalSection(&this->contact_search_lock);
-//}
-//
-//void CSkypeProto::OnSearchCompleted(HANDLE hSearch)
-//{
-// this->SendBroadcast(ACKTYPE_SEARCH, ACKRESULT_SUCCESS, hSearch, 0);
-//}
-//
-//void CSkypeProto::OnContactFinded(CContact::Ref contact, HANDLE hSearch)
-//{
-// PROTOSEARCHRESULT psr = {0};
-// psr.cbSize = sizeof(psr);
-// psr.flags = PSR_TCHAR;
-//
-// SEString data;
-// contact->GetPropSkypename(data);
-// psr.id = ::mir_utf8decodeW(data);
-// contact->GetPropDisplayname(data);
-// psr.nick = ::mir_utf8decodeW(data);
-//
-// SEString firstName, lastName;
-// contact->GetFullname(firstName, lastName);
-// psr.firstName = ::mir_utf8decodeW(firstName);
-// psr.lastName = ::mir_utf8decodeW(lastName);
-//
-// {
-// contact->GetPropEmails(data);
-// mir_ptr<wchar_t> emails( ::mir_utf8decodeW(data));
-//
-// wchar_t* main = ::wcstok(emails, L" ");
-// if (main != NULL)
-// {
-// psr.email = main;
-// }
-// }
-//
-// this->SendBroadcast(ACKTYPE_SEARCH, ACKRESULT_DATA, hSearch, (LPARAM)&psr);
-//}
-//
-//void __cdecl CSkypeProto::SearchBySidAsync(void* arg)
-//{
-// mir_ptr<wchar_t> sid((wchar_t*)arg);
-//
-// MCONTACT hContact = this->GetContactBySid(sid);
-// if (hContact)
-// {
-// this->ShowNotification(TranslateT("Contact already in your contact list"), 0, hContact);
-// this->SendBroadcast(ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)SKYPE_SEARCH_BYSID, 0);
-// return;
-// }
-//
-// CContactSearch::Ref search;
-// this->CreateIdentitySearch(::mir_u2a(sid), search);
-// search.fetch();
-// search->SetProtoInfo((HANDLE)SKYPE_SEARCH_BYSID);
-//
-// bool valid;
-// if (!search->IsValid(valid) || !valid || !search->Submit())
-// return;
-//
-// search->BlockWhileSearch();
-// search->Release();
-//}
-//
-//void __cdecl CSkypeProto::SearchByEmailAsync(void* arg)
-//{
-// mir_ptr<wchar_t> email((wchar_t *)arg);
-//
-// CContactSearch::Ref search;
-// this->CreateContactSearch(search);
-// search.fetch();
-// search->SetProtoInfo((HANDLE)SKYPE_SEARCH_BYEMAIL);
-//
-// bool valid;
-// if (!search->AddEmailTerm(::mir_u2a(email), valid) || !valid || !search->Submit())
-// return;
-//
-// search->BlockWhileSearch();
-// search->Release();
-//}
-//
-//void __cdecl CSkypeProto::SearchByNamesAsync(void* arg)
-//{
-// //todo: write me
-// PROTOSEARCHRESULT *psr = (PROTOSEARCHRESULT *)arg;
-//
-// std::string nick = ::mir_utf8encodeW(psr->nick);
-// std::string fName = ::mir_utf8encodeW(psr->firstName);
-// std::string lName = " "; lName += ::mir_utf8encodeW(psr->lastName);
-//
-// CContactSearch::Ref search;
-// this->CreateContactSearch(search);
-// search.fetch();
-// search->SetProtoInfo((HANDLE)SKYPE_SEARCH_BYNAMES);
-//
-// bool valid;
-// if (nick.length() != 0)
-// {
-// search->AddStrTerm(
-// Contact::P_FULLNAME,
-// CContactSearch::CONTAINS_WORD_PREFIXES,
-// nick.c_str(),
-// valid,
-// true);
-// }
-// if (fName.length() != 0)
-// {
-// search->AddOr();
-// search->AddStrTerm(
-// Contact::P_FULLNAME,
-// CContactSearch::CONTAINS_WORD_PREFIXES,
-// fName.c_str(),
-// valid,
-// true);
-// }
-// if (lName.length() != 0)
-// {
-// search->AddOr();
-// search->AddStrTerm(
-// Contact::P_FULLNAME,
-// CContactSearch::CONTAINS_WORD_PREFIXES,
-// lName.c_str(),
-// valid,
-// true);
-// }
-//
-// if (!search->Submit())
-// return;
-//
-// search->BlockWhileSearch();
-// search->Release();
-//}
-//
-//void CSkypeProto::OnContactsReceived(const ConversationRef &conversation, const MessageRef &message)
-//{
-// CContact::Refs contacts;
-// message->GetContacts(contacts);
-//
-// uint timestamp;
-// message->GetPropTimestamp(timestamp);
-//
-// CMessage::TYPE messageType;
-// message->GetPropType(messageType);
-//
-// SEString data;
-// message->GetPropAuthor(data);
-//
-// CContact::Ref author;
-// this->GetContact(data, author);
-//
-// MCONTACT hContact = this->AddContact(author);
-//
-// SEBinary guid;
-// message->GetPropGuid(guid);
-// ReadMessageParam param = { guid, messageType };
-//
-// PROTORECVEVENT pre = { 0 };
-// pre.flags = PREF_UTF;
-// pre.lParam = (LPARAM)&param;
-// pre.timestamp = timestamp;
-//
-// int msgSize = 1;
-// pre.szMessage = (char *)::mir_alloc(msgSize);
-// pre.szMessage[0] = 0;
-//
-// int len = 0;
-// char* pCur = &pre.szMessage[0];
-//
-// for (size_t i = 0; i < contacts.size(); i ++)
-// {
-// contacts[i]->GetIdentity(data);
-// if ( ::lstrcmpi(mir_ptr<wchar_t>(::mir_utf8decodeW(data)), this->login) != 0)
-// this->AddContact(contacts[i]);
-// }
-//
-// char *text = ::mir_utf8encode(::Translate("Contacts received"));
-//
-// this->AddDBEvent(
-// hContact,
-// SKYPE_DB_EVENT_TYPE_CONTACTS,
-// timestamp,
-// PREF_UTF,
-// (DWORD)::strlen(text) + 1,
-// (PBYTE)text);
-//}
-//
-//void CSkypeProto::OnContactsSent(const ConversationRef &conversation, const MessageRef &message)
-//{
-// SEString data;
-//
-// CMessage::TYPE messageType;
-// message->GetPropType(messageType);
-//
-// uint timestamp;
-// message->GetPropTimestamp(timestamp);
-//
-// CMessage::SENDING_STATUS status;
-// message->GetPropSendingStatus(status);
-//
-// CParticipant::Refs participants;
-// conversation->GetParticipants(participants, CConversation::OTHER_CONSUMERS);
-// participants[0]->GetPropIdentity(data);
-//
-// CContact::Ref receiver;
-// this->GetContact(data, receiver);
-//
-// MCONTACT hContact = this->AddContact(receiver);
-// this->SendBroadcast(
-// hContact,
-// ACKTYPE_CONTACTS,
-// status == CMessage::FAILED_TO_SEND ? ACKRESULT_FAILED : ACKRESULT_SUCCESS,
-// (HANDLE)message->getOID(), 0);
-//}
-//
-//void CSkypeProto::OnContactsEvent(const ConversationRef &conversation, const MessageRef &message)
-//{
-// SEString author;
-// message->GetPropAuthor(author);
-//
-// if (::wcsicmp(mir_ptr<wchar_t>(::mir_utf8decodeW(author)), this->login) == 0)
-// this->OnContactsSent(conversation, message);
-// else
-// this->OnContactsReceived(conversation, message);
-//} \ No newline at end of file
+} \ No newline at end of file