notmuch-show: Add unix and relative dates to the JSON output
authorDavid Edmondson <dme@dme.org>
Tue, 23 Mar 2010 09:40:48 +0000 (09:40 +0000)
committerDavid Edmondson <dme@dme.org>
Fri, 2 Apr 2010 08:25:38 +0000 (09:25 +0100)
Include a 'date_unix' and 'date_relative' field in the JSON output for
each message. 'date_relative' can be used by a UI implementation,
whereas 'date_unix' is useful when scripting.

notmuch-show.c

index 96647c1205d32ad036d6920f07dae7aee9547a4c..3f2ce73491433ffa035edf58ba3bbfd6b962859b 100644 (file)
@@ -139,11 +139,17 @@ format_message_json (const void *ctx, notmuch_message_t *message, unused (int in
     notmuch_tags_t *tags;
     int first = 1;
     void *ctx_quote = talloc_new (ctx);
+    time_t date;
+    const char *relative_date;
+
+    date = notmuch_message_get_date (message);
+    relative_date = notmuch_time_relative_date (ctx, date);
 
-    printf ("\"id\": %s, \"match\": %s, \"filename\": %s, \"tags\": [",
+    printf ("\"id\": %s, \"match\": %s, \"filename\": %s, \"date_unix\": %ld, \"date_relative\": \"%s\", \"tags\": [",
            json_quote_str (ctx_quote, notmuch_message_get_message_id (message)),
            notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_MATCH) ? "true" : "false",
-           json_quote_str (ctx_quote, notmuch_message_get_filename (message)));
+           json_quote_str (ctx_quote, notmuch_message_get_filename (message)),
+           date, relative_date);
 
     for (tags = notmuch_message_get_tags (message);
         notmuch_tags_valid (tags);