diff --git a/backends/libcommuni/ircnetworkplugin.cpp b/backends/libcommuni/ircnetworkplugin.cpp index bda4cc4d..486a8bcd 100644 --- a/backends/libcommuni/ircnetworkplugin.cpp +++ b/backends/libcommuni/ircnetworkplugin.cpp @@ -75,7 +75,7 @@ MyIrcSession *IRCNetworkPlugin::createSession(const std::string &user, const std 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; diff --git a/backends/twitter/TwitterPlugin.cpp b/backends/twitter/TwitterPlugin.cpp index 49eb6a59..9163b680 100644 --- a/backends/twitter/TwitterPlugin.cpp +++ b/backends/twitter/TwitterPlugin.cpp @@ -580,6 +580,10 @@ std::string TwitterPlugin::getMostRecentDMID(const std::string user) 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 { @@ -627,8 +631,14 @@ void TwitterPlugin::populateRoster(std::string &user, std::vector &friends 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); } @@ -644,8 +654,14 @@ void TwitterPlugin::displayFriendlist(std::string &user, std::vector &frie 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 : ""); + } } @@ -683,8 +699,14 @@ void TwitterPlugin::displayTweets(std::string &user, std::string &userRequested, 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 &messages, Error &errMsg) @@ -693,6 +715,11 @@ void TwitterPlugin::directMessageResponse(std::string &user, std::string &userna 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 : ""); @@ -749,6 +776,10 @@ 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; @@ -772,6 +803,10 @@ 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; @@ -796,6 +831,10 @@ 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 { @@ -807,6 +846,10 @@ void TwitterPlugin::RetweetResponse(std::string &user, Error &errMsg) 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 { diff --git a/backends/twitter/TwitterResponseParser.cpp b/backends/twitter/TwitterResponseParser.cpp index 0774b951..a6d919a9 100644 --- a/backends/twitter/TwitterResponseParser.cpp +++ b/backends/twitter/TwitterResponseParser.cpp @@ -251,7 +251,7 @@ std::vector getIDs(std::string &xml) 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); diff --git a/backends/twitter/TwitterResponseParser.h b/backends/twitter/TwitterResponseParser.h index 69be8d5d..2dc5097f 100644 --- a/backends/twitter/TwitterResponseParser.h +++ b/backends/twitter/TwitterResponseParser.h @@ -204,6 +204,7 @@ class Error 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;}