aboutsummaryrefslogtreecommitdiffstats
path: root/facebook
diff options
context:
space:
mode:
Diffstat (limited to 'facebook')
-rw-r--r--facebook/facebook-api.c7
-rw-r--r--facebook/facebook-api.h2
-rw-r--r--facebook/facebook.c9
3 files changed, 14 insertions, 4 deletions
diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c
index 8e55dd4..90f0fe3 100644
--- a/facebook/facebook-api.c
+++ b/facebook/facebook-api.c
@@ -1387,6 +1387,8 @@ fb_api_cb_publish_ms(FbApi *api, GByteArray *pload)
fb_json_values_add(values, FB_JSON_TYPE_INT, FALSE,
"$.deltaNewMessage.messageMetadata"
".threadKey.threadFbId");
+ fb_json_values_add(values, FB_JSON_TYPE_INT, FALSE,
+ "$.deltaNewMessage.messageMetadata.timestamp");
fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE,
"$.deltaNewMessage.body");
fb_json_values_add(values, FB_JSON_TYPE_INT, FALSE,
@@ -1406,6 +1408,7 @@ fb_api_cb_publish_ms(FbApi *api, GByteArray *pload)
msg.uid = fb_json_values_next_int(values, 0);
oid = fb_json_values_next_int(values, 0);
msg.tid = fb_json_values_next_int(values, 0);
+ msg.tstamp = fb_json_values_next_int(values, 0);
if (msg.uid == priv->uid) {
msg.flags |= FB_API_MESSAGE_FLAG_SELF;
@@ -2197,6 +2200,7 @@ fb_api_cb_unread_msgs(FbHttpRequest *req, gpointer data)
fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
"$.message_sender.messaging_actor.id");
fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE, "$.message.text");
+ fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE, "$.timestamp_precise");
fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE, "$.sticker.id");
fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE, "$.message_id");
fb_json_values_set_array(values, FALSE, "$.messages.nodes");
@@ -2213,6 +2217,9 @@ fb_api_cb_unread_msgs(FbHttpRequest *req, gpointer data)
msg.uid = FB_ID_FROM_STR(str);
msg.tid = tid;
+ str = fb_json_values_next_str(values, "0");
+ msg.tstamp = g_ascii_strtoll(str, NULL, 10);
+
if (body != NULL) {
dmsg = fb_api_message_dup(&msg, FALSE);
dmsg->text = g_strdup(body);
diff --git a/facebook/facebook-api.h b/facebook/facebook-api.h
index 280ec60..15e4cb2 100644
--- a/facebook/facebook-api.h
+++ b/facebook/facebook-api.h
@@ -326,6 +326,7 @@ struct _FbApiEvent
* @flags: The #FbApiMessageFlags.
* @uid: The user #FbId.
* @tid: The thread #FbId.
+ * @tstamp: The timestamp in milliseconds (UTC).
* @text: The message text.
*
* Represents a Facebook user message.
@@ -335,6 +336,7 @@ struct _FbApiMessage
FbApiMessageFlags flags;
FbId uid;
FbId tid;
+ gint64 tstamp;
gchar *text;
};
diff --git a/facebook/facebook.c b/facebook/facebook.c
index 664555e..4a82cc8 100644
--- a/facebook/facebook.c
+++ b/facebook/facebook.c
@@ -308,6 +308,7 @@ fb_cb_api_messages(FbApi *api, GSList *msgs, gpointer data)
gboolean selfmess;
gchar tid[FB_ID_STRMAX];
gchar uid[FB_ID_STRMAX];
+ gint64 tstamp;
GSList *l;
guint32 flags;
struct groupchat *gc;
@@ -321,9 +322,9 @@ fb_cb_api_messages(FbApi *api, GSList *msgs, gpointer data)
for (l = msgs; l != NULL; l = l->next) {
msg = l->data;
- FB_ID_TO_STR(msg->uid, uid);
-
flags = 0;
+ tstamp = msg->tstamp / 1000;
+ FB_ID_TO_STR(msg->uid, uid);
if (msg->flags & FB_API_MESSAGE_FLAG_SELF) {
if (!selfmess) {
@@ -345,7 +346,7 @@ fb_cb_api_messages(FbApi *api, GSList *msgs, gpointer data)
fb_api_read(api, msg->uid, FALSE);
}
- imcb_buddy_msg(ic, uid, (gchar *) msg->text, flags, 0);
+ imcb_buddy_msg(ic, uid, (gchar *) msg->text, flags, tstamp);
continue;
}
@@ -362,7 +363,7 @@ fb_cb_api_messages(FbApi *api, GSList *msgs, gpointer data)
fb_api_read(api, msg->tid, TRUE);
}
- imcb_chat_msg(gc, uid, (gchar *) msg->text, flags, 0);
+ imcb_chat_msg(gc, uid, (gchar *) msg->text, flags, tstamp);
}
}
}