diff options
author | dequis <dx@dxzone.com.ar> | 2017-01-07 15:55:10 -0300 |
---|---|---|
committer | dequis <dx@dxzone.com.ar> | 2017-01-07 23:59:46 -0300 |
commit | ac3399461cfcb82c4093edb64e0bcd92728d85cd (patch) | |
tree | 91ef134e887dc89c850c8768b0842ac7e5733a84 /facebook/facebook-api.c | |
parent | 2707fa7895f33f3886616169073fc8b5fabfdd02 (diff) | |
download | bitlbee-facebook-ac3399461cfcb82c4093edb64e0bcd92728d85cd.tar.gz bitlbee-facebook-ac3399461cfcb82c4093edb64e0bcd92728d85cd.tar.bz2 bitlbee-facebook-ac3399461cfcb82c4093edb64e0bcd92728d85cd.tar.xz |
Refactor, split off contact nodes parsing from fb_api_cb_contacts
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"); |