Changeset 17401 for titan/plugins/facebook
- Timestamp:
- 07/30/12 23:02:07 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/plugins/facebook/facebook.h
r17377 r17401 6 6 #define FACEBOOKURL "https://graph.facebook.com" 7 7 #define FACEBOOKAPPID "150792241632891" 8 #define FACEBOOKPIC "/tmp/facebookpic.jpg" 8 #define FACEBOOKPIC "/tmp/facebook/facebookpic.jpg" 9 #define FACEBOOKPATH "/tmp/facebook" 9 10 #define FACEMAXTOKEN 1000 10 11 #define FACEMAXENTRY "50" … … 14 15 char* curlretbuf = NULL; 15 16 16 int getfacefoto(char* url )17 int getfacefoto(char* url, char* name) 17 18 { 18 19 char* ip = NULL, *pos = NULL, *path = NULL; 19 20 20 unlink( FACEBOOKPIC);21 unlink(name); 21 22 22 23 if(url == NULL) return 1; … … 32 33 } 33 34 34 gethttp(ip, path, 80, FACEBOOKPIC, NULL, NULL, 0);35 gethttp(ip, path, 80, name, NULL, NULL, 0); 35 36 36 37 return 0; … … 283 284 tmpstr = getxmlentry(curlretbuf, "\"pic\":"); 284 285 tmpstr = string_replace_all("\\", "", tmpstr, 1); 285 getfacefoto(tmpstr );286 getfacefoto(tmpstr, FACEBOOKPIC); 286 287 changepic(foto, FACEBOOKPIC); 287 288 free(tmpstr); tmpstr = NULL; … … 602 603 } 603 604 605 int getfacepicture(struct skin* facebook, struct skin* listbox, struct skin* facefriendslist, char* id) 606 { 607 int ret = -1, i = 0, len = 0, treffer = 0; 608 struct tm *loctime = NULL; 609 jsmn_parser parser; 610 jsmntok_t tokens[FACEMAXTOKEN]; //TODO 611 char* buf = NULL, *buf1 = NULL, *tmpstr = NULL; 612 struct skin* tmp = NULL, *node = NULL; 613 614 delmarkedscreennodes(facebook, 1); 615 if(id == NULL) return 1; 616 617 tmpstr = ostrcat(FACEBOOKURL, "/fql?q=SELECT+created,caption,owner,object_id,src+FROM+photo+WHERE+aid=", 0, 0); 618 tmpstr = ostrcat(tmpstr, id, 1, 0); 619 tmpstr = ostrcat(tmpstr, "+LIMIT+0,", 1, 0); 620 tmpstr = ostrcat(tmpstr, FACEMAXENTRY, 1, 0); 621 tmpstr = ostrcat(tmpstr, "&access_token=", 1, 0); 622 tmpstr = ostrcat(tmpstr, getconfig("facebooktoken", NULL), 1, 0); 623 curlretbuf = gethttps(tmpstr); 624 printf("%s\n", tmpstr); 625 printf("%s\n", curlretbuf); 626 free(tmpstr); tmpstr = NULL; 627 if(curlretbuf == NULL || strstr(curlretbuf, "\"error\":") != NULL) 628 { 629 textbox(_("Message"), _("Can't get data from facebook"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0); 630 free(curlretbuf); curlretbuf = NULL; 631 curlretbufsize = 0; 632 return 1; 633 } 634 635 buf = malloc(MINMALLOC); 636 if(buf == NULL) 637 { 638 err("no mem"); 639 free(curlretbuf); curlretbuf = NULL; 640 curlretbufsize = 0; 641 return 1; 642 } 643 644 buf1 = malloc(17); 645 if(buf1 == NULL) 646 { 647 err("no mem"); 648 free(curlretbuf); curlretbuf = NULL; 649 curlretbufsize = 0; 650 free(buf); buf = NULL; 651 return 1; 652 } 653 654 jsmn_init(&parser); 655 656 ret = jsmn_parse(&parser, curlretbuf, tokens, FACEMAXTOKEN); 657 if(ret == JSMN_SUCCESS) 658 { 659 for(i = 0; i < FACEMAXTOKEN; i++) 660 { 661 if(tokens[i].start == -1) break; 662 663 len = tokens[i].end - tokens[i].start; 664 if(len > MINMALLOC) len = MINMALLOC; 665 char* ptr = curlretbuf + tokens[i].start; 666 667 if(treffer == 1) 668 { 669 tmp = addlistbox(facebook, listbox, tmp, 1); 670 if(tmp != NULL) 671 { 672 time_t t = 0; 673 674 tmp->type = TEXTBOX; 675 tmp->wrap = YES; 676 tmp->height = 100; 677 678 strncpy(buf, ptr, len); 679 buf[len] = '\0'; 680 if(buf != NULL) 681 t = strtoul(buf, NULL, 10); 682 loctime = olocaltime(&t); 683 if(loctime != NULL) 684 strftime(buf1, 17, "%d-%m-%Y %H:%M", loctime); 685 free(loctime); loctime = NULL; 686 687 changetext(tmp, buf1); 688 } 689 } 690 691 if(treffer == 2) 692 { 693 if(tmp != NULL) 694 { 695 strncpy(buf, ptr, len); 696 buf[len] = '\0'; 697 changetext2(tmp, buf); 698 } 699 } 700 701 if(treffer == 3) 702 { 703 if(tmp != NULL) 704 { 705 strncpy(buf, ptr, len); 706 buf[len] = '\0'; 707 changetext(tmp, buf); 708 709 node = facefriendslist; 710 while(node != NULL) 711 { 712 if(ostrcmp(node->ret, buf) == 0) 713 { 714 tmp->text = ostrcat(tmp->text, " - ", 1, 0); 715 tmp->text = ostrcat(tmp->text, node->text, 1, 0); 716 } 717 node = node->next; 718 } 719 } 720 } 721 722 if(treffer == 4) 723 { 724 if(tmp != NULL) 725 { 726 strncpy(buf, ptr, len); 727 buf[len] = '\0'; 728 changeret(tmp, buf); 729 } 730 } 731 732 if(treffer == 5) 733 { 734 if(tmp != NULL) 735 { 736 char* tmppic = NULL; 737 738 strncpy(buf, ptr, len); 739 buf[len] = '\0'; 740 741 tmppic = ostrcat(FACEBOOKPATH, "/", 0, 0); 742 tmppic = ostrcat(tmppic, tmp->ret, 1, 0); 743 tmppic = ostrcat(tmppic, ".jpg", 1, 0); 744 getfacefoto(buf, tmppic); 745 changepic(tmp, tmppic); 746 free(tmppic); tmppic = NULL; 747 } 748 } 749 750 treffer = 0; 751 if(tokens[i].type == 3) 752 { 753 if(len > 0 && ostrncmp(ptr, "created", len) == 0) 754 treffer = 1; 755 if(len > 0 && ostrncmp(ptr, "caption", len) == 0) 756 treffer = 2; 757 else if(len > 0 && ostrncmp(ptr, "owner", len) == 0) 758 treffer = 3; 759 else if(len > 0 && ostrncmp(ptr, "object_id", len) == 0) 760 treffer = 4; 761 else if(len > 0 && ostrncmp(ptr, "src", len) == 0) 762 treffer = 5; 763 } 764 } 765 } 766 767 free(curlretbuf); curlretbuf = NULL; 768 curlretbufsize = 0; 769 free(buf); buf = NULL; 770 return 0; 771 } 772 604 773 int getfacealbum(struct skin* facebook, struct skin* listbox, struct skin* facefriendslist, char* id) 605 774 { … … 613 782 if(id == NULL) return 1; 614 783 784 //tmpstr = ostrcat(FACEBOOKURL, "/fql?q=SELECT+src_small,caption,object_id+FROM+photo+WHERE+aid=", 0, 0); 615 785 tmpstr = ostrcat(FACEBOOKURL, "/fql?q=SELECT+name,owner,aid+FROM+album+WHERE+owner=", 0, 0); 616 786 tmpstr = ostrcat(tmpstr, id, 1, 0); … … 1070 1240 screenfaceregister(); 1071 1241 1072 int rcret = -1, aktview = 0, aktlist = 0 ;1242 int rcret = -1, aktview = 0, aktlist = 0, aktuser = 1; 1073 1243 1074 1244 struct skin* facetitle = getscreen("facetitle"); … … 1086 1256 1087 1257 drawscreen(load, 0, 0); 1258 mkdir(FACEBOOKPATH, 0777); 1259 1088 1260 getfacefriens(facefriends, facefriendslist, "me()"); 1089 1261 getfaceuser(facename, facestatus, facegender, facefoto, "me()"); … … 1116 1288 aktlist = 0; 1117 1289 1290 if(aktuser != facefriendslist->aktline) 1291 { 1292 drawscreen(load, 0, 0); 1293 facebooklist->aktline = 1; 1294 facebooklist->aktpage = -1; 1295 getfaceuser(facename, facestatus, facegender, facefoto, facefriendslist->select->ret); 1296 if(aktview == 0) 1297 getfacestream(facebook, facebooklist, facefriendslist->select->ret); 1298 else if(aktview == 1) 1299 getfacenote(facebook, facebooklist, facefriendslist->select->ret); 1300 else if(aktview == 2) 1301 getfacealbum(facebook, facebooklist, facefriendslist, facefriendslist->select->ret); 1302 clearscreen(load); 1303 1304 drawscreen(faceuser, 0, 1); 1305 drawscreen(facebook, 0, 1); 1306 drawscreen(facefoto, 0, 0); 1307 1308 aktuser = facefriendslist->aktline; 1309 } 1310 1118 1311 continue; 1119 1312 } … … 1125 1318 { 1126 1319 drawscreen(load, 0, 0); 1320 facebooklist->aktline = 1; 1321 facebooklist->aktpage = -1; 1127 1322 getfacestream(facebook, facebooklist, facefriendslist->select->ret); 1128 1323 clearscreen(load); … … 1136 1331 { 1137 1332 drawscreen(load, 0, 0); 1333 facebooklist->aktline = 1; 1334 facebooklist->aktpage = -1; 1138 1335 getfacenote(facebook, facebooklist, facefriendslist->select->ret); 1139 1336 clearscreen(load); … … 1147 1344 { 1148 1345 drawscreen(load, 0, 0); 1346 facebooklist->aktline = 1; 1347 facebooklist->aktpage = -1; 1149 1348 getfacealbum(facebook, facebooklist, facefriendslist, facefriendslist->select->ret); 1150 1349 clearscreen(load); … … 1156 1355 { 1157 1356 drawscreen(load, 0, 0); 1357 facebooklist->aktline = 1; 1358 facebooklist->aktpage = -1; 1158 1359 getfaceuser(facename, facestatus, facegender, facefoto, facefriendslist->select->ret); 1159 1360 if(aktview == 0) … … 1169 1370 drawscreen(facefoto, 0, 0); 1170 1371 1372 aktuser = facefriendslist->aktline; 1373 1171 1374 } 1172 1375 if(aktlist == 1 && rcret == getrcconfigint("rcok", NULL) && facebooklist->select != NULL) … … 1182 1385 } 1183 1386 1387 delallfiles(FACEBOOKPATH, ".jpg"); 1184 1388 delownerrc(facefriends); 1185 1389 delmarkedscreennodes(facefriends, 1);
Note: See TracChangeset
for help on using the changeset viewer.