fix new json output from API

This commit is contained in:
Stephan Kulow 2012-02-21 10:51:33 +01:00
parent c8fbc3b310
commit 3c3d1006a6

View File

@ -1,6 +1,7 @@
#! /usr/bin/perl -w #! /usr/bin/perl -w
require LWP::UserAgent; require LWP::UserAgent;
use strict;
use JSON; use JSON;
use POSIX; use POSIX;
use Carp::Always; use Carp::Always;
@ -26,22 +27,22 @@ sub fetch_user_infos($)
my $ua = LWP::UserAgent->new; my $ua = LWP::UserAgent->new;
$ua->timeout(15); $ua->timeout(15);
$ua->default_header("Accept" => "application/json"); $ua->default_header("Accept" => "application/json");
$mywork = $ua->get("https://build.opensuse.org/stage/home/my_work?user=$user"); my $mywork = $ua->get("https://build.opensuse.org/stage/home/my_work?user=$user");
unless ($mywork->is_success) { die $mywork->status_line; } unless ($mywork->is_success) { die $mywork->status_line; }
$mywork = from_json( $mywork->decoded_content, { utf8 => 1 }); $mywork = from_json( $mywork->decoded_content, { utf8 => 1 });
my $url = "https://build.opensuse.org/stage/project/status?project=$tproject&ignore_pending=0"; my $url = "https://build.opensuse.org/stage/project/status?project=$tproject&ignore_pending=0";
$url .= "&limit_to_fails=false&limit_to_old=false&include_versions=true&filter_for_user=$user"; $url .= "&limit_to_fails=false&limit_to_old=false&include_versions=true&filter_for_user=$user";
$projstat = $ua->get($url); my $projstat = $ua->get($url);
die $projstat->status_line unless ($projstat->is_success); die $projstat->status_line unless ($projstat->is_success);
$projstat = from_json( $projstat->decoded_content, { utf8 => 1 }); $projstat = from_json( $projstat->decoded_content, { utf8 => 1 });
my %st = (); my %st = ();
$st->{'mywork'} = $mywork; $st{'mywork'} = $mywork;
$st->{'projstat'} = $projstat; $st{'projstat'} = $projstat;
# open(my $fh, '>', "reports/$user"); # open(my $fh, '>', "reports/$user");
# print $fh to_json($st); # print $fh to_json(%st);
# close $fh; # close $fh;
return ($mywork, $projstat); return ($mywork, $projstat);
} }
@ -92,7 +93,7 @@ sub explain_request($$)
my ($request, $list) = @_; my ($request, $list) = @_;
return if (defined($requests_to_ignore{$request->{id}})); return if (defined($requests_to_ignore{$request->{id}}));
#print Dumper($request); #print Dumper($request);
$actions = $request->{action}; my $actions = $request->{action};
$actions = [$actions] if (ref($actions) eq "HASH"); $actions = [$actions] if (ref($actions) eq "HASH");
my $line = ''; my $line = '';
for my $action (@{$actions || []}) { for my $action (@{$actions || []}) {
@ -123,7 +124,7 @@ sub generate_report($)
{ {
my ($user) = @_; my ($user) = @_;
($mywork, $projstat) = fetch_user_infos($user); my ($mywork, $projstat) = fetch_user_infos($user);
#print to_json($mywork, {pretty => 1 }); #print to_json($mywork, {pretty => 1 });
#print to_json($projstat, {pretty => 1}); #print to_json($projstat, {pretty => 1});
@ -140,8 +141,6 @@ sub generate_report($)
my $report = ''; my $report = '';
for my $request (@{$mywork->{review}}) { for my $request (@{$mywork->{review}}) {
# stupid ruby... :)
$request = $request->{request};
my $reviews = $request->{review}; my $reviews = $request->{review};
$reviews = [$reviews] if (ref($reviews) eq "HASH"); $reviews = [$reviews] if (ref($reviews) eq "HASH");
for my $review (@{$reviews}) { for my $review (@{$reviews}) {
@ -253,7 +252,7 @@ sub generate_report($)
%list = (); %list = ();
for my $request (@{$mywork->{declined}}) { for my $request (@{$mywork->{declined}}) {
explain_request($request->{request}, \%list); explain_request($request, \%list);
} }
if (%list) { if (%list) {
@ -268,8 +267,7 @@ sub generate_report($)
%list = (); %list = ();
for my $request (@{$mywork->{new}}) { for my $request (@{$mywork->{new}}) {
# stupid ruby... :) explain_request($request, \%list);
explain_request($request->{request}, \%list);
} }
if (%list && $report) { if (%list && $report) {