X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=lib%2FOnis%2FPlugins%2FConversations.pm;h=b20d3b7fa89b59a3312e830ca070df0f5c2dca4c;hb=a7c2e96a023d136a05878251f4d389562e160e19;hp=9c39ef1d8200e27ef5b863611c3e9c2d67b05662;hpb=7e3c4b5eacb8bcbfff65fdd4d5def64e079991b7;p=onis.git diff --git a/lib/Onis/Plugins/Conversations.pm b/lib/Onis/Plugins/Conversations.pm index 9c39ef1..b20d3b7 100644 --- a/lib/Onis/Plugins/Conversations.pm +++ b/lib/Onis/Plugins/Conversations.pm @@ -9,7 +9,7 @@ use Onis::Config qw(get_config); use Onis::Html qw(get_filehandle); use Onis::Language qw(translate); use Onis::Data::Core qw(register_plugin get_main_nick nick_to_ident nick_to_name); -use Onis::Data::Persistent; +use Onis::Data::Persistent (); =head1 NAME @@ -28,8 +28,7 @@ talk to each other. our $ConversationCache = Onis::Data::Persistent->new ('ConversationCache', 'partners', qw(time0 time1 time2 time3)); our $ConversationData = {}; -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 $BAR_WIDTH = 100; +our @HorizontalImages = qw#dark-theme/h-red.png dark-theme/h-blue.png dark-theme/h-yellow.png dark-theme/h-green.png#; if (get_config ('horizontal_images')) { @@ -44,14 +43,16 @@ if (get_config ('horizontal_images')) for ($i = 0; $i < 4; $i++) { next unless (defined ($tmp[$i])); - $H_IMAGES[$i] = $tmp[$i]; + $HorizontalImages[$i] = $tmp[$i]; } } -if (get_config ('bar_width')) + +our $NumConversations = 10; +if (get_config ('conversations_number')) { - my $tmp = get_config ('bar_width'); + my $tmp = get_config ('conversations_number'); $tmp =~ s/\D//g; - $BAR_WIDTH = 2 * $tmp if ($tmp >= 10); + $NumConversations = $tmp if ($tmp); } register_plugin ('TEXT', \&add); @@ -170,12 +171,8 @@ sub output my $title = translate ('Conversation partners'); my $max_num = 0; - my $factor = 0; - - my @img = get_config ('horizontal_images'); - # FIXME - my @data = get_top (10); + my @data = get_top ($NumConversations); return (undef) unless (@data); for (@data) @@ -197,8 +194,6 @@ sub output $max_num = $sum1 if ($max_num < $sum1); } - $factor = $BAR_WIDTH / $max_num; - print $fh < @@ -221,37 +216,29 @@ EOF EOF - print $fh ' '; - for (3, 2, 1, 0) + print $fh ' '; + for (my $i = 3; $i >= 0; $i--) { - my $i = $img[$_]; - my $w = int (0.5 + ($rec->{'nicks'}{$nick0}[$_] * $factor)); - my $c = ''; - $w ||= 1; - - $w = $w . 'px'; + my $width = sprintf ("%.2f", 95 * $rec->{'nicks'}{$nick0}[$i] / $max_num); + my $image = $HorizontalImages[$i]; + my $class = ''; - if ($_ == 3) { $c = qq# class="first"#; } - elsif ($_ == 0) { $c = qq# class="last"#; } + if ($i == 3) { $class = qq# class="first"#; } + elsif ($i == 0) { $class = qq# class="last"#; } - print $fh qq##; + print $fh qq##; } - - print $fh qq#\n #; - - for (0, 1, 2, 3) + print $fh qq#\n #; + for (my $i = 0; $i < 4; $i++) { - my $i = $img[$_]; - my $w = int (0.5 + ($rec->{'nicks'}{$nick1}[$_] * $factor)); - my $c = ''; - $w ||= 1; - - $w = $w . 'px'; + my $width = sprintf ("%.2f", 95 * $rec->{'nicks'}{$nick1}[$i] / $max_num); + my $image = $HorizontalImages[$i]; + my $class = ''; - if ($_ == 0) { $c = qq# class="first"#; } - elsif ($_ == 3) { $c = qq# class="last"#; } + if ($i == 0) { $class = qq# class="first"#; } + elsif ($i == 3) { $class = qq# class="last"#; } - print $fh qq##; + print $fh qq##; } print $fh "\n \n"; }