browser: user-configurable usage threshold
[sheet.git] / emoji.plp
index c090388cea28a32179413c0c378c11ca676271da..00e75066478c640432a6d0bdad741bc11d330806 100644 (file)
--- a/emoji.plp
+++ b/emoji.plp
@@ -18,19 +18,16 @@ Html({
 <h1>IM emoticons</h1>
 
 <:
-my %ICONURL = (
-       msn   => 'http://messenger.msn.com/Resource/emoticons/%s.gif',
-#      yahoo => 'http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons6/%s.gif',
-       yahoo => 'http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/%s.gif',
-#      yahoo-web => 'http://l.yimg.com/a/i/us/msg/emoticons/%s.gif',
-       gmail => 'http://mail.google.com/mail/help/images/screenshots/chat/%s.gif',
-);
-
-print "<ul>\n";
+print '<div class="section">'."\n";
 
 for my $system (qw'gmail msn yahoo') {
        my @info = do "emoji-$system.inc.pl";
-       printf '<div class="section"><h3>%s</h3>'."\n\n", $system;
+       my $meta = shift @info or die $@;
+       ref $meta eq 'HASH' or die "invalid $system definitions";
+       my $title = $meta->{name} // $system;
+       $title = qq{<a href="$_">$title</a>} for $meta->{source} || ();
+
+       printf '<div class="section"><h2>%s</h2>'."\n\n", $meta->{name} // $system;
        print '<table><tbody>'."\n";
        for (my $i = 0; $i <= $#info; $i++) {
                my $name = $info[$i];
@@ -38,13 +35,17 @@ for my $system (qw'gmail msn yahoo') {
                        printf '</table><table><tbody>'."\n", $name;
                        next;
                }
-               my ($input, $attr, $char, $desc) = @{ $info[++$i] };
-               printf('<tr><th><img src="'.$ICONURL{$system}.'"><td><kbd>%s</kbd><td>%s%s'."\n",
-                       $name, EscapeHTML($input), $desc // $name, $char ? '<td>'.chr($char) : '',
+               my ($input, $flags, $char, $desc) = @{ $info[++$i] };
+               printf('<tr><th><img src="%s" alt="%s"><td><kbd>%s</kbd><td>%s%s'."\n",
+                       sprintf($meta->{ $flags =~ /\bext\b/ ? 'iconext' : 'icon' } // '%s', $name),
+                       EscapeHTML($name),
+                       EscapeHTML($input),
+                       $desc // $name,
+                       $char ? '<td>'.chr($char) : '',
                );
        }
        print "</table></div>\n\n";
 }
 
-print "</ul><hr>\n\n";
+print "</div><hr>\n\n";