X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/4ca5c383de798f0aa6b1b5e149c620a77b753400..35a635c705ad1449df22a7cf5f6623b9445e40e3:/codec.plp
diff --git a/codec.plp b/codec.plp
index 1ae734a..1ce4611 100644
--- a/codec.plp
+++ b/codec.plp
@@ -1,37 +1,53 @@
<(common.inc.plp)><:
-my @feat = split m{/+}, $Request || 'default';
+my ($page, @feat) = split m{/+}, $Request || 'image';
+$page !~ /\W/ or Html(), Abort('Invalid codec type request', 400);
+@feat or @feat = 'default';
+my $title = "$page codecs";
Html({
- title => 'Codecs',
+ title => "$title cheat sheet",
version => '1.0',
description => [
],
keywords => [qw'
+ codec encoder encoding decode file format type mime
+ feature comparison support benchmark compression
+ image audio video
'],
stylesheet => [qw'light circus dark red'],
data => [qw'codec.inc.pl'],
+ raw => '',
});
-my $info = do 'codec.inc.pl';
-$info and %{$info} > 1 or Abort("cannot open operator include", 500, $@ // $!);
+my $info = do "codec-$page.inc.pl";
+$info and %{$info} > 1
+ or Abort("Requested codec type $page
not available", '404 request not found', $@ // $!);
+
+say "
$_
" for $info->{intro} // (); my %BOOLSCORE = (y => [5, 'â'], n => [1, 'â'], 0 => [0, 'n/a']); :> -feature <: my @codecs = sort { $info->{codec}->{$a}->{available} <=> $info->{codec}->{$b}->{available} } keys $info->{codec}->%*; +my @codeccols = @{$info->{codec}}{@codecs}; -print ' | ', $_->{name} for @{$info->{codec}}{@codecs}; -print "\n | ||
---|---|---|---|
', $_->{available} for @{$info->{codec}}{@codecs};
+{
+ print '';
+say "\t", ' | ', $_->{name} for @codeccols;
+print ' | ', $_->{available} for @codeccols;
say ' | |
%s', $featinfo->{name} // $feat; for (@codecs) { - my ($score, $data) = map { ref ? @$_ : $_ } $featinfo->{score}->{$_}; + my ($score, $data, $title) = map { ref ? @$_ : $_ } $featinfo->{score}->{$_}; if (not defined $data) { if (my $override = $BOOLSCORE{$score}) { ($score, $data) = @{$override}; @@ -50,7 +66,9 @@ while (defined (my $feat = shift @feat)) { $data = 'â¢' x ($score - 1); } } - printf ' | %s', $score, $data; + printf ' | ', $data; } say ' | '; }