Modify

#1037 closed defect (fixed)

Skype plugin doesn't correctly handle group chats.

Reported by: Jinn Ko <bitlbee@…> Owned by: Miklos Vajna
Priority: normal Milestone:
Component: Skype Version: devel
Keywords: Cc:
IRC client+version: Client-independent Operating System: Public server
OS version/distro: OSX 10.8.2 x86_64

Description

After getting the bzr latest version working with skyped I found group chats are not being connected correctly. The fix is the following patch against bitlbee.bzr r977:

=== modified file 'protocols/skype/skype.c'
--- protocols/skype/skype.c	2013-02-18 08:42:30 +0000
+++ protocols/skype/skype.c	2013-03-10 00:35:54 +0000
@@ -1002,7 +1008,7 @@
 			g_free(sd->adder);
 			sd->adder = NULL;
 		}
-	} else if (!strncmp(info, "MEMBERS ", 8)) {
+	} else if (!strncmp(info, "MEMBERS ", 8) || !strncmp(info, "ACTIVEMEMBERS ", 14) ) {
 		info += 8;
 		gc = bee_chat_by_title(ic->bee, ic, id);
 		/* Hack! We set ->data to TRUE

Additionally, the latest Skype API doesn't appear to return all bookmarked chats that are "favorite" in the new UI. It almost seems SEARCH BOOKMARKEDCHATS is only returning chats that were bookmarked in skype-2 on OSX. To resolve this issue the following change works.

=== modified file 'protocols/skype/skype.c'
--- protocols/skype/skype.c	2013-02-18 08:42:30 +0000
+++ protocols/skype/skype.c	2013-03-10 00:35:54 +0000
@@ -1207,8 +1215,12 @@
 	skype_printf(ic, "SET USERSTATUS ONLINE\n");

 	/* Auto join to bookmarked chats if requested.*/
-	if (set_getbool(&ic->acc->set, "auto_join"))
+	if (set_getbool(&ic->acc->set, "auto_join")) {
 		skype_printf(ic, "SEARCH BOOKMARKEDCHATS\n");
+		skype_printf(ic, "SEARCH ACTIVECHATS\n");
+		skype_printf(ic, "SEARCH MISSEDCHATS\n");
+		skype_printf(ic, "SEARCH RECENTCHATS\n");
+	}
 	return st;
 }

As a side note, in order to get this far it was necessary to comment out another request to the Skype API that was constantly timing out:

=== modified file 'protocols/skype/skype.c'
--- protocols/skype/skype.c	2013-02-18 08:42:30 +0000
+++ protocols/skype/skype.c	2013-03-10 00:35:54 +0000
@@ -1074,7 +1080,9 @@
 	i = groups;
 	while (*i) {
 		skype_printf(ic, "GET GROUP %s DISPLAYNAME\n", *i);
-		skype_printf(ic, "GET GROUP %s USERS\n", *i);
+		/* FIXME: The following doesn't return any data
+		 * and blocks the initialization process for a while */
+		/* skype_printf(ic, "GET GROUP %s USERS\n", *i); */
 		i++;
 	}
 	g_strfreev(groups);

Attachments (0)

Change History (2)

comment:1 Changed at 2013-03-16T20:21:41Z by Miklos Vajna

Hi Jinn,

The first two patches looks good, I'll queue them in a bit for the next merge round.

The third looks tricky:

account skype set read_groups false

Should fix your problem without touching the code. But false is already the default, so maybe you set it to true?

https://jira.skype.com/browse/SPA-736 is the upstream Skype bugreport about that, that's why it's disabled by default.

Thanks,

Miklos

comment:2 Changed at 2013-03-24T20:37:06Z by Miklos Vajna

Resolution: fixed
Status: newclosed

Fixed in r978.1.6 and r978.1.7.

Modify Ticket

Action
as closed The owner will remain Miklos Vajna.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.