libpurple/protocols/gg/pubdir-prpl.c

changeset 42128
118067ca0367
parent 42127
18acb99a0fa6
child 42139
c053558f1236
equal deleted inserted replaced
42127:18acb99a0fa6 42128:118067ca0367
725 form->display_handle); 725 form->display_handle);
726 g_assert(form->display_handle); 726 g_assert(form->display_handle);
727 } 727 }
728 728
729 static void 729 static void
730 ggp_pubdir_search_request(PurpleConnection *gc, PurpleRequestFields *fields) 730 ggp_pubdir_search_request(PurpleConnection *gc, PurpleRequestPage *page) {
731 {
732 ggp_pubdir_search_form *form = g_new0(ggp_pubdir_search_form, 1); 731 ggp_pubdir_search_form *form = g_new0(ggp_pubdir_search_form, 1);
733 732
734 purple_debug_info("gg", "ggp_pubdir_search_request"); 733 purple_debug_info("gg", "ggp_pubdir_search_request");
735 734
736 form->nick = g_strdup(purple_request_fields_get_string(fields, "name")); 735 form->nick = g_strdup(purple_request_page_get_string(page, "name"));
737 form->city = g_strdup(purple_request_fields_get_string(fields, "city")); 736 form->city = g_strdup(purple_request_page_get_string(page, "city"));
738 form->gender = 737 form->gender =
739 GPOINTER_TO_INT(purple_request_fields_get_choice(fields, "gender")); 738 GPOINTER_TO_INT(purple_request_page_get_choice(page, "gender"));
740 form->offset = 0; 739 form->offset = 0;
741 form->limit = GGP_PUBDIR_SEARCH_PER_PAGE; 740 form->limit = GGP_PUBDIR_SEARCH_PER_PAGE;
742 741
743 ggp_pubdir_search_execute(gc, form, ggp_pubdir_search_results_display, 742 ggp_pubdir_search_execute(gc, form, ggp_pubdir_search_results_display,
744 form); 743 form);
745 } 744 }
746 745
747 void 746 void
748 ggp_pubdir_search(PurpleConnection *gc, const ggp_pubdir_search_form *form) 747 ggp_pubdir_search(PurpleConnection *gc, const ggp_pubdir_search_form *form)
749 { 748 {
750 PurpleRequestFields *fields; 749 PurpleRequestPage *page;
751 PurpleRequestGroup *group; 750 PurpleRequestGroup *group;
752 PurpleRequestField *field; 751 PurpleRequestField *field;
753 752
754 purple_debug_info("gg", "ggp_pubdir_search"); 753 purple_debug_info("gg", "ggp_pubdir_search");
755 754
756 fields = purple_request_fields_new(); 755 page = purple_request_page_new();
757 group = purple_request_group_new(NULL); 756 group = purple_request_group_new(NULL);
758 purple_request_fields_add_group(fields, group); 757 purple_request_page_add_group(page, group);
759 758
760 field = purple_request_field_string_new("name", _("Name"), 759 field = purple_request_field_string_new("name", _("Name"),
761 form ? form->nick : NULL, FALSE); 760 form ? form->nick : NULL, FALSE);
762 purple_request_group_add_field(group, field); 761 purple_request_group_add_field(group, field);
763 762
773 purple_request_field_choice_add(field, _("Female"), 772 purple_request_field_choice_add(field, _("Female"),
774 GINT_TO_POINTER(GGP_PUBDIR_GENDER_FEMALE)); 773 GINT_TO_POINTER(GGP_PUBDIR_GENDER_FEMALE));
775 purple_request_group_add_field(group, field); 774 purple_request_group_add_field(group, field);
776 775
777 purple_request_fields(gc, _("Find buddies"), _("Find buddies"), 776 purple_request_fields(gc, _("Find buddies"), _("Find buddies"),
778 _("Please, enter your search criteria below"), fields, 777 _("Please, enter your search criteria below"), page,
779 _("OK"), G_CALLBACK(ggp_pubdir_search_request), 778 _("OK"), G_CALLBACK(ggp_pubdir_search_request),
780 _("Cancel"), NULL, 779 _("Cancel"), NULL,
781 purple_request_cpar_from_connection(gc), gc); 780 purple_request_cpar_from_connection(gc), gc);
782 } 781 }
783 782
890 g_free(url); 889 g_free(url);
891 ggp_pubdir_record_free(record, 1); 890 ggp_pubdir_record_free(record, 1);
892 } 891 }
893 892
894 static void 893 static void
895 ggp_pubdir_set_info_request(PurpleConnection *gc, PurpleRequestFields *fields) 894 ggp_pubdir_set_info_request(PurpleConnection *gc, PurpleRequestPage *page)
896 { 895 {
897 PurpleAccount *account = purple_connection_get_account(gc); 896 PurpleAccount *account = purple_connection_get_account(gc);
898 PurpleContactInfo *info = PURPLE_CONTACT_INFO(account); 897 PurpleContactInfo *info = PURPLE_CONTACT_INFO(account);
899 gchar *url; 898 gchar *url;
900 uin_t uin = ggp_str_to_uin(purple_contact_info_get_username(info)); 899 uin_t uin = ggp_str_to_uin(purple_contact_info_get_username(info));
902 gchar *birth_s; 901 gchar *birth_s;
903 902
904 purple_debug_info("gg", "ggp_pubdir_set_info_request"); 903 purple_debug_info("gg", "ggp_pubdir_set_info_request");
905 904
906 record->uin = uin; 905 record->uin = uin;
907 record->first_name = 906 record->first_name = g_strdup(purple_request_page_get_string(page,
908 g_strdup(purple_request_fields_get_string(fields, "first_name")); 907 "first_name"));
909 record->last_name = 908 record->last_name = g_strdup(purple_request_page_get_string(page,
910 g_strdup(purple_request_fields_get_string(fields, "last_name")); 909 "last_name"));
911 record->gender = 910 record->gender = GPOINTER_TO_INT(purple_request_page_get_choice(page,
912 GPOINTER_TO_INT(purple_request_fields_get_choice(fields, "gender")); 911 "gender"));
913 record->city = g_strdup(purple_request_fields_get_string(fields, "city")); 912 record->city = g_strdup(purple_request_page_get_string(page, "city"));
914 record->province = GPOINTER_TO_INT( 913 record->province = GPOINTER_TO_INT(purple_request_page_get_choice(page,
915 purple_request_fields_get_choice(fields, "province")); 914 "province"));
916 915
917 birth_s = g_strdup_printf( 916 birth_s = g_strdup_printf("%sT10:00:00+00:00",
918 "%sT10:00:00+00:00", 917 purple_request_page_get_string(page, "birth_date"));
919 purple_request_fields_get_string(fields, "birth_date"));
920 record->birth = g_date_time_new_from_iso8601(birth_s, NULL); 918 record->birth = g_date_time_new_from_iso8601(birth_s, NULL);
921 g_free(birth_s); 919 g_free(birth_s);
922 purple_debug_info("gg", "ggp_pubdir_set_info_request: birth [%lu][%s]", 920 purple_debug_info("gg", "ggp_pubdir_set_info_request: birth [%lu][%s]",
923 g_date_time_to_unix(record->birth), 921 g_date_time_to_unix(record->birth),
924 purple_request_fields_get_string(fields, "birth_date")); 922 purple_request_page_get_string(page, "birth_date"));
925 923
926 url = g_strdup_printf("http://api.gadu-gadu.pl/users/%u.xml", uin); 924 url = g_strdup_printf("http://api.gadu-gadu.pl/users/%u.xml", uin);
927 ggp_oauth_request(gc, ggp_pubdir_set_info_got_token, record, "PUT", url); 925 ggp_oauth_request(gc, ggp_pubdir_set_info_got_token, record, "PUT", url);
928 g_free(url); 926 g_free(url);
929 } 927 }
932 ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count, 930 ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count,
933 const ggp_pubdir_record *records, 931 const ggp_pubdir_record *records,
934 G_GNUC_UNUSED int next_offset, 932 G_GNUC_UNUSED int next_offset,
935 G_GNUC_UNUSED gpointer data) 933 G_GNUC_UNUSED gpointer data)
936 { 934 {
937 PurpleRequestFields *fields; 935 PurpleRequestPage *page;
938 PurpleRequestGroup *group; 936 PurpleRequestGroup *group;
939 PurpleRequestField *field; 937 PurpleRequestField *field;
940 gchar *bday = NULL; 938 gchar *bday = NULL;
941 gsize i; 939 gsize i;
942 const ggp_pubdir_record *record; 940 const ggp_pubdir_record *record;
944 purple_debug_info("gg", "ggp_pubdir_set_info_dialog (record: %d)", 942 purple_debug_info("gg", "ggp_pubdir_set_info_dialog (record: %d)",
945 records_count); 943 records_count);
946 944
947 record = (records_count == 1 ? &records[0] : NULL); 945 record = (records_count == 1 ? &records[0] : NULL);
948 946
949 fields = purple_request_fields_new(); 947 page = purple_request_page_new();
950 group = purple_request_group_new(NULL); 948 group = purple_request_group_new(NULL);
951 purple_request_fields_add_group(fields, group); 949 purple_request_page_add_group(page, group);
952 950
953 field = purple_request_field_string_new("first_name", _("First name"), 951 field = purple_request_field_string_new("first_name", _("First name"),
954 record ? record->first_name : NULL, 952 record ? record->first_name : NULL,
955 FALSE); 953 FALSE);
956 purple_request_group_add_field(group, field); 954 purple_request_group_add_field(group, field);
1003 GINT_TO_POINTER(i)); 1001 GINT_TO_POINTER(i));
1004 } 1002 }
1005 } 1003 }
1006 1004
1007 purple_request_fields(gc, _("Set User Info"), _("Set User Info"), NULL, 1005 purple_request_fields(gc, _("Set User Info"), _("Set User Info"), NULL,
1008 fields, _("OK"), 1006 page, _("OK"),
1009 G_CALLBACK(ggp_pubdir_set_info_request), _("Cancel"), 1007 G_CALLBACK(ggp_pubdir_set_info_request), _("Cancel"),
1010 NULL, purple_request_cpar_from_connection(gc), gc); 1008 NULL, purple_request_cpar_from_connection(gc), gc);
1011 } 1009 }
1012 1010
1013 void 1011 void

mercurial