Changeset 17357


Ignore:
Timestamp:
Jul 27, 2012, 10:24:10 AM (8 years ago)
Author:
nit
Message:

[titan] update facebook

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/plugins/facebook/facebook.h

    r17356 r17357  
    105105                {
    106106                        addconfig("facebooktoken", access_token);
     107printf("%s\n", access_token);
    107108                        changetext(key, "Register to facebook successful");
    108109                        break;
     
    120121}
    121122
    122 int getfacefriens(struct skin* listbox)
     123int getfacefriens(struct skin* facefriends, struct skin* listbox, char* id)
    123124{
    124125        int ret = -1, i = 0, len = 0, treffer = 0;
     
    126127        jsmntok_t tokens[100]; //TODO
    127128        char* buf = NULL, *tmpstr = NULL;
     129        struct skin* tmp = NULL;
     130
     131        tmp = addlistbox(facefriends, listbox, tmp, 1);
     132        if(tmp != NULL)
     133        {
     134                changetext(tmp, "Home");
     135                changeret(tmp, "me");
     136        }
    128137
    129138        tmpstr = ostrcat(FACEBOOKURL, "/", 0, 0);
    130139        tmpstr = ostrcat(tmpstr, id, 1, 0);
    131         tmpstr = ostrcat(tmpstr, "?access_token=", 1, 0);
     140        tmpstr = ostrcat(tmpstr, "/friends?access_token=", 1, 0);
    132141        tmpstr = ostrcat(tmpstr, getconfig("facebooktoken", NULL), 1, 0);
    133142        curlretbuf = gethttps(tmpstr);
    134143        free(tmpstr); tmpstr = NULL;
    135         if(curlretbuf == NULL || ostrstr(curlretbuf, "\"error\":") == 0)
     144        if(curlretbuf == NULL || strstr(curlretbuf, "\"error\":") != NULL)
    136145        {
    137146                textbox(_("Message"), _("Connect to facebook failed"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
     
    150159        jsmn_init(&parser);
    151160
    152         ret = jsmn_parse(&parser, js, tokens, 100);
     161        ret = jsmn_parse(&parser, curlretbuf, tokens, 100);
    153162        if(ret == JSMN_SUCCESS)
    154163        {
     
    158167
    159168                        len = tokens[i].end - tokens[i].start;
    160                         char* ptr = js + tokens[i].start;
     169                        if(len > MINMALLOC) len = MINMALLOC;
     170                        char* ptr = curlretbuf + tokens[i].start;
    161171
    162172                        if(treffer == 1)
    163173                        {
    164                                 //TODO
    165                                 printf("%d %d %d %d\n", tokens[i].type, tokens[i].start, tokens[i].end, tokens[i].size);
    166                                 strncpy(buf, ptr, len);
    167                                 buf[len] = NULL;
    168                                 printf("%s\n", buf);
     174                                tmp = addlistbox(facefriends, listbox, tmp, 1);
     175                                if(tmp != NULL)
     176                                {
     177                                        strncpy(buf, ptr, len);
     178                                        buf[len] = '\0';
     179                                        changetext(tmp, buf);
     180                                }
    169181                        }
    170182
    171183                        if(treffer == 2)
    172184                        {
    173                                 //TODO
    174                                 printf("%d %d %d %d\n", tokens[i].type, tokens[i].start, tokens[i].end, tokens[i].size);
    175                                 strncpy(buf, ptr, len);
    176                                 buf[len] = NULL;
    177                                 printf("%s\n", buf);
     185                                if(tmp != NULL)
     186                                {
     187                                        strncpy(buf, ptr, len);
     188                                        buf[len] = '\0';
     189                                        changeret(tmp, buf);
     190                                }
    178191                        }
    179192
     
    194207}
    195208
     209int getfaceuser(struct skin* name, struct skin* username, struct skin* gender, char* id)
     210{
     211        char* tmpstr = NULL;
     212
     213        changetext(name, NULL);
     214        changetext(username, NULL);
     215        changetext(gender, NULL);
     216
     217        tmpstr = ostrcat(FACEBOOKURL, "/", 0, 0);
     218        tmpstr = ostrcat(tmpstr, id, 1, 0);
     219        tmpstr = ostrcat(tmpstr, "?access_token=", 1, 0);
     220        tmpstr = ostrcat(tmpstr, getconfig("facebooktoken", NULL), 1, 0);
     221        curlretbuf = gethttps(tmpstr);
     222        free(tmpstr); tmpstr = NULL;
     223        if(curlretbuf == NULL || strstr(curlretbuf, "\"error\":") != NULL)
     224        {
     225                textbox(_("Message"), _("Connect to facebook failed"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
     226                free(curlretbuf); curlretbuf = NULL;
     227                return 1;
     228        }
     229
     230        tmpstr = getxmlentry(curlretbuf, "\"name\":");
     231        changetext(name, tmpstr);
     232        free(tmpstr); tmpstr = NULL;
     233
     234        tmpstr = getxmlentry(curlretbuf, "\"username\":");
     235        changetext(username, tmpstr);
     236        free(tmpstr); tmpstr = NULL;
     237
     238        tmpstr = getxmlentry(curlretbuf, "\"gender\":");
     239        changetext(gender, tmpstr);
     240        free(tmpstr); tmpstr = NULL;
     241
     242        free(curlretbuf); curlretbuf = NULL;
     243        return 0;
     244}
     245
    196246void screenface()
    197247{
     
    201251        int rcret = -1;
    202252
     253        struct skin* facetitle = getscreen("facetitle");
     254        struct skin* facefriends = getscreen("facefriends");
     255        struct skin* facefriendslist = getscreennode(facefriends, "listbox");
     256        struct skin* facefoto = getscreen("facefoto");
    203257        struct skin* facebook = getscreen("facebook");
    204         struct skin* listbox = getscreennode(facebook, "listbox");
    205         struct skin* info = getscreennode(facebook, "info");
    206         struct skin* text = getscreennode(facebook, "text");
    207 
     258        struct skin* facebooklist = getscreennode(facebook, "facebooklist");
     259        struct skin* facebutton = getscreen("facebutton");
     260        struct skin* faceuser = getscreen("faceuser");
     261        struct skin* facename = getscreennode(faceuser, "facename");
     262        struct skin* faceusername = getscreennode(faceuser, "faceusername");
     263        struct skin* facegender = getscreennode(faceuser, "facegender");
     264
     265        getfacefriens(facefriends, facefriendslist, "me");
     266        getfaceuser(facename, faceusername, facegender, "me");
     267
     268        drawscreen(facetitle, 0, 1);
     269        drawscreen(facefriends, 0, 1);
     270        drawscreen(facefoto, 0, 1);
     271        drawscreen(facebutton, 0, 1);
     272        drawscreen(faceuser, 0, 1);
    208273        drawscreen(facebook, 0, 0);
    209         addscreenrc(facebook, listbox);
     274
     275        addscreenrc(facefriends, facefriendslist);
    210276
    211277        while(1)
    212278        {
     279                rcret = waitrc(facefriends, 0, 0);
     280
    213281                if(rcret == getrcconfigint("rcexit", NULL)) break;
    214282        }
    215283
     284        delownerrc(facefriends);
     285        delmarkedscreennodes(facefriends, 1);
    216286        delownerrc(facebook);
     287        delmarkedscreennodes(facebook, 1);
     288        clearscreen(facetitle);
     289        clearscreen(facefriends);
     290        clearscreen(facefoto);
     291        clearscreen(facebutton);
     292        clearscreen(faceuser);
    217293        clearscreen(facebook);
    218294}
Note: See TracChangeset for help on using the changeset viewer.