diff options
author | watcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2012-01-19 12:21:27 +0000 |
---|---|---|
committer | watcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2012-01-19 12:21:27 +0000 |
commit | e94c705bb01c662d934c0096480bc9a732d0e1ec (patch) | |
tree | a07c6aa2174cf87d62ecfccdde8dbfa56185d78f /FacebookRM/contacts.cpp | |
parent | 9b2d93c613db59b7d47327899a0850d370d6ea5e (diff) |
FacebookRM: Version bump
Version 0.0.7.0
+ Support for group chats (EXPERIMENTAL!) - enable it in options
! Fixed loading contact list
! Fixed potential freeze.
Total downloads: (None or statistics not available yet)
Version 0.0.6.1a
Reuploaded.
Total downloads: (None or statistics not available yet)
Version 0.0.6.1
+ Returned option to close chat windows (on website)
+ New option to map non-standard statuses to Invisible (insetad of Online)
+ New option to load contacts, which have "On the Phone" status
! Fixed changing chat visibility
! Very long messages are no longer received duplicitely
! Changes and fixes related to multiuser messages and messages from people, which are not in server-list
Total downloads: (None or statistics not available yet)
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@261 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'FacebookRM/contacts.cpp')
-rw-r--r-- | FacebookRM/contacts.cpp | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/FacebookRM/contacts.cpp b/FacebookRM/contacts.cpp index de01800..1f0a007 100644 --- a/FacebookRM/contacts.cpp +++ b/FacebookRM/contacts.cpp @@ -68,7 +68,7 @@ HANDLE FacebookProto::ContactIDToHContact(std::string user_id) return 0;
}
-HANDLE FacebookProto::AddToContactList(facebook_user* fbu, bool dont_check)
+HANDLE FacebookProto::AddToContactList(facebook_user* fbu, bool dont_check, const char *new_name)
{
HANDLE hContact;
@@ -98,7 +98,13 @@ HANDLE FacebookProto::AddToContactList(facebook_user* fbu, bool dont_check) DBWriteContactSettingTString(hContact,"CList","Group",dbv.ptszVal);
DBFreeVariant(&dbv);
}
-
+
+ if (strlen(new_name) > 0) {
+ DBWriteContactSettingUTF8String(hContact, m_szModuleName, FACEBOOK_KEY_NAME, new_name);
+ DBWriteContactSettingUTF8String(hContact, m_szModuleName, FACEBOOK_KEY_NICK, new_name);
+ DBWriteContactSettingByte(hContact, m_szModuleName, FACEBOOK_KEY_CONTACT_TYPE, 1); // We suppose he is not on server list
+ }
+
if (getByte(FACEBOOK_KEY_DISABLE_STATUS_NOTIFY, 0))
CallService(MS_IGNORE_IGNORE, (WPARAM)hContact, (LPARAM)IGNOREEVENT_USERONLINE);
@@ -154,10 +160,46 @@ void FacebookProto::DeleteContactFromServer(void *data) if (resp.code != HTTP_CODE_OK) {
facy.handle_error( "DeleteContactFromServer" );
}
+
+ NotifyEvent(TranslateT("Deleting contact"), TranslateT("Contact was sucessfully removed from server."), NULL, FACEBOOK_EVENT_OTHER, NULL);
+
+ delete data;
+}
+
+void FacebookProto::AddContactToServer(void *data)
+{
+ facy.handle_entry( "AddContactToServer" );
+
+ if ( data == NULL )
+ return;
+
+ std::string *id = (std::string*)data;
+ std::string query = "action=add_friend&how_found=profile_button&ref_param=ts&outgoing_id=&unwanted=&logging_location=&no_flyout_on_click=false&ego_log_data=&post_form_id_source=AsyncRequest&lsd=&fb_dtsg=";
+ query += facy.dtsg_;
+ query += "&post_form_id=";
+ query += facy.post_form_id_;
+ query += "&to_friend=";
+ query += *id;
+ query += "&__user=";
+ query += facy.self_.user_id;
+
+ // Get unread inbox threads
+ http::response resp = facy.flap( FACEBOOK_REQUEST_ADD_FRIEND, &query );
+
+ // Process result data
+ facy.validate_response(&resp);
+
+ if (resp.code != HTTP_CODE_OK || resp.data.find("\"success\":true") == std::string::npos) {
+ facy.handle_error( "AddContactToServer" );
+ }
+// RM TODO: better notify...
+ NotifyEvent(TranslateT("Adding contact"), TranslateT("Request for friendship was sent successfully."), NULL, FACEBOOK_EVENT_OTHER, NULL);
+
delete data;
}
+
HANDLE FacebookProto::GetAwayMsg(HANDLE hContact)
{
return 0; // Status messages are disabled
@@ -169,7 +211,7 @@ int FacebookProto::OnContactDeleted(WPARAM wparam,LPARAM) if (IsMyContact(hContact))
{
- if (!DBGetContactSettingByte(hContact,m_szModuleName,FACEBOOK_KEY_DELETE_NEXT,0)) {
+// if (!DBGetContactSettingByte(hContact,m_szModuleName,FACEBOOK_KEY_DELETE_NEXT,0)) {
if (MessageBox( 0, TranslateT("Do you want to delete this contact also from server list?"), m_tszUserName, MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON2 ) == IDYES) {
DBVARIANT dbv;
if( !DBGetContactSettingString(hContact,m_szModuleName,FACEBOOK_KEY_ID,&dbv) )
@@ -179,16 +221,17 @@ int FacebookProto::OnContactDeleted(WPARAM wparam,LPARAM) ForkThread( &FacebookProto::DeleteContactFromServer, this, ( void* )id );
DBFreeVariant(&dbv);
} else {
- facebook_user fbu;
+/* facebook_user fbu;
fbu.user_id = dbv.pszVal;
hContact = AddToContactList(&fbu);
DBWriteContactSettingByte(hContact,m_szModuleName,FACEBOOK_KEY_DELETE_NEXT,1);
- facy.client_notify(TranslateT("Contact will be deleted at next login."));
+ facy.client_notify(TranslateT("Contact will be deleted at next login."));*/
+ NotifyEvent(TranslateT("Deleting contact"), TranslateT("Contact wasn't deleted, because you are not connected."), NULL, FACEBOOK_EVENT_OTHER, NULL);
}
}
}
- }
+// }
ScopedLock s(facy.buddies_lock_);
|