+ t = mktime(&(ddt->date));
+
+ d = difftime(tv->tv_sec, t);
+
+ if (d > 4 * 7 * 24 * 60 * 60) { /* older than 4 weeks */
+ date = date_to_str(ddt->date);
+ json_object_object_add(j_ddts,
+ date,
+ json_object_new_int(ddt->count));
+ free(date);
+ }
+
+ ddts++;
+ }
+
+ free(tv);
+
+ return j_ddts;
+}
+
+static char *time_t_to_str(time_t t)
+{
+ struct tm *tm;
+ char *str;
+
+ tm = gmtime(&t);
+
+ str = date_to_str(*tm);
+
+ return str;
+}
+
+char *create_ddts_query(const char *binary_url, time_t st)
+{
+ char *q;
+ char *sdate;
+
+ if (st) {
+ sdate = time_t_to_str(st);
+
+ q = malloc(strlen(binary_url)
+ + strlen(QUERY_GET_DAILY_DOWNLOAD_TOTALS)
+ + strlen("&start_date=YYYY-MM-DD")
+ + 1);
+ strcpy(q, binary_url);
+ strcat(q, QUERY_GET_DAILY_DOWNLOAD_TOTALS);
+ strcat(q, "&start_date=");
+ strcat(q, sdate);
+
+ free(sdate);
+ } else {
+ q = malloc(strlen(binary_url)
+ + strlen(QUERY_GET_DAILY_DOWNLOAD_TOTALS)
+ + 1);
+ strcpy(q, binary_url);
+ strcat(q, QUERY_GET_DAILY_DOWNLOAD_TOTALS);