X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fhtml.c;h=b2e9e340e7e9cebbf9030eefb47aeafe05d4105c;hb=0ebeecd01227fce93c66d0cd07e7a1efd5565632;hp=07945f6caba7947d98c6895cb4289aa2fe2975fa;hpb=2f35163b296d5a733157e36a8c8910fa041766a7;p=ppastats.git
diff --git a/src/html.c b/src/html.c
index 07945f6..b2e9e34 100644
--- a/src/html.c
+++ b/src/html.c
@@ -37,23 +37,8 @@
#include "ppastats.h"
static char *footer;
-
-#define HTML_PKG_TEMPLATE \
-"
N/A
\n\
- \n\
- "
+static char *ppa_body;
+static char *pkg_body;
#define HTML_VERSION_TEMPLATE \
"\n\
@@ -124,18 +109,6 @@ src=\"js/excanvas.js\">\n\
\n\
\n"
-#define HTML_INDEX_TEMPLATE \
-" N/A
\n\
- \n\
-
\n\
-
Packages:\n\
-
\n\
-
\n\
-
\n\
- \n"
-
static char *path_new(const char *dir, const char *file, const char *suffixe)
{
char *path;
@@ -154,8 +127,6 @@ static char *path_new(const char *dir, const char *file, const char *suffixe)
return path;
}
-
-
static const char *get_footer()
{
const char *path;
@@ -171,6 +142,36 @@ static const char *get_footer()
return footer;
}
+static const char *get_ppa_body()
+{
+ const char *path;
+
+ if (!ppa_body) {
+ path = DEFAULT_WWW_DIR"/ppa.tpl";
+ ppa_body = file_get_content(path);
+
+ if (!ppa_body)
+ log_err("Failed to read PPA template: %s", path);
+ }
+
+ return ppa_body;
+}
+
+static const char *get_pkg_body()
+{
+ const char *path;
+
+ if (!pkg_body) {
+ path = DEFAULT_WWW_DIR"/pkg.tpl";
+ pkg_body = file_get_content(path);
+
+ if (!pkg_body)
+ log_err("Failed to read package template: %s", path);
+ }
+
+ return pkg_body;
+}
+
static struct json_object *date_to_json(struct tm *tm)
{
json_object *json;
@@ -463,6 +464,13 @@ index_to_html(struct ppa_stats *ppa, const char *dir)
{
char *path, *json_path, *dname;
json_object *json;
+ const char *body;
+
+ body = get_ppa_body();
+ if (!body) {
+ log_err("Failed to create PPA page");
+ return ;
+ }
json = ppa_to_json(ppa);
json_path = path_new(dir, "index", ".json");
@@ -474,7 +482,7 @@ index_to_html(struct ppa_stats *ppa, const char *dir)
path = path_new(dir, "index", ".html");
dname = ppa_display_name(ppa);
- create_html(path, dname, HTML_INDEX_TEMPLATE, "ppastats_ppa();");
+ create_html(path, dname, body, "ppastats_ppa();");
free(path);
free(dname);
}
@@ -484,6 +492,13 @@ pkg_to_html(struct ppa_stats *ppa, struct package_stats *pkg, const char *dir)
{
char *path, *json_path, *script;
json_object *json;
+ const char *body;
+
+ body = get_pkg_body();
+ if (!body) {
+ log_err("Failed to create package page: %s", pkg->name);
+ return ;
+ }
json_path = path_new(dir, pkg->name, ".json");
json = pkg_to_json(ppa, pkg);
@@ -502,7 +517,7 @@ pkg_to_html(struct ppa_stats *ppa, struct package_stats *pkg, const char *dir)
log_debug(_("generating %s"), path);
- create_html(path, pkg->name, HTML_PKG_TEMPLATE, script);
+ create_html(path, pkg->name, body, script);
free(path);
free(script);
}