combine matches played by multiple members
[sc2-widget] / getsc2clan
index 02990826636280b35663c791a9d8872c883334c5..8c9fe9fd337a89793b7e65ac5631fb840d02bc26 100755 (executable)
@@ -67,6 +67,16 @@ my (@members, %memberidx);
 $memberidx{ $_->{id} } //= push(@members, $_) && $#members
        for map { $_->{characters}->@* } @ladders;
 
+my %game;
+for my $member (map { $_->{id} } @members) {
+       my $usergames = blizget(legacy => @realmget => $member => 'matches');
+       for ($usergames->{matches}->@*) {
+               my $match = join ':', sort values %{$_};
+               $game{$match} //= $_;
+               push $game{$match}->{players}->@*, $memberidx{$member};
+       }
+}
+
 say JSON->new->canonical->pretty->encode({
        name     => $members[0]->{clanName},
        tag      => $members[0]->{clanTag},
@@ -91,4 +101,5 @@ say JSON->new->canonical->pretty->encode({
                blizget(metadata => @realmget => $_->{id})
                # lacks mmr, fav race (available in new api)
        } @members],
+       matches  => [nsort_by { -$_->{date} } values %game],
 }) =~ s/(?: \G \d,? | \[ ) \K \s+ (?=\d|\])/ /grx; # concat arrays of single digits