#!/usr/bin/python

import json
import subprocess
import sys

from softwarecenter.backend.piston.rnrclient import RatingsAndReviewsAPI

if __name__ == "__main__":

    rnrclient = RatingsAndReviewsAPI()
    piston_review_stats = rnrclient.review_stats(origin="ubuntu")

    # means            1  2  3  4  5 stars
    histogram_total = [0, 0, 0, 0, 0]
    for s in piston_review_stats:
        histogram = json.loads(s.histogram)
        for i in range(5):
            histogram_total[i] += histogram[i]
    print "overall distribution: ", histogram_total

    # write out data file
    f = open("reviews-spread.dat", "w")
    for i in range(5):
        f.write("%i %i\n" % (i + 1, histogram_total[i]))
    f.close()

    # write out gnuplot
    f = open("reviews-spread.gnuplot", "w")
    f.write("""
set title "Reviews spread"
    if options.debug:
        LOG.setLevel(logging.DEBUG)

    cachedir = os.path.join(SOFTWARE_CENTER_CACHE_DIR, "rnrclient")
    rnrclient = RatingsAndReviewsAPI(cachedir=cachedir)

    kwargs = {"origin": options.origin,
              "distroseries": options.distroseries,
             }
    if options.days_delta:
        kwargs["days"] = int(options.days_delta)

    # depending on the time delta, use a different call
    piston_review_stats = []
    try:
        piston_review_stats = rnrclient.review_stats(**kwargs)
    except:
        LOG.exception("get_review_stats")
        sys.exit(1)

    # useful for debugging
    if options.no_pickle:
        print "\n".join(["pkgname=%s total=%s avg=%s" % (s.package_name, 
                                                         s.ratings_total, 
                                                         s.ratings_average)
                         for s in piston_review_stats])
    else:
        # print to stdout where its consumed by the parent
        try:
            print pickle.dumps(piston_review_stats)
        except IOError:
#!/usr/bin/python

import json
import subprocess
import sys

from softwarecenter.backend.piston.rnrclient import RatingsAndReviewsAPI

if __name__ == "__main__":

    rnrclient = RatingsAndReviewsAPI()
    piston_review_stats = rnrclient.review_stats(origin="ubuntu")

    # means            1  2  3  4  5 stars
    histogram_total = [0, 0, 0, 0, 0]
    for s in piston_review_stats:
        histogram = json.loads(s.histogram)
        for i in range(5):
            histogram_total[i] += histogram[i]
    print "overall distribution: ", histogram_total

    # write out data file
    f=open("reviews-spread.dat", "w")
    for i in range(5):
        f.write("%i %i\n" % (i+1, histogram_total[i]))
    f.close()

    # write out gnuplot
    f=open("reviews-spread.gnuplot", "w")
    f.write("""
set title "Reviews spread"
示例#4
0
        LOG.setLevel(logging.DEBUG)

    cachedir = os.path.join(SOFTWARE_CENTER_CACHE_DIR, "rnrclient")
    rnrclient = RatingsAndReviewsAPI(cachedir=cachedir)

    kwargs = {
        "origin": options.origin,
        "distroseries": options.distroseries,
    }
    if options.days_delta:
        kwargs["days"] = int(options.days_delta)

    # depending on the time delta, use a different call
    piston_review_stats = []
    try:
        piston_review_stats = rnrclient.review_stats(**kwargs)
    except:
        LOG.exception("get_review_stats")
        sys.exit(1)

    # useful for debugging
    if options.no_pickle:
        print "\n".join([
            "pkgname=%s total=%s avg=%s" %
            (s.package_name, s.ratings_total, s.ratings_average)
            for s in piston_review_stats
        ])
    else:
        # print to stdout where its consumed by the parent
        try:
            print pickle.dumps(piston_review_stats)