diff options
Diffstat (limited to 'facebook/facebook-api.c')
-rw-r--r-- | facebook/facebook-api.c | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c index 184cb89..c0dde22 100644 --- a/facebook/facebook-api.c +++ b/facebook/facebook-api.c @@ -2001,24 +2001,15 @@ fb_api_contact(FbApi *api, FbId uid) fb_api_http_query(api, FB_API_QUERY_CONTACT, bldr, fb_api_cb_contact); } -static void -fb_api_cb_contacts(FbHttpRequest *req, gpointer data) +static GSList * +fb_api_cb_contacts_nodes(FbApi *api, JsonNode *root, GSList *users) { - const gchar *cursor; const gchar *str; - FbApi *api = data; FbApiPrivate *priv = api->priv; FbApiUser *user; FbId uid; FbJsonValues *values; - gboolean complete; GError *err = NULL; - GSList *users = NULL; - JsonNode *root; - - if (!fb_api_http_chk(api, req, &root)) { - return; - } values = fb_json_values_new(root); fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE, @@ -2055,6 +2046,30 @@ fb_api_cb_contacts(FbHttpRequest *req, gpointer data) g_object_unref(values); + return users; +} + +static void +fb_api_cb_contacts(FbHttpRequest *req, gpointer data) +{ + const gchar *cursor; + const gchar *str; + FbApi *api = data; + FbApiPrivate *priv = api->priv; + FbApiUser *user; + FbId uid; + FbJsonValues *values; + gboolean complete; + GError *err = NULL; + GSList *users = NULL; + JsonNode *root; + + if (!fb_api_http_chk(api, req, &root)) { + return; + } + + users = fb_api_cb_contacts_nodes(api, root, users); + values = fb_json_values_new(root); fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE, "$.viewer.messenger_contacts.page_info.end_cursor"); |