diff options
| author | Miklos Vajna <vmiklos@vmiklos.hu> | 2013-02-28 08:15:49 +0100 | 
|---|---|---|
| committer | Miklos Vajna <vmiklos@vmiklos.hu> | 2013-02-28 08:15:49 +0100 | 
| commit | 36f6ab3f1534545ceccd5363962a2967667d48fb (patch) | |
| tree | 0745da3479d0d1fad8061238ccd0418d935be598 /protocols | |
| parent | c440320f9df04f05ead97bc7a7a016e23e49bb64 (diff) | |
skype: add support for fetching full names of buddies
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/skype/skype.c | 22 | ||||
| -rw-r--r-- | protocols/skype/t/add-yes-skyped.mock | 2 | ||||
| -rw-r--r-- | protocols/skype/t/added-no-skyped.mock | 2 | ||||
| -rw-r--r-- | protocols/skype/t/added-yes-skyped.mock | 2 | ||||
| -rw-r--r-- | protocols/skype/t/call-failed-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/call-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/called-no-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/called-yes-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/ctcp-help-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/filetransfer-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/group-read-skyped.mock | 10 | ||||
| -rw-r--r-- | protocols/skype/t/groupchat-invite-bitlbee.mock | 1 | ||||
| -rw-r--r-- | protocols/skype/t/groupchat-invite-skyped.mock | 6 | ||||
| -rw-r--r-- | protocols/skype/t/groupchat-invited-skyped.mock | 6 | ||||
| -rw-r--r-- | protocols/skype/t/info-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/login-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/msg-skyped.mock | 4 | ||||
| -rw-r--r-- | protocols/skype/t/set-mood-text-skyped.mock | 2 | 
18 files changed, 85 insertions, 4 deletions
| diff --git a/protocols/skype/skype.c b/protocols/skype/skype.c index 4ae34668..58a1c415 100644 --- a/protocols/skype/skype.c +++ b/protocols/skype/skype.c @@ -117,6 +117,8 @@ struct skype_data {  	/* Pending user which has to be added to the next group which is  	 * created. */  	char *pending_user; +	/* If the info command was used, to determine what to do with FULLNAME result. */ +	int is_info;  };  struct skype_away_state { @@ -319,8 +321,10 @@ static void skype_parse_users(struct im_connection *ic, char *line)  	char **i, **nicks;  	nicks = g_strsplit(line + 6, ", ", 0); -	for (i = nicks; *i; i++) +	for (i = nicks; *i; i++) {  		skype_printf(ic, "GET USER %s ONLINESTATUS\n", *i); +		skype_printf(ic, "GET USER %s FULLNAME\n", *i); +	}  	g_strfreev(nicks);  } @@ -374,9 +378,17 @@ static void skype_parse_user(struct im_connection *ic, char *line)  					*buf ? buf : NULL);  		if (set_getbool(&ic->acc->set, "show_moods"))  			imcb_log(ic, "User `%s' changed mood text to `%s'", user, buf); -	} else if (!strncmp(ptr, "FULLNAME ", 9)) -		sd->info_fullname = g_strdup(ptr + 9); -	else if (!strncmp(ptr, "PHONE_HOME ", 11)) +	} else if (!strncmp(ptr, "FULLNAME ", 9)) { +		char *name = ptr + 9; +		if (sd->is_info) { +			sd->is_info = FALSE; +			sd->info_fullname = g_strdup(name); +		} else { +			char *buf = g_strdup_printf("%s@skype.com", user); +			imcb_rename_buddy(ic, buf, name); +			g_free(buf); +		} +	} else if (!strncmp(ptr, "PHONE_HOME ", 11))  		sd->info_phonehome = g_strdup(ptr + 11);  	else if (!strncmp(ptr, "PHONE_OFFICE ", 13))  		sd->info_phoneoffice = g_strdup(ptr + 13); @@ -1502,11 +1514,13 @@ struct groupchat *skype_chat_with(struct im_connection *ic, char *who)  static void skype_get_info(struct im_connection *ic, char *who)  { +	struct skype_data *sd = ic->proto_data;  	char *ptr, *nick;  	nick = g_strdup(who);  	ptr = strchr(nick, '@');  	if (ptr)  		*ptr = '\0'; +	sd->is_info = TRUE;  	skype_printf(ic, "GET USER %s FULLNAME\n", nick);  	skype_printf(ic, "GET USER %s PHONE_HOME\n", nick);  	skype_printf(ic, "GET USER %s PHONE_OFFICE\n", nick); diff --git a/protocols/skype/t/add-yes-skyped.mock b/protocols/skype/t/add-yes-skyped.mock index eed257e5..dea175a3 100644 --- a/protocols/skype/t/add-yes-skyped.mock +++ b/protocols/skype/t/add-yes-skyped.mock @@ -8,6 +8,8 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> SET USER bob BUDDYSTATUS 2 Please authorize me  << USER bob BUDDYSTATUS 2  << USER bob ISAUTHORIZED TRUE diff --git a/protocols/skype/t/added-no-skyped.mock b/protocols/skype/t/added-no-skyped.mock index f7283cbc..0e4bfc8a 100644 --- a/protocols/skype/t/added-no-skyped.mock +++ b/protocols/skype/t/added-no-skyped.mock @@ -8,6 +8,8 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  << USER bob RECEIVEDAUTHREQUEST Please allow me to see when you are online  >> SET USER bob ISAUTHORIZED FALSE  << USER bob ISAUTHORIZED FALSE diff --git a/protocols/skype/t/added-yes-skyped.mock b/protocols/skype/t/added-yes-skyped.mock index e22beb97..fc3d756f 100644 --- a/protocols/skype/t/added-yes-skyped.mock +++ b/protocols/skype/t/added-yes-skyped.mock @@ -8,6 +8,8 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  << USER bob RECEIVEDAUTHREQUEST Please allow me to see when you are online  >> SET USER bob ISAUTHORIZED TRUE  << USER bob ISAUTHORIZED TRUE diff --git a/protocols/skype/t/call-failed-skyped.mock b/protocols/skype/t/call-failed-skyped.mock index 8f6f6007..30699f91 100644 --- a/protocols/skype/t/call-failed-skyped.mock +++ b/protocols/skype/t/call-failed-skyped.mock @@ -8,8 +8,12 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS OFFLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> CALL bob  << CALL 216 STATUS UNPLACED  << CALL 216 STATUS ROUTING diff --git a/protocols/skype/t/call-skyped.mock b/protocols/skype/t/call-skyped.mock index c166af96..92947ba9 100644 --- a/protocols/skype/t/call-skyped.mock +++ b/protocols/skype/t/call-skyped.mock @@ -8,8 +8,12 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS OFFLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> CALL bob  << CALL 178 STATUS UNPLACED  << CALL 178 STATUS ROUTING diff --git a/protocols/skype/t/called-no-skyped.mock b/protocols/skype/t/called-no-skyped.mock index 6e90e5b9..5152fe9e 100644 --- a/protocols/skype/t/called-no-skyped.mock +++ b/protocols/skype/t/called-no-skyped.mock @@ -8,8 +8,12 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  << CALL 212 CONF_ID 0  << CALL 212 STATUS RINGING  >> GET CALL 212 PARTNER_HANDLE diff --git a/protocols/skype/t/called-yes-skyped.mock b/protocols/skype/t/called-yes-skyped.mock index 08c78275..67cdffe3 100644 --- a/protocols/skype/t/called-yes-skyped.mock +++ b/protocols/skype/t/called-yes-skyped.mock @@ -8,8 +8,12 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  << CALL 208 CONF_ID 0  << CALL 208 STATUS RINGING  >> GET CALL 208 PARTNER_HANDLE diff --git a/protocols/skype/t/ctcp-help-skyped.mock b/protocols/skype/t/ctcp-help-skyped.mock index 322c7c6b..eacff2e6 100644 --- a/protocols/skype/t/ctcp-help-skyped.mock +++ b/protocols/skype/t/ctcp-help-skyped.mock @@ -8,5 +8,9 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob diff --git a/protocols/skype/t/filetransfer-skyped.mock b/protocols/skype/t/filetransfer-skyped.mock index 850c4c31..b24fcc94 100644 --- a/protocols/skype/t/filetransfer-skyped.mock +++ b/protocols/skype/t/filetransfer-skyped.mock @@ -8,8 +8,12 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  << FILETRANSFER 208 TYPE INCOMING  << FILETRANSFER 208 PARTNER_HANDLE bob  << FILETRANSFER 208 PARTNER_DISPNAME bob diff --git a/protocols/skype/t/group-read-skyped.mock b/protocols/skype/t/group-read-skyped.mock index 4a7a2299..148661a1 100644 --- a/protocols/skype/t/group-read-skyped.mock +++ b/protocols/skype/t/group-read-skyped.mock @@ -16,11 +16,21 @@  << GROUP 71 USERS daniel, emily  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> GET USER cecil ONLINESTATUS  << USER cecil ONLINESTATUS ONLINE +>> GET USER cecil FULLNAME +<< USER cecil FULLNAME Cecil  >> GET USER daniel ONLINESTATUS  << USER daniel ONLINESTATUS ONLINE +>> GET USER daniel FULLNAME +<< USER daniel FULLNAME Daniel  >> GET USER emily ONLINESTATUS  << USER emily ONLINESTATUS OFFLINE +>> GET USER emily FULLNAME +<< USER emily FULLNAME Emily diff --git a/protocols/skype/t/groupchat-invite-bitlbee.mock b/protocols/skype/t/groupchat-invite-bitlbee.mock index 49e3716f..7b44427f 100644 --- a/protocols/skype/t/groupchat-invite-bitlbee.mock +++ b/protocols/skype/t/groupchat-invite-bitlbee.mock @@ -4,6 +4,7 @@  >> PRIVMSG &bitlbee  << PRIVMSG &bitlbee :account add skype alice foo  << PRIVMSG &bitlbee :account skype on +>> :bob!bob@skype.com JOIN :&bitlbee  << PRIVMSG &bitlbee :chat with bob  >> 353 alice = ##alice/$bob;a7ab206ec780 :@alice bob @root  << INVITE cecil ##alice/$bob;a7ab206ec780 diff --git a/protocols/skype/t/groupchat-invite-skyped.mock b/protocols/skype/t/groupchat-invite-skyped.mock index 0f30a28e..214ebec0 100644 --- a/protocols/skype/t/groupchat-invite-skyped.mock +++ b/protocols/skype/t/groupchat-invite-skyped.mock @@ -8,10 +8,16 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> GET USER cecil ONLINESTATUS  << USER cecil ONLINESTATUS ONLINE +>> GET USER cecil FULLNAME +<< USER cecil FULLNAME Cecil  >> CHAT CREATE bob  << CHAT #alice/$bob;a7ab206ec78060f1 STATUS DIALOG  >> GET CHAT #alice/$bob;a7ab206ec78060f1 ADDER diff --git a/protocols/skype/t/groupchat-invited-skyped.mock b/protocols/skype/t/groupchat-invited-skyped.mock index 7da3be74..a5c754ce 100644 --- a/protocols/skype/t/groupchat-invited-skyped.mock +++ b/protocols/skype/t/groupchat-invited-skyped.mock @@ -8,10 +8,16 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS OFFLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> GET USER cecil ONLINESTATUS  << USER cecil ONLINESTATUS OFFLINE +>> GET USER cecil FULLNAME +<< USER cecil FULLNAME Cecil  << CHAT #cecil/$bob;4d8cc9965791c6b9 NAME #cecil/$bob;4d8cc9965791c6b9  << CHAT #cecil/$bob;4d8cc9965791c6b9 STATUS MULTI_SUBSCRIBED  << CHAT #cecil/$bob;4d8cc9965791c6b9 STATUS MULTI_SUBSCRIBED diff --git a/protocols/skype/t/info-skyped.mock b/protocols/skype/t/info-skyped.mock index 9b4ffda7..63076b09 100644 --- a/protocols/skype/t/info-skyped.mock +++ b/protocols/skype/t/info-skyped.mock @@ -8,10 +8,14 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE  >> GET USER bob FULLNAME  << USER bob FULLNAME Bob +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> GET USER bob PHONE_HOME  << USER bob PHONE_HOME   >> GET USER bob PHONE_OFFICE diff --git a/protocols/skype/t/login-skyped.mock b/protocols/skype/t/login-skyped.mock index 322c7c6b..eacff2e6 100644 --- a/protocols/skype/t/login-skyped.mock +++ b/protocols/skype/t/login-skyped.mock @@ -8,5 +8,9 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob diff --git a/protocols/skype/t/msg-skyped.mock b/protocols/skype/t/msg-skyped.mock index 1a49566e..03efb6bc 100644 --- a/protocols/skype/t/msg-skyped.mock +++ b/protocols/skype/t/msg-skyped.mock @@ -8,8 +8,12 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE +>> GET USER bob FULLNAME +<< USER bob FULLNAME Bob  >> MESSAGE bob foo  << CHATMESSAGE 290 STATUS SENDING  << CHAT #alice/$bob;ea753190f0a3e49b NAME #alice/$bob;ea753190f0a3e49b diff --git a/protocols/skype/t/set-mood-text-skyped.mock b/protocols/skype/t/set-mood-text-skyped.mock index f2814248..566f4234 100644 --- a/protocols/skype/t/set-mood-text-skyped.mock +++ b/protocols/skype/t/set-mood-text-skyped.mock @@ -8,5 +8,7 @@  << USERSTATUS ONLINE  >> GET USER echo123 ONLINESTATUS  << USER echo123 ONLINESTATUS ONLINE +>> GET USER echo123 FULLNAME +<< USER echo123 FULLNAME Echo / Sound Test Service  >> SET PROFILE MOOD_TEXT foo bar  << PROFILE MOOD_TEXT foo bar | 
