Changeset - 7e9dfbdeadda
[Not reviewed]
0 4 0
HanzZ - 13 years ago 2012-12-18 21:05:16
hanzz.k@gmail.com
disconnect twitter user in case of curl error
4 files changed with 50 insertions and 6 deletions:
0 comments (0 inline, 0 general)
backends/libcommuni/ircnetworkplugin.cpp
Show inline comments
 
@@ -72,13 +72,13 @@ MyIrcSession *IRCNetworkPlugin::createSession(const std::string &user, const std
 
	MyIrcSession *session = new MyIrcSession(user, this, suffix);
 
	session->setUserName(FROM_UTF8(nickname));
 
	session->setNickName(FROM_UTF8(nickname));
 
	session->setRealName(FROM_UTF8(nickname));
 
	session->setHost(FROM_UTF8(hostname));
 
	session->setPort(6667);
 
	session->setEncoding( "utf-8" );
 
// 	session->setEncoding("UTF8");
 

	
 
	if (!password.empty()) {
 
		std::string identify = m_identify;
 
		boost::replace_all(identify, "$password", password);
 
		boost::replace_all(identify, "$name", nickname);
 
		session->setIdentify(identify);
backends/twitter/TwitterPlugin.cpp
Show inline comments
 
@@ -577,12 +577,16 @@ std::string TwitterPlugin::getMostRecentDMID(const std::string user)
 
}
 

	
 
/************************************** Twitter response functions **********************************/
 
void TwitterPlugin::statusUpdateResponse(std::string &user, Error &errMsg)
 
{
 
	if(errMsg.getMessage().length()) {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
	} else {
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							"Status Update successful", userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
	}
 
@@ -624,14 +628,20 @@ void TwitterPlugin::populateRoster(std::string &user, std::vector<User> &friends
 
				handleParticipantChanged(user, friends[i].getScreenName(), adminChatRoom, 0, pbnetwork::STATUS_ONLINE);
 
			
 
			/*handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							   	friends[i].getScreenName() + " - " + friends[i].getLastStatus().getTweet(), 
 
								userdb[user].twitterMode == CHATROOM ? adminNickName : "");*/
 
		}
 
	} else handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							   std::string("Error populating roster - ") + errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");	
 
	} else {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							   std::string("Error populating roster - ") + errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
	}
 

	
 
	if(userdb[user].twitterMode == CHATROOM) handleParticipantChanged(user, userdb[user].nickName, adminChatRoom, 0, pbnetwork::STATUS_ONLINE);
 
}
 

	
 
void TwitterPlugin::displayFriendlist(std::string &user, std::vector<User> &friends, std::vector<std::string> &friendAvatars, Error &errMsg)
 
{
 
@@ -641,14 +651,20 @@ void TwitterPlugin::displayFriendlist(std::string &user, std::vector<User> &frie
 
		for(int i=0 ; i < friends.size() ; i++) {
 
			userlist += " - " + friends[i].getUserName() + " (" + friends[i].getScreenName() + ")\n";
 
		}	
 
		userlist += "***************************************\n";
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							userlist, userdb[user].twitterMode == CHATROOM ? adminNickName : "");	
 
	} else handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName, 
 
	} else {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName, 
 
							   errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");	
 
	}
 
 
 
}
 

	
 
void TwitterPlugin::displayTweets(std::string &user, std::string &userRequested, std::vector<Status> &tweets , Error &errMsg)
 
{
 
	if(errMsg.getMessage().length() == 0) {
 
@@ -680,22 +696,33 @@ void TwitterPlugin::displayTweets(std::string &user, std::string &userRequested,
 

	
 
		if((userRequested == "" || userRequested == user) && tweets.size()) {
 
			std::string tweetID = getMostRecentTweetID(user);
 
			if(tweetID != tweets[0].getID()) updateLastTweetID(user, tweets[0].getID());
 
		}
 

	
 
	} else handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
	} else {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							   errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");	
 
	}
 
}
 

	
 
void TwitterPlugin::directMessageResponse(std::string &user, std::string &username, std::vector<DirectMessage> &messages, Error &errMsg)
 
{
 
	if(errMsg.getCode() == "93") //Permission Denied
 
		return;
 

	
 
	if(errMsg.getMessage().length()) {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 

	
 
		if(username != "")
 
			handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
						  std::string("Error while sending direct message! - ") + errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
		else
 
			handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
						  std::string("Error while fetching direct messages! - ") + errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
@@ -746,12 +773,16 @@ void TwitterPlugin::directMessageResponse(std::string &user, std::string &userna
 
	}
 
}
 

	
 
void TwitterPlugin::createFriendResponse(std::string &user, User &frnd, std::string &img, Error &errMsg)
 
{
 
	if(errMsg.getMessage().length()) {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
		return;
 
	}
 

	
 
	handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
@@ -769,12 +800,16 @@ void TwitterPlugin::createFriendResponse(std::string &user, User &frnd, std::str
 
	}
 
}
 

	
 
void TwitterPlugin::deleteFriendResponse(std::string &user, User &frnd, Error &errMsg)
 
{
 
	if(errMsg.getMessage().length()) {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName, 
 
							errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
		return;
 
	} 
 
	
 
	LOG4CXX_INFO(logger, user << " - " << frnd.getScreenName() << ", " << frnd.getProfileImgURL())
 
@@ -793,23 +828,31 @@ void TwitterPlugin::deleteFriendResponse(std::string &user, User &frnd, Error &e
 
}
 

	
 

	
 
void TwitterPlugin::RetweetResponse(std::string &user, Error &errMsg)
 
{
 
	if(errMsg.getMessage().length()) {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
	} else {
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							"Retweet successful", userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
	}
 
}
 

	
 
void TwitterPlugin::profileImageResponse(std::string &user, std::string &buddy, std::string &img, unsigned int reqID, Error &errMsg)
 
{
 
	if(errMsg.getMessage().length()) {
 
		if (errMsg.isCurlError()) {
 
			handleDisconnected(user, 3, errMsg.getMessage());
 
			return;
 
		}
 
		handleMessage(user, userdb[user].twitterMode == CHATROOM ? adminChatRoom : adminLegacyName,
 
							errMsg.getMessage(), userdb[user].twitterMode == CHATROOM ? adminNickName : "");
 
	} else {
 
		LOG4CXX_INFO(logger, user << " - Sending VCard for " << buddy)
 
		handleVCard(user, reqID, buddy, buddy, "", img);
 
	}
backends/twitter/TwitterResponseParser.cpp
Show inline comments
 
@@ -248,13 +248,13 @@ std::vector<std::string> getIDs(std::string &xml)
 
	return IDs;
 
}
 

	
 
Error getErrorMessage(std::string &xml)
 
{
 
	std::string error = "";
 
	std::string code = "";
 
	std::string code = "0";
 
	Error resp;
 

	
 
	Swift::ParserElement::ref rootElement = Swift::StringTreeParser::parse(xml);
 

	
 
	if(rootElement == NULL) {
 
		LOG4CXX_ERROR(logger, "Error while parsing XML");
backends/twitter/TwitterResponseParser.h
Show inline comments
 
@@ -201,12 +201,13 @@ class Error
 
	std::string code;
 
	std::string message;
 
	public:
 
	Error():code(""),message(""){}
 
	std::string getCode() {return code;}
 
	std::string getMessage() {return message;}
 
	bool isCurlError() { return code.empty(); }
 

	
 
	void setCode(std::string &_code) {code = _code;}
 
	void setMessage(std::string &_message) {message = _message;}
 
};
 

	
 
std::vector<Status> getTimeline(std::string &xml);
0 comments (0 inline, 0 general)