Ticket #1176: firstMessagePOC.diff

File firstMessagePOC.diff, 1.2 KB (added by fozzy@…, at 2014-08-15T11:30:22Z)

Proof of concept

  • protocols/skype/skype.c

    diff --git a/protocols/skype/skype.c b/protocols/skype/skype.c
    index 26ff856..2f29431 100644
    a b static void skype_parse_chat(struct im_connection *ic, char *line) 
    10271027                sd->groupchat_with = NULL;
    10281028                skype_printf(ic, "GET CHAT %s ADDER\n", id);
    10291029                skype_printf(ic, "GET CHAT %s TOPIC\n", id);
     1030        } else if ((!strcmp(info, "STATUS DIALOG") && !sd->groupchat_with) || (!strcmp(info, "ACTIVITY_TIMESTAMP"))) {
     1031                skype_printf(ic, "GET CHAT %s RECENTCHATMESSAGES\n", id);
     1032                skype_printf(ic, "ALTER CHAT %s CLEARRECENTMESSAGES\n", id);
     1033        } else if (!strncmp(info, "RECENTCHATMESSAGES ", 19)) {
     1034                info += 19;
     1035                char **messages = g_strsplit(info, ", ", 0);
     1036                int i;
     1037                for (i = 0; messages[i]; i++) {
     1038                        skype_printf(ic, "GET CHATMESSAGE %s FROM_HANDLE\n", messages[i]);
     1039                        skype_printf(ic, "GET CHATMESSAGE %s BODY\n", messages[i]);
     1040                        skype_printf(ic, "GET CHATMESSAGE %s TYPE\n", messages[i]);
     1041                        skype_printf(ic, "GET CHATMESSAGE %s CHATNAME\n", messages[i]);
     1042                        skype_printf(ic, "SET CHATMESSAGE %s SEEN\n", messages[i]);
     1043                }
     1044                g_strfreev(messages);
    10301045        } else if (!strcmp(info, "STATUS UNSUBSCRIBED")) {
    10311046                gc = bee_chat_by_title(ic->bee, ic, id);
    10321047                if (gc)