=cut
-use Onis::Config qw/get_config/;
-use Onis::Html qw/html_escape get_filehandle/;
-use Onis::Language qw/translate/;
-use Onis::Users (qw(get_realname get_link get_image ident_to_name));
-use Onis::Data::Core qw#get_all_nicks nick_to_ident ident_to_nick get_main_nick register_plugin#;
-use Onis::Data::Persistent;
-
-@Onis::Plugins::Core::EXPORT_OK = (qw(get_core_nick_counters get_sorted_nicklist));
+use Onis::Config (qw(get_config));
+use Onis::Html (qw(html_escape get_filehandle));
+use Onis::Language (qw(translate));
+use Onis::Users (qw(get_realname get_link get_image chatter_to_name));
+use Onis::Data::Core (qw(get_all_nicks nick_to_ident ident_to_nick get_main_nick register_plugin));
+use Onis::Data::Persistent ();
+
+@Onis::Plugins::Core::EXPORT_OK = (qw(get_core_nick_counters get_sorted_nicklist nick_is_in_main_table));
@Onis::Plugins::Core::ISA = ('Exporter');
our $NickLinesCounter = Onis::Data::Persistent->new ('NickLinesCounter', 'nick',
our $NickData = {}; # Same as above, but for nicks rather than quotes.
our $SortedNicklist = [];
+our $NicksInMainTable = {};
+
our @H_IMAGES = qw#dark-theme/h-red.png dark-theme/h-blue.png dark-theme/h-yellow.png dark-theme/h-green.png#;
our $QuoteCacheSize = 10;
our $QuoteMin = 30;
my $header = translate ('When do we actually talk here?');
print $fh "<h2>$header</h2>\n",
- qq#<table class="hours_of_day">\n#,
- qq# <tr>\n#;
+ qq#<table class="hours">\n#,
+ qq# <tr class="bars">\n#;
# this for circles through the four colors. Each color represents six hours.
# (4 * 6 hours = 24 hours)
for (my $i = 0; $i <= 3; $i++)
{
- for (my $j = 0; $j <= 5; $j++)
+ for (my $j = 0; $j < 6; $j++)
{
my $hour = (($i * 6) + $j);
if (!defined ($data[$hour]))
$data[$hour] = 0;
}
- my $percent = 100 * ($data[$hour] / $total);
- my $height = int ($data[$hour] * $factor) + 1;
- my $img_url = $img_urls[$i];
+ my $height = sprintf ("%.2f", 95 * $data[$hour] / $max);
+ my $img = $img_urls[$i];
- print $fh ' <td>', sprintf ("%2.1f", $percent),
- qq#%<br /><img src="$img_url" style="height: $height#,
- qq#px;" alt="" /></td>\n#;
+ print $fh qq# <td class="bar vertical"><img src="$img" class="first last" style="height: $height\%;" alt="" /></td>\n#;
}
}
+ print $fh qq# </tr>\n <tr class="counter">\n#;
+ for (my $i = 0; $i < 24; $i++)
+ {
+ my $percent = sprintf ("%.1f", 100 * $data[$i] / $total);
+ print $fh qq# <td class="counter">$percent\%</td>\n#;
+ }
print $fh " </tr>\n",
- qq# <tr class="hour_row">\n#;
- print $fh map { " <td>$_</td>\n" } (0 .. 23);
+ qq# <tr class="numeration">\n#;
+ print $fh map { qq# <td class="numeration">$_</td>\n# } (0 .. 23);
print $fh " </tr>\n",
"</table>\n\n";
}
{
my $nick = $_;
my $ident = nick_to_ident ($nick);
- my $name = ident_to_name ($ident);
+ my $name = chatter_to_name ("$nick!$ident");
my $print = $name || $nick;
$linescount++;
# our table..
if ($linescount <= $LongLines)
{
+ $NicksInMainTable->{$nick} = $linescount;
+
my $quote = translate ('-- no quote available --');
if (@{$QuoteData->{$nick}})
return ($SortedNicklist);
}
+=item B<nick_is_in_main_table> (I<$nick>)
+
+Returns the position of the nick in the main table or zero if it is not in the
+main table.
+
+=cut
+
+sub nick_is_in_main_table
+{
+ my $nick = shift;
+
+ return (defined ($NicksInMainTable->{$nick}) ? $NicksInMainTable->{$nick} : 0);
+}
+
=back
=head1 AUTHOR
-Florian octo Forster, E<lt>octo at verplant.orgE<gt>
+Florian octo Forster E<lt>octo at verplant.orgE<gt>
=cut