Changeset 72aa7f0


Ignore:
Timestamp:
2007-10-06T19:20:12Z (17 years ago)
Author:
VMiklos <vmiklos@…>
Branches:
master
Children:
66c9558
Parents:
2d07803
Message:

initial groupchat support
read: we detect that we are invited we retreive the nicklist but we can't
receive/send messages yet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • skype/skype.c

    r2d07803 r72aa7f0  
    2727#include <poll.h>
    2828#include <bitlbee.h>
     29#include <glib.h>
    2930
    3031#define SKYPE_PORT_DEFAULT "2727"
     
    170171}
    171172
     173struct groupchat *skype_chat_by_name( struct im_connection *ic, char *name )
     174{
     175        struct groupchat *ret;
     176
     177        for( ret = ic->conversations; ret; ret = ret->next )
     178        {
     179                if(strcmp(name, ret->title ) == 0 )
     180                        break;
     181        }
     182
     183        return ret;
     184}
     185
    172186static gboolean skype_read_callback( gpointer data, gint fd, b_input_condition cond )
    173187{
     
    392406                                        if(!strncmp(info, "TOPIC ", 6))
    393407                                                sd->topic = 1;
     408                                        else if(!strcmp(info, "STATUS MULTI_SUBSCRIBED"))
     409                                        {
     410                                                struct groupchat *gc;
     411                                                gc = imcb_chat_new( ic, id );
     412                                        }
     413                                        else if(!strncmp(info, "ACTIVEMEMBERS ", 14))
     414                                        {
     415                                                info += 14;
     416                                                struct groupchat *gc = skype_chat_by_name(ic, id);
     417                                                if(!gc)
     418                                                        gc = imcb_chat_new( ic, id );
     419                                                char **members = g_strsplit(info, " ", 0);
     420                                                int i;
     421                                                for(i=0;members[i];i++)
     422                                                {
     423                                                        if(!strcmp(members[i], sd->username))
     424                                                                continue;
     425                                                        g_snprintf(buf, 1024, "%s@skype.com", members[i]);
     426                                                        imcb_chat_add_buddy(gc, buf);
     427                                                }
     428                                                imcb_chat_add_buddy(gc, sd->username);
     429                                                g_strfreev(members);
     430                                        }
    394431                                }
    395432                        }
Note: See TracChangeset for help on using the changeset viewer.