8
from optparse import OptionParser
10
from softwarecenter.paths import SOFTWARE_CENTER_CACHE_DIR
11
from softwarecenter.backend.piston.rnrclient import RatingsAndReviewsAPI
13
LOG = logging.getLogger(__name__)
15
if __name__ == "__main__":
18
# common options for optparse go here
19
parser = OptionParser()
22
parser.add_option("--origin", default="any")
23
parser.add_option("--distroseries", default="any")
24
parser.add_option("--days-delta", default=None)
25
parser.add_option("--debug",
26
action="store_true", default=False)
27
parser.add_option("--no-pickle",
28
action="store_true", default=False)
29
(options, args) = parser.parse_args()
32
LOG.setLevel(logging.DEBUG)
34
cachedir = os.path.join(SOFTWARE_CENTER_CACHE_DIR, "rnrclient")
35
rnrclient = RatingsAndReviewsAPI(cachedir=cachedir)
37
kwargs = {"origin": options.origin,
38
"distroseries": options.distroseries,
40
if options.days_delta:
41
kwargs["days"] = int(options.days_delta)
43
# depending on the time delta, use a different call
44
piston_review_stats = []
46
piston_review_stats = rnrclient.review_stats(**kwargs)
48
LOG.exception("get_review_stats")
51
# useful for debugging
53
print "\n".join(["pkgname=%s total=%s avg=%s" % (s.package_name,
56
for s in piston_review_stats])
58
# print to stdout where its consumed by the parent
60
print pickle.dumps(piston_review_stats)
62
# this can happen if the parent gets killed, no need to trigger