/*
- * Copyright (C) 2011-2012 jeanfi@gmail.com
+ * Copyright (C) 2011-2014 jeanfi@gmail.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
#include <sys/stat.h>
#include <sys/types.h>
-#include <json/json.h>
+#include <json.h>
#include "html.h"
-#include "io.h"
-#include "log.h"
#include "lp.h"
+#include <lp_json.h>
#include "lp_ws.h"
#include "ppastats.h"
-#include "str.h"
+#include <pio.h>
+#include <plog.h>
+#include <pstr.h>
-static const char *footer;
-static const char *ppa_body;
-static const char *pkg_body;
-static const char *pkg_version_body;
-static const char *header;
+static char *footer;
+static char *ppa_body;
+static char *pkg_body;
+static char *pkg_version_body;
+static char *header;
static char *path_new(const char *dir, const char *file, const char *suffixe)
{
if (res != tmp)
free(tmp);
-
+
return res;
}
return pkg_body;
}
-static struct json_object *date_to_json(struct tm *tm)
-{
- json_object *json;
-
- json = json_object_new_array();
- json_object_array_add(json, json_object_new_int(tm->tm_year+1900));
- json_object_array_add(json, json_object_new_int(tm->tm_mon+1));
- json_object_array_add(json, json_object_new_int(tm->tm_mday));
-
- return json;
-}
-
static void json_add_ddts(json_object *json,
struct daily_download_total **ddts)
{
- json_object *json_ddt, *json_ddts;
- struct daily_download_total *ddt;
-
- json_ddts = json_object_new_array();
- json_object_object_add(json, "ddts", json_ddts);
-
- if (!ddts)
- return ;
-
- while (*ddts) {
- ddt = *ddts;
-
- json_ddt = json_object_new_object();
- json_object_object_add(json_ddt,
- "value",
- json_object_new_int(ddt->count));
- json_object_object_add(json_ddt,
- "time",
- date_to_json(&ddt->date));
-
- json_object_array_add(json_ddts, json_ddt);
-
- ddts++;
- }
+ json_object_object_add(json, "ddts", ddts_to_json(ddts));
}
static json_object *distro_to_json(struct distro_stats *d)
return ;
}
-
f_name = malloc(strlen(pkg->name)+1+strlen(version->version)+1);
sprintf(f_name, "%s_%s", pkg->name, version->version);
path = path_new(dir, f_name, ".html");
script_tpl = "var data = %s;\n ppastats_ver();";
- script = malloc(strlen(script_tpl) - 2 +strlen(json) + 1);
+ script = malloc(strlen(script_tpl) - 2 + strlen(json) + 1);
sprintf(script, script_tpl, json);
-
+
create_html(path, f_name, body, script);
-
+
+ free(script);
free(json);
free(path);
free(f_name);
-
}
static void
const char *ppa,
const char *package_status,
const char *output_dir,
- const int install_static_files)
+ const int install_static_files,
+ int ws_size)
{
struct ppa_stats *ppastats;
char *path, *f_dst;
"js/jquery.jqplot.min.js",
DEFAULT_WWW_DIR"/excanvas.js", "js/excanvas.js",
DEFAULT_WWW_DIR"/ppastats.css", "css/ppastats.css",
+ DEFAULT_WWW_DIR"/wpitchoune.css", "css/wpitchoune.css",
DEFAULT_WWW_DIR"/jquery.jqplot.min.css",
"css/jquery.jqplot.min.css" };
mkdir(css_dir, 0777);
mkdir(js_dir, 0777);
- for (i = 0; i < 7; i++) {
+ for (i = 0; i < 8; i++) {
f_dst = path_append(output_dir, www_files[2*i+1]);
log_debug(_("Copying %s %s"), www_files[2*i], f_dst);
- fcopy(www_files[2*i], f_dst);
+ file_copy(www_files[2*i], f_dst);
free(f_dst);
}
free(js_dir);
}
- ppastats = create_ppa_stats(owner, ppa, package_status);
+ ppastats = create_ppa_stats(owner, ppa, package_status, ws_size);
path = path_new(output_dir, "ppa", ".html");
free(path);
}
+
+void html_cleanup()
+{
+ free(header);
+ free(footer);
+ free(ppa_body);
+ free(pkg_body);
+ free(pkg_version_body);
+}