| 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 |