Skip to content

Commit

Permalink
split logic for finding the top x tracks in an array into its own sub
Browse files Browse the repository at this point in the history
  • Loading branch information
wchristian committed Dec 4, 2011
1 parent 8e1ee0d commit 8aad856
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions gapfinder.pl
Expand Up @@ -43,6 +43,10 @@ sub run {
push @per_artist_missing_tracks, get_artist_tracks( $artist, $config, $all_my_tracks, \@errors );
}

my $max_top = 20;

my @all_tracks = top_x_tracks( $max_top, \@per_artist_missing_tracks );

say "";

for my $data_set ( @per_artist_missing_tracks ) {
Expand All @@ -57,12 +61,6 @@ sub run {
say "\n";
}

my @all_tracks = map { @{$_->{tracks}} } @per_artist_missing_tracks;
@all_tracks = reverse sort { $a->{listeners} <=> $b->{listeners} } @all_tracks;

my $max_top = 20;
@all_tracks = @all_tracks[0..$max_top-1] if @all_tracks > $max_top;

say "Top $max_top Tracks";
say sprintf( "% 4d : % 20s : $_->{name}" . ( $_->{correction} ? " : ($_->{correction})" : "" ), $_->{"\@attr"}{rank}, $_->{artist}{name} )
for @all_tracks;
Expand All @@ -72,6 +70,17 @@ sub run {
return;
}

sub top_x_tracks {
my ( $max_top, $per_artist_tracks ) = @_;

my @all_tracks = map { @{ $_->{tracks} } } @{$per_artist_tracks};
@all_tracks = reverse sort { $a->{listeners} <=> $b->{listeners} } @all_tracks;

@all_tracks = @all_tracks[ 0 .. $max_top - 1 ] if @all_tracks > $max_top;

return @all_tracks;
}

sub retrieve_own_data {
my ( $config ) = @_;

Expand Down

0 comments on commit 8aad856

Please sign in to comment.