skype4pidgin icon indicating copy to clipboard operation
skype4pidgin copied to clipboard

Mood text lost after you refresh user info

Open himselfv opened this issue 7 years ago • 1 comments

Skypeweb correctly displays mood message in Pidgin when you first go online. But once you query user info at least once, the message is lost (you have to hover the cursor over the contact to trigger repainting).

This seems to be because the initial contact list request in skypeweb_get_friend_list() queries contacts.skype.com/contacts/v2/users/SELF?delta=&reason=default which returns a rich set of data about all contacts.

Meanwhile the user info request is done by skypeweb_get_info() which queries api.skype.com/users/batch/profiles passing it a list of usernames. This returns only profiles for the requested users, and while the mood field is included, it is always null.

The code in skypeweb_got_info() sets or resets mood depending on the value of the mood field, so it resets the field.

Possible workaround: Ignore the mood field in skypeweb_got_info().

Also perhaps purple-skypeweb should use the contacts.skype.com/contacts/v2/users path when querying the info for users from contact list? I think the batch/profiles path is for public access while "contacts/v2/users" is for private access to contact list.

If this is okay I can try to write it.

himselfv avatar Feb 15 '18 15:02 himselfv

I like the sound of the second idea (using the /contacts/v2/users if they're on the buddy list). I guess the trap to watch out for there is that the buddy isn't considered to be on your buddy list by the server, until they've approved the friend request, while the buddy could still appear on the libpurple/Pidgin buddy list

EionRobb avatar Feb 15 '18 20:02 EionRobb