comparison libpurple/protocols/msn/contact.c @ 20447:18ecdee88ed0

Add Pending list to recognized lists during contact list parsing Don't try pushing Reverse or Pending lists to notification server Improvements to detecting Yahoo users so Passports with @yahoo.com addresses will work better. Fixes #1331
author Stu Tomlinson <stu@nosnilmot.com>
date Mon, 28 May 2007 16:12:25 +0000
parents a1c6206f0205
children 46437bdf316b
comparison
equal deleted inserted replaced
20446:9e585c2dbf07 20447:18ecdee88ed0
94 return MSN_LIST_AL_OP; 94 return MSN_LIST_AL_OP;
95 }else if(!strcmp(role,"Block")){ 95 }else if(!strcmp(role,"Block")){
96 return MSN_LIST_BL_OP; 96 return MSN_LIST_BL_OP;
97 }else if(!strcmp(role,"Reverse")){ 97 }else if(!strcmp(role,"Reverse")){
98 return MSN_LIST_RL_OP; 98 return MSN_LIST_RL_OP;
99 }else if(!strcmp(role,"Pending")){
100 return MSN_LIST_PL_OP;
99 } 101 }
100 return 0; 102 return 0;
101 } 103 }
102 104
103 /*get User Type*/ 105 /*get User Type*/
338 for(contactNode = xmlnode_get_child(node, "Contact"); contactNode; 340 for(contactNode = xmlnode_get_child(node, "Contact"); contactNode;
339 contactNode = xmlnode_get_next_twin(contactNode)){ 341 contactNode = xmlnode_get_next_twin(contactNode)){
340 xmlnode *contactId,*contactInfo,*contactType,*passportName,*displayName,*guid; 342 xmlnode *contactId,*contactInfo,*contactType,*passportName,*displayName,*guid;
341 xmlnode *groupIds; 343 xmlnode *groupIds;
342 MsnUser *user; 344 MsnUser *user;
345 MsnUserType usertype;
343 char *passport,*Name,*uid,*type; 346 char *passport,*Name,*uid,*type;
344 347
345 passport = NULL; 348 passport = NULL;
346 349
347 contactId= xmlnode_get_child(contactNode,"contactId"); 350 contactId= xmlnode_get_child(contactNode,"contactId");
357 friendly = xmlnode_get_data(xmlnode_get_child(contactInfo, "displayName")); 360 friendly = xmlnode_get_data(xmlnode_get_child(contactInfo, "displayName"));
358 purple_connection_set_display_name(session->account->gc, purple_url_decode(friendly)); 361 purple_connection_set_display_name(session->account->gc, purple_url_decode(friendly));
359 g_free(friendly); 362 g_free(friendly);
360 continue; /* Not adding own account as buddy to buddylist */ 363 continue; /* Not adding own account as buddy to buddylist */
361 } 364 }
362 365 usertype = msn_get_user_type(type);
363 passportName = xmlnode_get_child(contactInfo,"passportName"); 366 passportName = xmlnode_get_child(contactInfo,"passportName");
364 if(passportName == NULL){ 367 if(passportName == NULL){
365 xmlnode *emailsNode, *contactEmailNode, *emailNode; 368 xmlnode *emailsNode, *contactEmailNode, *emailNode;
366 xmlnode *messengerEnabledNode; 369 xmlnode *messengerEnabledNode;
367 char *msnEnabled; 370 char *msnEnabled;
383 if(!strcmp(msnEnabled,"true")){ 386 if(!strcmp(msnEnabled,"true")){
384 /*Messenger enabled, Get the Passport*/ 387 /*Messenger enabled, Get the Passport*/
385 emailNode = xmlnode_get_child(contactEmailNode,"email"); 388 emailNode = xmlnode_get_child(contactEmailNode,"email");
386 passport = xmlnode_get_data(emailNode); 389 passport = xmlnode_get_data(emailNode);
387 purple_debug_info("MsnAB","Yahoo User %s\n",passport); 390 purple_debug_info("MsnAB","Yahoo User %s\n",passport);
391 usertype = MSN_USER_TYPE_YAHOO;
388 break; 392 break;
389 }else{ 393 }else{
390 /*TODO maybe we can just ignore it in Purple?*/ 394 /*TODO maybe we can just ignore it in Purple?*/
391 emailNode = xmlnode_get_child(contactEmailNode,"email"); 395 emailNode = xmlnode_get_child(contactEmailNode,"email");
392 passport = xmlnode_get_data(emailNode); 396 passport = xmlnode_get_data(emailNode);
412 purple_debug_misc("MsnAB","passport:{%s} uid:{%s} display:{%s}\n", 416 purple_debug_misc("MsnAB","passport:{%s} uid:{%s} display:{%s}\n",
413 passport,uid,Name); 417 passport,uid,Name);
414 418
415 user = msn_userlist_find_add_user(session->userlist, passport,Name); 419 user = msn_userlist_find_add_user(session->userlist, passport,Name);
416 msn_user_set_uid(user,uid); 420 msn_user_set_uid(user,uid);
417 msn_user_set_type(user,msn_get_user_type(type)); 421 msn_user_set_type(user, usertype);
418 g_free(Name); 422 g_free(Name);
419 g_free(passport); 423 g_free(passport);
420 g_free(uid); 424 g_free(uid);
421 g_free(type); 425 g_free(type);
422 426