X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fppastats.c;h=9f6ddbe0a9c559f69300c415d571c53ef4991c8d;hb=03afbf21a42fd2ee8d5d54e21fa9e948c3d6e883;hp=3f94038928075ca5967e2e03a6956a523ad4f6bd;hpb=1288d571249ac21acb2b690cc9ff0d0f07a7655e;p=ppastats.git diff --git a/src/ppastats.c b/src/ppastats.c index 3f94038..9f6ddbe 100644 --- a/src/ppastats.c +++ b/src/ppastats.c @@ -1,27 +1,31 @@ /* - Copyright (C) 2011 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 published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA -*/ + * Copyright (C) 2011-2012 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 + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#include +#define _(String) gettext(String) #include #include #include #include "list.h" +#include "log.h" #include "lp_ws.h" #include "ppastats.h" @@ -90,6 +94,7 @@ static struct distro_stats *distro_stats_new(const char *name) d->name = strdup(name); d->archs = NULL; d->download_count = 0; + d->ddts = NULL; return d; } @@ -194,7 +199,8 @@ struct daily_download_total **add_totals static void pkg_add_distro(struct package_stats *pkg, const char *distro_name, - int distro_count) + int distro_count, + struct daily_download_total **ddts) { struct distro_stats **pkg_distros, *pkg_distro; @@ -219,6 +225,7 @@ pkg_add_distro(struct package_stats *pkg, } pkg_distro->download_count += distro_count; + pkg_distro->ddts = add_totals(pkg_distro->ddts, ddts); } struct ppa_stats * @@ -244,7 +251,7 @@ create_ppa_stats(const char *owner, free(ppa_url); if (!history) { - fprintf(stderr, "Failed to retrieve PPA information\n"); + log_err(_("Failed to retrieve PPA information")); exit(EXIT_FAILURE); } @@ -255,11 +262,20 @@ create_ppa_stats(const char *owner, ppa->daily_download_totals = NULL; ppa->download_count = 0; - h_cur = history; - while (*h_cur) { + for (h_cur = history; *h_cur; ++h_cur) { h = *h_cur; totals = get_daily_download_totals(h->self_link); + if (!totals) { + log_err(_("Failed to retrieve download totals for %s"), + h->self_link); + continue; + } count = get_download_count(h->self_link); + if (count == -1) { + log_err(_("Failed to retrieve download count for %s"), + h->self_link); + count = 0; + } pkg_name = h->binary_package_name; pkg_version = h->binary_package_version; arch_series @@ -287,11 +303,9 @@ create_ppa_stats(const char *owner, arch = get_arch_stats(distro, arch_series->architecture_tag); arch->download_count += count; - pkg_add_distro(pkg, distro_series->name, count); + pkg_add_distro(pkg, distro_series->name, count, totals); daily_download_total_list_free(totals); - - h_cur++; } binary_package_publishing_history_list_free(history);