/soc/2015/jgeboski/facebook: 3953bf31338c: facebook: only attemp...

James Geboski <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 3953bf31338cc2589dfff65043b7eeedb0cabca5
Author:	 James Geboski <[email protected]>
Date:	 2015-08-08 23:06 -0400
Branch:	 facebook
URL: https://hg.pidgin.im/soc/2015/jgeboski/facebook/rev/3953bf31338c

Description:

facebook: only attempt to fetch more contacts if needed

diffstat:

 libpurple/protocols/facebook/api.c |  15 ++++++++++-----
 libpurple/protocols/facebook/api.h |   2 +-
 2 files changed, 11 insertions(+), 6 deletions(-)

diffs (70 lines):

diff --git a/libpurple/protocols/facebook/api.c b/libpurple/protocols/facebook/api.c
--- a/libpurple/protocols/facebook/api.c
+++ b/libpurple/protocols/facebook/api.c
@@ -1447,10 +1447,12 @@ fb_api_cb_contacts(PurpleHttpConnection 
 	FbApiUser user;
 	FbHttpParams *params;
 	FbJsonValues *values;
+	gboolean complete;
 	gchar *writeid = NULL;
 	GError *err = NULL;
 	gpointer mptr;
 	GSList *users = NULL;
+	guint count = 0;
 	JsonNode *root;
 
 	if (!fb_api_http_chk(api, con, res, &root)) {
@@ -1473,6 +1475,7 @@ fb_api_cb_contacts(PurpleHttpConnection 
 		fb_api_user_reset(&user, FALSE);
 		str = fb_json_values_next_str(values, NULL);
 		user.uid = FB_ID_FROM_STR(str);
+		count++;
 
 		g_free(writeid);
 		writeid = fb_json_values_next_str_dup(values, NULL);
@@ -1496,10 +1499,12 @@ fb_api_cb_contacts(PurpleHttpConnection 
 		users = g_slist_prepend(users, mptr);
 	}
 
+	complete = (writeid == NULL) || (count < FB_API_CONTACTS_COUNT);
+
 	if (G_UNLIKELY(err == NULL)) {
-		g_signal_emit_by_name(api, "contacts", users, writeid == NULL);
-
-		if (writeid != NULL) {
+		g_signal_emit_by_name(api, "contacts", users, complete);
+
+		if (!complete) {
 			fb_api_contacts_after(api, writeid);
 		}
 	} else {
@@ -1539,7 +1544,7 @@ fb_api_contacts(FbApi *api)
 	fb_json_bldr_add_str(bldr, NULL, "user");
 	fb_json_bldr_arr_end(bldr);
 
-	fb_json_bldr_add_str(bldr, "1", FB_API_CONTACTS_COUNT);
+	fb_json_bldr_add_str(bldr, "1", G_STRINGIFY(FB_API_CONTACTS_COUNT));
 	fb_api_http_graph(api, &info, bldr, FB_API_QRYID_CONTACTS);
 }
 
@@ -1576,7 +1581,7 @@ fb_api_contacts_after(FbApi *api, const 
 	fb_json_bldr_arr_end(bldr);
 
 	fb_json_bldr_add_str(bldr, "1", writeid);
-	fb_json_bldr_add_str(bldr, "2", FB_API_CONTACTS_COUNT);
+	fb_json_bldr_add_str(bldr, "2", G_STRINGIFY(FB_API_CONTACTS_COUNT));
 	fb_api_http_graph(api, &info, bldr, FB_API_QRYID_CONTACTS_AFTER);
 }
 
diff --git a/libpurple/protocols/facebook/api.h b/libpurple/protocols/facebook/api.h
--- a/libpurple/protocols/facebook/api.h
+++ b/libpurple/protocols/facebook/api.h
@@ -40,7 +40,7 @@
 #define FB_API_KEY     "256002347743983"
 #define FB_API_SECRET  "374e60f8b9bb6b8cbb30f78030438895"
 
-#define FB_API_CONTACTS_COUNT  "200"
+#define FB_API_CONTACTS_COUNT  200
 
 #define FB_API_URL_AUTH     FB_API_BHOST "/method/auth.login"
 #define FB_API_URL_GQL      FB_API_GHOST "/graphql"

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.