From: Mischa POSLAWSKY Date: Wed, 1 May 2019 20:03:21 +0000 (+0200) Subject: list all ladders regardless of member count X-Git-Tag: v0.2~10 X-Git-Url: http://git.shiar.nl/sc2-widget/commitdiff_plain/12f56f9cb78506076b690bae00531330ace88fd3 list all ladders regardless of member count --- diff --git a/battle.css b/battle.css index 103dc7c..d18831f 100644 --- a/battle.css +++ b/battle.css @@ -8,7 +8,7 @@ h1 { font: 700 1.2em Eurostile Extd,Source Sans Pro,sans-serif; text-transform: uppercase; } -h2 { +.ladders { font: 700 .8em Eurostile, sans-serif; text-transform: uppercase; } @@ -32,10 +32,21 @@ small { font-size: 100%; } +ul { + overflow: hidden; + padding: 0; + margin: 0; + list-style: none; +} +li { + float: left; + margin-right: .8em; +} + figure { text-align: center; display: inline-block; - margin: 0 .5em 0 0; + margin: 0; } figcaption { margin-top: .2ex; @@ -46,15 +57,13 @@ img { } .rank:before { - background-image: url("https://static.starcraft2.com/dist/images/none.c8b435f5900fab1ac7981cc9b56f6f44.png"); - background-repeat: no-repeat; + background: url("https://static.starcraft2.com/dist/images/none.c8b435f5900fab1ac7981cc9b56f6f44.png") no-repeat; background-position: -100px 0; width: 45px; height: 45px; display: inline-block; content: ''; vertical-align: middle; - margin-right: .2em; } .rank.silver:before { background-image: url("https://static.starcraft2.com/dist/images/silver.57bb73a131314d657135d2acf533d5e5.png"); diff --git a/getsc2clan b/getsc2clan index 6c02c0b..23190e4 100755 --- a/getsc2clan +++ b/getsc2clan @@ -30,21 +30,30 @@ sub blizget { # find largest group consisting entirely of clan members # prefer deprecated interface to prevent costly ladder search -my $ladders = blizget(legacy => profile => 2 => 1 => $profileid => 'ladders'); -my ($ladder) = ( +my $ladderdata = blizget(legacy => profile => 2 => 1 => $profileid => 'ladders'); +my @ladders = ( sort { $b->{characters}->@* <=> $a->{characters}->@* } # population desc grep { !$clanmatch or all { fc $_->{clanName} eq fc $clanmatch } $_->{characters}->@* } # members - $ladders->{currentSeason}->@* + grep { $_->{ladder}->[0]->{division} } + $ladderdata->{currentSeason}->@* ) or die "No matching groups found\n"; +my @members = $ladders[0]->{characters}->@*; +my %memberidx = map { $members[$_]->{id} => $_ } 0 .. $#members; say JSON->new->canonical->pretty->encode({ - league => ucfirst lc $ladder->{ladder}->[0]->{league}, - division => $ladder->{ladder}->[0]->{ladderName}, - rank => $ladder->{ladder}->[0]->{rank}, - tag => $ladder->{characters}->[0]->{clanTag}, - members => [map { blizget(metadata => profile => 2 => 1 => $_->{id}) } $ladder->{characters}->@*], - # lacks mmr, fav race (available in new api) + name => $members[0]->{clanName}, + tag => $members[0]->{clanTag}, + ladders => [map {{ + league => lc $_->{ladder}->[0]->{league}, + division => $_->{ladder}->[0]->{ladderName}, + rank => $_->{ladder}->[0]->{rank}, + members => [map { $memberidx{$_->{id}} } $_->{characters}->@*], + }} @ladders], + members => [map { + blizget(metadata => profile => 2 => 1 => $_->{id}) + # lacks mmr, fav race (available in new api) + } @members], }); diff --git a/widget.html b/widget.html index 3fb38c3..19e7fe3 100644 --- a/widget.html +++ b/widget.html @@ -14,18 +14,24 @@