+ while (ddts && *ddts) {
+ ddt = *ddts;
+
+ t = mktime(&(ddt->date));
+
+ d = difftime(tv->tv_sec, t);
+
+ if (d > 4 * 7 * 24 * 60 * 60) { /* older than 4 weeks */
+ date = tm_to_ISO8601_date(&ddt->date);
+ json_object_object_add(j_ddts,
+ date,
+ json_object_new_int(ddt->count));
+ free(date);
+ }
+
+ ddts++;
+ }
+
+ free(tv);
+
+ return j_ddts;
+}
+
+char *create_ddts_query(const char *binary_url, time_t st, time_t et)
+{
+ char *q;
+ char *sdate, *edate;
+
+ if (st) {
+ sdate = time_to_ISO8601_date(&st);
+
+ q = malloc(strlen(binary_url)
+ + strlen(QUERY_GET_DAILY_DOWNLOAD_TOTALS)
+ + strlen("&start_date=YYYY-MM-DD")
+ + strlen("&end_date=YYYY-MM-DD")
+ + 1);
+ strcpy(q, binary_url);
+ strcat(q, QUERY_GET_DAILY_DOWNLOAD_TOTALS);
+ strcat(q, "&start_date=");
+ strcat(q, sdate);
+
+ if (et > 0) {
+ edate = time_to_ISO8601_date(&et);
+ strcat(q, "&end_date=");
+ strcat(q, edate);
+ free(edate);
+ }