/soc/2015/nakulgulati/main: 492f466b53c5: hangouts: api chat dat...

[email protected]
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 492f466b53c5588c194395c1686ebfbe86693242
Author:	 Nakul Gulati
Date:	 2015-08-09 10:55 +0800
Branch:	 hangouts
URL: https://hg.pidgin.im/soc/2015/nakulgulati/main/rev/492f466b53c5

Description:

hangouts: api chat data initialize

diffstat:

 libpurple/protocols/hangouts/api.c |  73 ++++++++++++++++++++++++++++++++++++-
 libpurple/protocols/hangouts/api.h |   5 ++
 2 files changed, 76 insertions(+), 2 deletions(-)

diffs (132 lines):

diff --git a/libpurple/protocols/hangouts/api.c b/libpurple/protocols/hangouts/api.c
--- a/libpurple/protocols/hangouts/api.c
+++ b/libpurple/protocols/hangouts/api.c
@@ -70,7 +70,7 @@ struct _HangoutsApiPrivate
   gchar *header_version;
   gchar *header_id;
   gchar *pvt_token;
-  GTimeVal *last_sync_timestamp;
+  gchar *last_sync_timestamp;
 };
 
 struct _HangoutsApiHttpInfo
@@ -448,12 +448,16 @@ hangouts_api_get_chat_init_cb (PurpleHtt
   const gchar *raw_res;
   GHashTable *chat_init_tab;
   JsonNode *root;
+  HangoutsApi *api;
 
   raw_res = purple_http_response_get_data (response, NULL);
+  api = user_data;
 
   chat_init_tab = hangouts_util_parse (raw_res);
   root = hangouts_util_construct_json_dictionary (chat_init_tab);
 
+  hangouts_api_set_chat_init_data (api, root);
+
   g_hash_table_destroy (chat_init_tab);
   json_node_free (root);
 }
@@ -482,6 +486,71 @@ hangouts_api_get_chat_init (HangoutsApi 
 
 }
 
+void
+hangouts_api_set_chat_init_data (HangoutsApi *api, JsonNode *dict)
+{
+  /*
+   * api_key -> $.ds:7[0][2]
+   * email -> $.ds:34[0][2]
+   * header_date -> $.ds:2[0][4]
+   * header_version -> $.ds:2[0][6]
+   * header_id -> $.ds:4[0][7]
+   * sync_timestamp -> $.ds:21[0][1][4]
+   */
+
+  JsonPath *path;
+  JsonArray *j_array;
+  JsonNode *node;
+  gchar *value;
+  HangoutsApiPrivate *priv;
+
+  priv = api->priv;
+  path = json_path_new ();
+
+  json_path_compile (path, "$.ds:7[0][2]", NULL);
+  node = json_path_match (path, dict);
+
+  j_array = json_node_dup_array (node);
+  value = json_array_get_string_element (j_array, 0);
+  priv->api_key = value;
+
+  json_path_compile (path, "$.ds:34[0][2]", NULL);
+  node = json_path_match (path, dict);
+
+  j_array = json_node_dup_array (node);
+  value = json_array_get_string_element (j_array, 0);
+  priv->email = value;
+
+  json_path_compile (path, "$.ds:2[0][4]", NULL);
+  node = json_path_match (path, dict);
+
+  j_array = json_node_dup_array (node);
+  value = json_array_get_string_element (j_array, 0);
+  priv->header_date = value;
+
+  json_path_compile (path, "$.ds:2[0][6]", NULL);
+  node = json_path_match (path, dict);
+
+  j_array = json_node_dup_array (node);
+  value = json_array_get_string_element (j_array, 0);
+  priv->header_version = value;
+
+  json_path_compile (path, "$.ds:4[0][7]", NULL);
+  node = json_path_match (path, dict);
+
+  j_array = json_node_dup_array (node);
+  value = json_array_get_string_element (j_array, 0);
+  priv->header_id = value;
+
+  json_path_compile (path, "$.ds:21[0][1][4]", NULL);
+  node = json_path_match (path, dict);
+
+  j_array = json_node_dup_array (node);
+  value = json_array_get_string_element (j_array, 0);
+  priv->last_sync_timestamp = value;
+
+}
+
 gchar *
 hangouts_api_get_request_header (HangoutsApi *api)
 {
@@ -560,7 +629,7 @@ hangouts_api_syncallevents (HangoutsApi 
     { hangouts_api_syncallevents_cb, "conversations/syncallnewevents", "POST" };
 
   gchar *header, *body;
-  GTimeVal *time_stamp;
+  gchar *time_stamp;
 
   time_stamp = api->priv->last_sync_timestamp;
   header = hangouts_api_get_request_header (api);
diff --git a/libpurple/protocols/hangouts/api.h b/libpurple/protocols/hangouts/api.h
--- a/libpurple/protocols/hangouts/api.h
+++ b/libpurple/protocols/hangouts/api.h
@@ -22,6 +22,8 @@
 #ifndef _API_H
 #define _API_H
 
+#include <json-glib/json-glib.h>
+
 #include "connection.h"
 
 #define HANGOUTS_API_OAUTH2_CLIENT_ID "1021803392181-71juemdl03adpl2n0tso7nl7hq83g2qg.apps.googleusercontent.com"
@@ -116,6 +118,9 @@ hangouts_api_get_private_token (Hangouts
 void
 hangouts_api_get_chat_init (HangoutsApi *api);
 
+void
+hangouts_api_set_chat_init_data (HangoutsApi *api, JsonNode *dict);
+
 gchar *
 hangouts_api_get_request_header (HangoutsApi *api);
 

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