Changeset adce2de


Ignore:
Timestamp:
2007-08-19T17:35:34Z (14 years ago)
Author:
VMiklos <vmiklos@…>
Branches:
master
Children:
592f824
Parents:
ddd3502
Message:

download away statuses

Location:
skype
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • skype/README

    rddd3502 radce2de  
    11What works:
    22
    3 - Download buddies from Skype
     3- Download nicks and away statuses from Skype
    44
    55What needs to be done:
    66
    7 - Away statuses (now OFFLINE = Offline, anything else is Online)
     7- Away status changes
    88
    99- join / parts
  • skype/skype.c

    rddd3502 radce2de  
    1818        int tx_len;
    1919        int r_inpa, w_inpa;
     20};
     21
     22struct skype_away_state
     23{
     24        char *code;
     25        char *full_name;
     26};
     27
     28const struct skype_away_state skype_away_state_list[] =
     29{
     30        { "ONLINE",  "Online" },
     31        { "SKYPEME",  "Skype Me" },
     32        { "AWAY",   "Away" },
     33        { "NA",    "Not available" },
     34        { "DND",      "Do Not Disturb" },
     35        { "INVISIBLE",      "Invisible" },
     36        { "OFFLINE",      "Offline" }
    2037};
    2138
     
    8299                        else if(!strncmp(line, "USER ", 5))
    83100                        {
     101                                int flags = 0;
    84102                                char *status = strrchr(line, ' ');
    85103                                char *user = strchr(line, ' ');
     104                                status++;
    86105                                ptr = strchr(++user, ' ');
    87106                                *ptr = '\0';
     
    89108                                imcb_add_buddy(ic, ptr, NULL);
    90109                                // TODO online can be away
    91                                 if(strcmp(++status, "OFFLINE") != 0)
    92                                         imcb_buddy_status(ic, ptr, OPT_LOGGED_IN, NULL, NULL);
     110                                if(strcmp(status, "OFFLINE") != 0)
     111                                        flags |= OPT_LOGGED_IN;
     112                                if(strcmp(status, "ONLINE") != 0 && strcmp(status, "SKYPEME") != 0)
     113                                        flags |= OPT_AWAY;
     114                                imcb_buddy_status(ic, ptr, flags, NULL, NULL);
    93115                                g_free(ptr);
    94116                        }
     
    170192{
    171193        static GList *l = NULL;
    172 
    173         l = g_list_append( l, (void*)"Online" );
     194        int i;
     195       
     196        if( l == NULL )
     197                for( i = 0; skype_away_state_list[i].full_name; i ++ )
     198                        l = g_list_append( l, (void*) skype_away_state_list[i].full_name );
     199       
    174200        return l;
    175201}
Note: See TracChangeset for help on using the changeset viewer.