diff options
| -rw-r--r-- | protocols/FacebookRM/src/chat.cpp | 47 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/client.h | 2 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/contacts.cpp | 6 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/entities.h | 4 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/json.cpp | 29 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/messages.cpp | 6 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/process.cpp | 6 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/proto.h | 14 | 
8 files changed, 54 insertions, 60 deletions
diff --git a/protocols/FacebookRM/src/chat.cpp b/protocols/FacebookRM/src/chat.cpp index 6519f1c96b..395a6ce507 100644 --- a/protocols/FacebookRM/src/chat.cpp +++ b/protocols/FacebookRM/src/chat.cpp @@ -24,15 +24,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include <m_history.h>
  #include <m_userinfo.h>
 -void FacebookProto::UpdateChat(const char *chat_id, const char *id, const char *name, const char *message, DWORD timestamp)
 +void FacebookProto::UpdateChat(const TCHAR *tchat_id, const char *id, const char *name, const char *message, DWORD timestamp)
  {
 -	ptrT tchat_id( mir_a2t(chat_id));
  	ptrT tid( mir_a2t(id));
  	ptrT tnick( mir_a2t_cp(name,CP_UTF8));
  	ptrT ttext( mir_a2t_cp(message,CP_UTF8));
  	GCDEST gcd = { m_szModuleName };
 -	gcd.ptszID = tchat_id;
 +	gcd.ptszID = (TCHAR *)tchat_id;
  	GCEVENT gce  = {sizeof(gce)};
  	gce.pDest    = &gcd;
 @@ -49,7 +48,7 @@ void FacebookProto::UpdateChat(const char *chat_id, const char *id, const char *  	CallServiceSync(MS_GC_EVENT,0,reinterpret_cast<LPARAM>(&gce));
 -	std::map<std::string, facebook_chatroom>::iterator chatroom = facy.chat_rooms.find(chat_id);
 +	std::map<std::tstring, facebook_chatroom>::iterator chatroom = facy.chat_rooms.find(tchat_id);
  	chatroom->second.message_readers = "";
  	//HANDLE hChatContact = ChatIDToHContact(chat_id);
 @@ -155,14 +154,13 @@ int FacebookProto::OnGCEvent(WPARAM wParam,LPARAM lParam)  	return 0;
  }
 -void FacebookProto::AddChatContact(const char *chat_id, const char *id, const char *name)
 +void FacebookProto::AddChatContact(const TCHAR *tchat_id, const char *id, const char *name)
  {
 -	ptrT tchat_id( mir_a2t(chat_id));
  	ptrT tnick( mir_a2t_cp(name, CP_UTF8));
  	ptrT tid( mir_a2t(id));
  	GCDEST gcd = { m_szModuleName };
 -	gcd.ptszID = tchat_id;
 +	gcd.ptszID = (TCHAR *)tchat_id;
  	gcd.iType  = GC_EVENT_JOIN;
  	GCEVENT gce    = {sizeof(gce)};
 @@ -178,7 +176,7 @@ void FacebookProto::AddChatContact(const char *chat_id, const char *id, const ch  	else
  		gce.ptszStatus = _T("Normal");
 -	std::map<std::string, facebook_chatroom>::iterator room = facy.chat_rooms.find(chat_id);
 +	std::map<std::tstring, facebook_chatroom>::iterator room = facy.chat_rooms.find(tchat_id);
  	if(room != facy.chat_rooms.end())
  		room->second.participants.insert(std::make_pair(id, name));
 @@ -186,17 +184,16 @@ void FacebookProto::AddChatContact(const char *chat_id, const char *id, const ch  }
 -void FacebookProto::RemoveChatContact(const char *chat_id, const char *id)
 +void FacebookProto::RemoveChatContact(const TCHAR *tchat_id, const char *id)
  {
  	// We dont want to remove our self-contact from chat. Ever.
  	if (!strcmp(id, facy.self_.user_id.c_str()))
  		return;
 -	ptrT tchat_id( mir_a2t(chat_id));
  	ptrT tid( mir_a2t(id));
  	GCDEST gcd = { m_szModuleName };
 -	gcd.ptszID = tchat_id;
 +	gcd.ptszID = (TCHAR *)tchat_id;
  	gcd.iType  = GC_EVENT_PART;
  	GCEVENT gce    = {sizeof(gce)};
 @@ -208,7 +205,7 @@ void FacebookProto::RemoveChatContact(const char *chat_id, const char *id)  	gce.time       = ::time(NULL);
  	gce.bIsMe      = false;//!strcmp(id, facy.self_.user_id.c_str());
 -	std::map<std::string, facebook_chatroom>::iterator room = facy.chat_rooms.find(chat_id);
 +	std::map<std::tstring, facebook_chatroom>::iterator room = facy.chat_rooms.find(tchat_id);
  	if (room != facy.chat_rooms.end())
  		room->second.participants.erase(id);
 @@ -216,13 +213,12 @@ void FacebookProto::RemoveChatContact(const char *chat_id, const char *id)  }
  /** Caller must free result */
 -char *FacebookProto::GetChatUsers(const char *chat_id)
 +char *FacebookProto::GetChatUsers(const TCHAR *chat_id)
  {
 -	ptrT tid( mir_a2t(chat_id));
  	GC_INFO gci = {0};
  	gci.Flags = USERS;
  	gci.pszModule = m_szModuleName;
 -	gci.pszID = tid;
 +	gci.pszID = (TCHAR *)chat_id;
  	CallService(MS_GC_GETINFO, 0, (LPARAM)(GC_INFO *) &gci);
  	debugLogA("**Chat - Users in chat %s: %s", chat_id, gci.pszUsers);
 @@ -231,19 +227,16 @@ char *FacebookProto::GetChatUsers(const char *chat_id)  	return gci.pszUsers;
  }
 -bool FacebookProto::IsChatContact(const char *chat_id, const char *id)
 +bool FacebookProto::IsChatContact(const TCHAR *chat_id, const char *id)
  {
  	ptrA users( GetChatUsers(chat_id));
  	return (users != NULL && strstr(users, id) != NULL);
  }
 -void FacebookProto::AddChat(const char *id, const char *name)
 +void FacebookProto::AddChat(const TCHAR *tid, const TCHAR *tname)
  {
  	GCSESSION gcw = {sizeof(gcw)};
 -	ptrT tname( mir_a2t_cp(name, CP_UTF8));
 -	ptrT tid( mir_a2t(id));
 -
  	// Create the group chat session
  	gcw.dwFlags   = GC_TCHAR;
  	gcw.iType     = GCW_CHATROOM;
 @@ -254,7 +247,7 @@ void FacebookProto::AddChat(const char *id, const char *name)  	// Send setting events
  	GCDEST gcd = { m_szModuleName };
 -	gcd.ptszID = tid;
 +	gcd.ptszID = (TCHAR *)tid;
  	GCEVENT gce = {sizeof(gce)};
  	gce.pDest = &gcd;
 @@ -273,11 +266,11 @@ void FacebookProto::AddChat(const char *id, const char *name)  	gce.pDest = &gcd;
  	facebook_chatroom chatroom;
 -	chatroom.chat_name = name;
 -	facy.chat_rooms.insert(std::make_pair(id, chatroom));
 +	chatroom.chat_name = tname;
 +	facy.chat_rooms.insert(std::make_pair(tid, chatroom));
  	// Add self contact
 -	AddChatContact(id, facy.self_.user_id.c_str(), facy.self_.real_name.c_str());
 +	AddChatContact(tid, facy.self_.user_id.c_str(), facy.self_.real_name.c_str());
  	CallServiceSync(MS_GC_EVENT,SESSION_INITDONE,reinterpret_cast<LPARAM>(&gce));
  	CallServiceSync(MS_GC_EVENT,SESSION_ONLINE,  reinterpret_cast<LPARAM>(&gce));
  }
 @@ -305,10 +298,10 @@ INT_PTR FacebookProto::OnJoinChat(WPARAM wParam,LPARAM suppress)  	// TODO: load info from server + old history,...
 -	ptrA id( getStringA(hContact, "ChatRoomID"));
 -	ptrA name( getStringA(hContact, "Nick"));
 +	ptrT idT( getTStringA(hContact, "ChatRoomID"));
 +	ptrT nameT( getTStringA(hContact, "Nick"));
 -	AddChat(id, name);
 +	AddChat(idT, nameT);
  /*	GCSESSION gcw = {sizeof(gcw)};
 diff --git a/protocols/FacebookRM/src/client.h b/protocols/FacebookRM/src/client.h index 57a503d748..798d17843c 100644 --- a/protocols/FacebookRM/src/client.h +++ b/protocols/FacebookRM/src/client.h @@ -95,7 +95,7 @@ public:  	std::map<std::string, std::string> cookies;
  	std::map<std::string, std::string> pages;
 -	std::map<std::string, facebook_chatroom> chat_rooms;
 +	std::map<std::tstring, facebook_chatroom> chat_rooms;
  	std::string get_newsfeed_type();
  	std::string get_server_type();
 diff --git a/protocols/FacebookRM/src/contacts.cpp b/protocols/FacebookRM/src/contacts.cpp index a2950c07f5..432c00187f 100644 --- a/protocols/FacebookRM/src/contacts.cpp +++ b/protocols/FacebookRM/src/contacts.cpp @@ -66,14 +66,14 @@ bool FacebookProto::IsMyContact(HANDLE hContact, bool include_chat)  	return false;
  }
 -HANDLE FacebookProto::ChatIDToHContact(std::string chat_id)
 +HANDLE FacebookProto::ChatIDToHContact(std::tstring chat_id)
  {
  	for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
  		if (!IsMyContact(hContact, true))
  			continue;
 -		ptrA id(getStringA(hContact, "ChatRoomID"));
 -		if (id && !strcmp(id, chat_id.c_str()))
 +		ptrT id(getTStringA(hContact, "ChatRoomID"));
 +		if (id && !_tcscmp(id, chat_id.c_str()))
  			return hContact;
  	}
 diff --git a/protocols/FacebookRM/src/entities.h b/protocols/FacebookRM/src/entities.h index 4eb4405f83..f1fc57055e 100644 --- a/protocols/FacebookRM/src/entities.h +++ b/protocols/FacebookRM/src/entities.h @@ -63,8 +63,8 @@ struct facebook_chatroom  {
  	HANDLE handle;
 -	std::string chat_name;
 -	std::string thread_id;
 +	std::tstring chat_name;
 +	std::tstring thread_id;
  	std::map<std::string, std::string> participants;
  	std::string message_readers;
 diff --git a/protocols/FacebookRM/src/json.cpp b/protocols/FacebookRM/src/json.cpp index 14bcc64c25..e73320cfcf 100644 --- a/protocols/FacebookRM/src/json.cpp +++ b/protocols/FacebookRM/src/json.cpp @@ -361,14 +361,15 @@ int facebook_json_parser::parse_messages(void* data, std::vector< facebook_messa  				JSONNODE *threadid = json_get(it, "tid");
  				if (threadid != NULL) { // multi user chat
 -					std::string tid = json_as_pstring(threadid);
 +					std::tstring tid = json_as_string(threadid);
  					std::string reader_id = json_as_pstring(reader);
 -					std::map<std::string, facebook_chatroom>::iterator chatroom = proto->facy.chat_rooms.find(tid);
 +					std::map<std::tstring, facebook_chatroom>::iterator chatroom = proto->facy.chat_rooms.find(tid);
  					if (chatroom != proto->facy.chat_rooms.end()) {
  						std::map<std::string, std::string>::const_iterator participant = chatroom->second.participants.find(reader_id);
  						if (participant == chatroom->second.participants.end()) {
 -							std::string search = utils::url::encode(tid) + "?";
 +							std::string tidA = _T2A(tid.c_str());
 +							std::string search = utils::url::encode(tidA) + "?";
  							http::response resp = proto->facy.flap(REQUEST_USER_INFO, NULL, &search);
  							if (resp.code == HTTP_CODE_FOUND && resp.headers.find("Location") != resp.headers.end()) {
 @@ -454,14 +455,14 @@ int facebook_json_parser::parse_messages(void* data, std::vector< facebook_messa  				// Multi-user
  				JSONNODE *gthreadinfo = json_get(msg, "group_thread_info");
  				if (gthreadinfo != NULL) {
 -					std::string thread_id = json_as_pstring(tid);
 +					std::tstring thread_id = json_as_string(tid);
  					// This is a recent 5 person listing of participants.
  					JSONNODE *participants_ids = json_get(gthreadinfo, "participant_ids");
  					JSONNODE *participants_names = json_get(gthreadinfo, "participant_names");
  					JSONNODE *thread_name_ = json_get(gthreadinfo, "name");
 -					std::string name = json_as_pstring(thread_name_);
 +					std::tstring name = json_as_string(thread_name_);
  					// if there is no name for this room, set own name
  					if (name.empty()) {
 @@ -471,16 +472,16 @@ int facebook_json_parser::parse_messages(void* data, std::vector< facebook_messa  							JSONNODE *nameItr = json_at(participants_names, n);
  							if (!name.empty())
 -								name += ", ";
 +								name += _T(", ");
 -							name += json_as_pstring(nameItr);
 +							name += json_as_string(nameItr);
  						}
  						JSONNODE *count_ = json_get(gthreadinfo, "participant_total_count");
  						unsigned int count = json_as_int(count_);
  						if (count > namesCount) {
 -							char more[200];
 -							mir_snprintf(more, SIZEOF(more), Translate("%s and more (%d)"), name.c_str(), count - namesCount);
 +							TCHAR more[200];
 +							mir_sntprintf(more, SIZEOF(more), TranslateT("%s and more (%d)"), name.c_str(), count - namesCount);
  							name = more;
  						}
  					}
 @@ -493,7 +494,7 @@ int facebook_json_parser::parse_messages(void* data, std::vector< facebook_messa  						// Set thread id (TID) for later.
  						proto->AddChat(thread_id.c_str(), name.c_str());
  						hChatContact = proto->ChatIDToHContact(thread_id);
 -						proto->setString(hChatContact, FACEBOOK_KEY_TID, thread_id.c_str());
 +						proto->setTString(hChatContact, FACEBOOK_KEY_TID, thread_id.c_str());
  					}
  					if (!hChatContact)
 @@ -664,7 +665,7 @@ int facebook_json_parser::parse_messages(void* data, std::vector< facebook_messa  				JSONNODE *name_ = json_get(log_data_, "name");
  				std::string name = json_as_pstring(name_);
 -				std::string thread_id = json_as_pstring(thread_id_);
 +				std::tstring thread_id = json_as_string(thread_id_);
  				std::string message = json_as_pstring(log_body_);
  				// proto->RenameChat(thread_id.c_str(), name.c_str()); // this don't work, why?
 @@ -760,7 +761,7 @@ int facebook_json_parser::parse_thread_messages(void* data, std::vector< faceboo  			JSONNODE *it = json_at(roger, i);
  			facebook_chatroom *room = new facebook_chatroom();
 -			room->thread_id = json_name(it);
 +			room->thread_id = _A2T(json_name(it));
  			for (unsigned int j = 0; j < json_size(it); j++) {
  				JSONNODE *jt = json_at(it, j);
 @@ -768,7 +769,7 @@ int facebook_json_parser::parse_thread_messages(void* data, std::vector< faceboo  				room->participants.insert(std::make_pair(user_id, user_id)); // TODO: get name somehow
  			}
 -			chatrooms->insert(std::make_pair(room->thread_id, room));
 +			chatrooms->insert(std::make_pair(_T2A(room->thread_id.c_str()), room));
  		}
  	}
 @@ -782,7 +783,7 @@ int facebook_json_parser::parse_thread_messages(void* data, std::vector< faceboo  		std::map<std::string, facebook_chatroom*>::iterator iter = chatrooms->find(json_as_pstring(thread_id));
  		if (iter != chatrooms->end()) {
 -			iter->second->chat_name = json_as_pstring(name); // TODO: create name from users if there is no name...
 +			iter->second->chat_name = json_as_string(name); // TODO: create name from users if there is no name...
  		}
  		if (canonical == NULL || thread_id == NULL)
 diff --git a/protocols/FacebookRM/src/messages.cpp b/protocols/FacebookRM/src/messages.cpp index cb5abc57cb..cc75d048dd 100644 --- a/protocols/FacebookRM/src/messages.cpp +++ b/protocols/FacebookRM/src/messages.cpp @@ -76,7 +76,7 @@ void FacebookProto::SendChatMsgWorker(void *p)  	send_chat *data = static_cast<send_chat*>(p);
  	std::string err_message = "";
 -	HANDLE hContact = ChatIDToHContact(data->chat_id);
 +	HANDLE hContact = ChatIDToHContact(std::tstring(_A2T(data->chat_id.c_str())));
  	if (hContact) {		
  		std::string tid;
  		DBVARIANT dbv;
 @@ -98,9 +98,9 @@ void FacebookProto::SendChatMsgWorker(void *p)  		if (!tid.empty()) {
  			if (facy.send_message(tid, data->msg, &err_message, MESSAGE_TID))
 -				UpdateChat(data->chat_id.c_str(), facy.self_.user_id.c_str(), facy.self_.real_name.c_str(), data->msg.c_str());
 +				UpdateChat(_A2T(data->chat_id.c_str()), facy.self_.user_id.c_str(), facy.self_.real_name.c_str(), data->msg.c_str());
  			else
 -				UpdateChat(data->chat_id.c_str(), NULL, NULL, err_message.c_str());
 +				UpdateChat(_A2T(data->chat_id.c_str()), NULL, NULL, err_message.c_str());
  		}
  	}
 diff --git a/protocols/FacebookRM/src/process.cpp b/protocols/FacebookRM/src/process.cpp index 3837a73f94..5a9ffb26f5 100644 --- a/protocols/FacebookRM/src/process.cpp +++ b/protocols/FacebookRM/src/process.cpp @@ -362,7 +362,7 @@ void FacebookProto::ProcessUnreadMessage(void *p)  					// Set thread id (TID) for later.
  					AddChat(room->thread_id.c_str(), room->chat_name.c_str());
  					hChatContact = ChatIDToHContact(room->thread_id);
 -					setString(hChatContact, FACEBOOK_KEY_TID, room->thread_id.c_str());
 +					setTString(hChatContact, FACEBOOK_KEY_TID, room->thread_id.c_str());
  					for (std::map<std::string, std::string>::iterator jt = room->participants.begin(); jt != room->participants.end(); ) {
  						AddChatContact(room->thread_id.c_str(), jt->first.c_str(), jt->second.c_str());
 @@ -373,7 +373,7 @@ void FacebookProto::ProcessUnreadMessage(void *p)  				if (!hChatContact)
  					hChatContact = ChatIDToHContact(room->thread_id);
 -				setString(hChatContact, FACEBOOK_KEY_MESSAGE_ID, room->thread_id.c_str());
 +				setTString(hChatContact, FACEBOOK_KEY_MESSAGE_ID, room->thread_id.c_str());
  				ForkThread(&FacebookProto::ReadMessageWorker, hChatContact);
  				delete it->second;
 @@ -385,7 +385,7 @@ void FacebookProto::ProcessUnreadMessage(void *p)  			for (std::vector<facebook_message*>::size_type i = 0; i < messages.size(); i++) {				
  				if (messages[i]->isChat) {
  					debugLogA("      Got chat message: %s", messages[i]->message_text.c_str());
 -					UpdateChat(messages[i]->thread_id.c_str(), messages[i]->user_id.c_str(), messages[i]->sender_name.c_str(), messages[i]->message_text.c_str(), local_timestamp || !messages[i]->time ? ::time(NULL) : messages[i]->time);
 +					UpdateChat(_A2T(messages[i]->thread_id.c_str()), messages[i]->user_id.c_str(), messages[i]->sender_name.c_str(), messages[i]->message_text.c_str(), local_timestamp || !messages[i]->time ? ::time(NULL) : messages[i]->time);
  				} else if (messages[i]->user_id != facy.self_.user_id) {
  					debugLogA("      Got message: %s", messages[i]->message_text.c_str());
  					facebook_user fbu;
 diff --git a/protocols/FacebookRM/src/proto.h b/protocols/FacebookRM/src/proto.h index a6f56fa50c..3ab2c867c0 100644 --- a/protocols/FacebookRM/src/proto.h +++ b/protocols/FacebookRM/src/proto.h @@ -187,20 +187,20 @@ public:  	// Contacts handling
  	bool    IsMyContact(HANDLE, bool include_chat = false);
  	HANDLE  ContactIDToHContact(std::string);
 -	HANDLE  ChatIDToHContact(std::string);
 +	HANDLE  ChatIDToHContact(std::tstring);
  	HANDLE  AddToContactList(facebook_user*, ContactType type, bool dont_check = false);
  	void    SetAllContactStatuses(int status, bool reset_client = false);
  	HANDLE  HContactFromAuthEvent(HANDLE hEvent);
  	// Chats handling
 - 	void AddChat(const char *id, const char *name);
 -	void UpdateChat(const char *chat_id, const char *id, const char *name, const char *message, DWORD timestamp = 0);
 + 	void AddChat(const TCHAR *id, const TCHAR *name);
 +	void UpdateChat(const TCHAR *chat_id, const char *id, const char *name, const char *message, DWORD timestamp = 0);
  	void RenameChat(const char *chat_id, const char *name);
 -	bool IsChatContact(const char *chat_id, const char *id);
 -	void AddChatContact(const char *chat_id, const char *id, const char *name);
 -	void RemoveChatContact(const char *chat_id, const char *id);
 +	bool IsChatContact(const TCHAR *chat_id, const char *id);
 +	void AddChatContact(const TCHAR *chat_id, const char *id, const char *name);
 +	void RemoveChatContact(const TCHAR *chat_id, const char *id);
  	void SetChatStatus(const char *chat_id, int status);
 -	char *GetChatUsers(const char *chat_id);
 +	char *GetChatUsers(const TCHAR *chat_id);
  	// Connection client
  	facebook_client facy; // TODO: Refactor to "client" and make dynamic
  | 
