Skype: initial support for custom groups
This commit is contained in:
parent
b90a91ac78
commit
22eb281dd4
1 changed files with 27 additions and 0 deletions
|
@ -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");
|
||||
|
|
Loading…
Add table
Reference in a new issue