Skype: initial support for custom groups

This commit is contained in:
HanzZ 2013-01-29 17:27:41 +01:00
parent b90a91ac78
commit 22eb281dd4

View file

@ -100,6 +100,7 @@ class Skype {
int m_timer;
int m_counter;
int fd_output;
std::map<std::string, std::string> m_groups;
};
class SpectrumNetworkPlugin : public NetworkPlugin {
@ -702,6 +703,32 @@ static void handle_skype_message(std::string &message, Skype *sk) {
np->handleAuthorization(sk->getUser(), cmd[1]);
}
}
else if (cmd[0] == "GROUP") {
if (cmd[2] == "DISPLAYNAME") {
//GROUP 810 DISPLAYNAME My Friends
std::string grp = GET_RESPONSE_DATA(message, "DISPLAYNAME");
std::string users = sk->send_command("GET GROUP " + cmd[1] + " USERS");
try {
users = GET_RESPONSE_DATA(users, "USERS");
}
catch (std::out_of_range& oor) {
return;
}
std::vector<std::string> data;
boost::split(data, users, boost::is_any_of(","));
BOOST_FOREACH(std::string u, data) {
GET_PROPERTY(alias, "USER", cmd[1], "FULLNAME");
GET_PROPERTY(mood_text, "USER", cmd[1], "MOOD_TEXT");
GET_PROPERTY(st, "USER", cmd[1], "ONLINESTATUS");
pbnetwork::StatusType status = getStatus(st);
std::vector<std::string> groups;
groups.push_back(grp);
np->handleBuddyChanged(sk->getUser(), u, alias, groups, status, mood_text);
}
}
}
else if (cmd[0] == "CHATMESSAGE") {
if (cmd[3] == "RECEIVED") {
GET_PROPERTY(body, "CHATMESSAGE", cmd[1], "BODY");