X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2FOnis%2FPlugins%2FCore.pm;h=795458c7be7a1f9035cb5e922020c0f699ad006b;hb=a7c2e96a023d136a05878251f4d389562e160e19;hp=1423fb22dde7965bb81ced3b3d805c94dbed5c69;hpb=b35e3c4286bacccb72237b1550b6281418f772d8;p=onis.git diff --git a/lib/Onis/Plugins/Core.pm b/lib/Onis/Plugins/Core.pm index 1423fb2..795458c 100644 --- a/lib/Onis/Plugins/Core.pm +++ b/lib/Onis/Plugins/Core.pm @@ -20,7 +20,7 @@ complicated plugin so far. 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::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 (); @@ -55,20 +55,17 @@ 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 @HorizontalImages = 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; our $QuoteMax = 80; -our $WORD_LENGTH = 5; -our $SORT_BY = 'LINES'; -our $DISPLAY_LINES = 'BOTH'; -our $DISPLAY_WORDS = 'NONE'; -our $DISPLAY_CHARS = 'NONE'; -our $DISPLAY_TIMES = 0; -our $DISPLAY_IMAGES = 0; -our $DEFAULT_IMAGE = ''; -our $BAR_HEIGHT = 130; -our $BAR_WIDTH = 100; +our $SortBy = 'LINES'; +our $DisplayLines = 'BOTH'; +our $DisplayWords = 'NONE'; +our $DisplayChars = 'NONE'; +our $DisplayTimes = 0; +our $DisplayImages = 0; +our $DefaultImage = ''; our $LongLines = 50; our $ShortLines = 10; @@ -114,20 +111,6 @@ if (get_config ('quote_max')) $QuoteMax = $tmp if ($tmp); } -=item B: I<5> - -Sets how many word-characters in a row are considered to be a word. Or, in more -normal terms: Sets the minimum length for words.. - -=cut - -if (get_config ('min_word_length')) -{ - my $tmp = get_config ('min_word_length'); - $tmp =~ s/\D//g; - $WORD_LENGTH = $tmp if ($tmp); -} - =item B: I Choses wether to display B as I, I, I or not at all @@ -142,7 +125,7 @@ if (get_config ('display_lines')) if (($tmp eq 'NONE') or ($tmp eq 'BAR') or ($tmp eq 'NUMBER') or ($tmp eq 'BOTH')) { - $DISPLAY_LINES = $tmp; + $DisplayLines = $tmp; } else { @@ -165,7 +148,7 @@ if (get_config ('display_words')) if (($tmp eq 'NONE') or ($tmp eq 'BAR') or ($tmp eq 'NUMBER') or ($tmp eq 'BOTH')) { - $DISPLAY_WORDS = $tmp; + $DisplayWords = $tmp; } else { @@ -188,7 +171,7 @@ if (get_config ('display_chars')) if (($tmp eq 'NONE') or ($tmp eq 'BAR') or ($tmp eq 'NUMBER') or ($tmp eq 'BOTH')) { - $DISPLAY_CHARS = $tmp; + $DisplayChars = $tmp; } else { @@ -211,11 +194,11 @@ if (get_config ('display_times')) if ($tmp =~ m/true|on|yes/i) { - $DISPLAY_TIMES = 1; + $DisplayTimes = 1; } elsif ($tmp =~ m/false|off|no/i) { - $DISPLAY_TIMES = 0; + $DisplayTimes = 0; } else { @@ -236,11 +219,11 @@ if (get_config ('display_images')) if ($tmp =~ m/true|on|yes/i) { - $DISPLAY_IMAGES = 1; + $DisplayImages = 1; } elsif ($tmp =~ m/false|off|no/i) { - $DISPLAY_IMAGES = 0; + $DisplayImages = 0; } else { @@ -258,7 +241,7 @@ to take care of (absolute) paths yourself. if (get_config ('default_image')) { - $DEFAULT_IMAGE = get_config ('default_image'); + $DefaultImage = get_config ('default_image'); } =item B: I @@ -276,7 +259,7 @@ if (get_config ('sort_by')) if (($tmp eq 'LINES') or ($tmp eq 'WORDS') or ($tmp eq 'CHARS')) { - $SORT_BY = $tmp; + $SortBy = $tmp; } else { @@ -310,36 +293,10 @@ if (get_config ('horizontal_images')) next; } - $H_IMAGES[$i] = $tmp[$i]; + $HorizontalImages[$i] = $tmp[$i]; } } -=item B: I<130> - -Sets the height (in pixels) of the highest vertical graph. - -=cut - -if (get_config ('bar_height')) -{ - my $tmp = get_config ('bar_height'); - $tmp =~ s/\D//g; - $BAR_HEIGHT = $tmp if ($tmp >= 10); -} - -=item B: I<100> - -Sets the width (in pixels) of the widest horizontal graph. - -=cut - -if (get_config ('bar_width')) -{ - my $tmp = get_config ('bar_width'); - $tmp =~ s/\D//g; - $BAR_WIDTH = $tmp if ($tmp >= 10); -} - =item B: I<50> Sets the number of rows of the main ranking table. @@ -553,7 +510,6 @@ sub activetimes { my $max = 0; # the most lines that were written in one hour.. my $total = 0; # the total amount of lines we wrote.. - my $factor = 0; # used to find a bar's height my @data = qw(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0); @@ -589,8 +545,6 @@ sub activetimes $max = 1; } - $factor = (($BAR_HEIGHT - 1) / $max); - my $header = translate ('When do we actually talk here?'); print $fh "

$header

\n", qq#\n#, @@ -644,7 +598,7 @@ sub ranking my $fh = get_filehandle () or die; - my $sort_field = lc ($SORT_BY); + my $sort_field = lc ($SortBy); my $trans; @@ -661,15 +615,15 @@ sub ranking $trans = translate ('Most active nicks'); print $fh "

$trans

\n"; - if ($SORT_BY eq 'LINES') + if ($SortBy eq 'LINES') { $trans = translate ('Nicks sorted by numbers of lines written'); } - elsif ($SORT_BY eq 'WORDS') + elsif ($SortBy eq 'WORDS') { $trans = translate ('Nicks sorted by numbers of words written'); } - else # ($SORT_BY eq 'CHARS') + else # ($SortBy eq 'CHARS') { $trans = translate ('Nicks sorted by numbers of characters written'); } @@ -681,7 +635,7 @@ sub ranking EOF - if ($DISPLAY_IMAGES) + if ($DisplayImages) { $trans = translate ('Image'); print $fh " \n"; @@ -691,22 +645,25 @@ EOF $trans = translate ('Nick'); print $fh " \n"; } - if ($DISPLAY_LINES ne 'NONE') + if ($DisplayLines ne 'NONE') { + my $span = $DisplayLines eq 'BOTH' ? ' colspan="2"' : ''; $trans = translate ('Number of Lines'); - print $fh " \n"; + print $fh " $trans\n"; } - if ($DISPLAY_WORDS ne 'NONE') + if ($DisplayWords ne 'NONE') { + my $span = $DisplayWords eq 'BOTH' ? ' colspan="2"' : ''; $trans = translate ('Number of Words'); - print $fh " \n"; + print $fh " $trans\n"; } - if ($DISPLAY_CHARS ne 'NONE') + if ($DisplayChars ne 'NONE') { + my $span = $DisplayChars eq 'BOTH' ? ' colspan="2"' : ''; $trans = translate ('Number of Characters'); - print $fh " \n"; + print $fh " $trans\n"; } - if ($DISPLAY_TIMES) + if ($DisplayTimes) { $trans = translate ('When?'); print $fh " \n"; @@ -727,7 +684,7 @@ EOF { 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++; @@ -762,11 +719,11 @@ EOF print $fh " \n", qq# \n"; - if ($DISPLAY_IMAGES) + if ($DisplayImages) { - if ($DEFAULT_IMAGE and !$image) + if ($DefaultImage and !$image) { - $image = $DEFAULT_IMAGE; + $image = $DefaultImage; } print $fh qq# \n#; } - if ($DISPLAY_LINES ne 'NONE') + if ($DisplayLines ne 'NONE') { - print $fh qq# \n); } - print $fh ' ' if ($DISPLAY_LINES eq 'BOTH'); - if (($DISPLAY_LINES eq 'BOTH') or ($DISPLAY_LINES eq 'NUMBER')) + if (($DisplayLines eq 'BOTH') or ($DisplayLines eq 'BAR')) { - print $fh $NickData->{$nick}{'lines_total'}; + my $code = bar ($max_lines, $NickData->{$nick}{'lines'}); + print $fh qq( \n); } - print $fh "\n"; } - if ($DISPLAY_WORDS ne 'NONE') + if ($DisplayWords ne 'NONE') { - print $fh qq# \n); } - print $fh ' ' if ($DISPLAY_WORDS eq 'BOTH'); - if (($DISPLAY_WORDS eq 'BOTH') or ($DISPLAY_WORDS eq 'NUMBER')) + if (($DisplayWords eq 'BOTH') or ($DisplayWords eq 'BAR')) { - print $fh $NickData->{$nick}{'words_total'}; + my $code = bar ($max_words, $NickData->{$nick}{'words'}); + print $fh qq( \n); } - print $fh "\n"; } - if ($DISPLAY_CHARS ne 'NONE') + if ($DisplayChars ne 'NONE') { - print $fh qq# \n); } - print $fh ' ' if ($DISPLAY_CHARS eq 'BOTH'); - if (($DISPLAY_CHARS eq 'BOTH') or ($DISPLAY_CHARS eq 'NUMBER')) + if (($DisplayChars eq 'BOTH') or ($DisplayChars eq 'BAR')) { - print $fh $NickData->{$nick}{'chars_total'}; + my $code = bar ($max_chars, $NickData->{$nick}{'chars'}); + print $fh qq( \n); } - print $fh "\n"; } - if ($DISPLAY_TIMES) + if ($DisplayTimes) { my $code = bar ($NickData->{$nick}{'chars_total'}, $NickData->{$nick}{'chars'}); - print $fh qq# \n#; + print $fh qq# \n#; } print $fh qq# \n#, @@ -879,15 +830,15 @@ EOF my $col_in_this_table = ($linescount - $LongLines - 1) % 6; my $total = 0; - if ($SORT_BY eq 'LINES') + if ($SortBy eq 'LINES') { $total = $NickData->{$nick}{'lines_total'}; } - elsif ($SORT_BY eq 'WORDS') + elsif ($SortBy eq 'WORDS') { $total = $NickData->{$nick}{'words_total'}; } - else # ($SORT_BY eq 'CHARS') + else # ($SortBy eq 'CHARS') { $total = $NickData->{$nick}{'chars_total'}; } @@ -957,22 +908,16 @@ sub bar confess () unless (ref ($source) eq 'ARRAY'); - # BAR_WIDTH is a least 10 - my $max_width = $BAR_WIDTH - 4; - my $factor = 1; my $retval = ''; my $i; my $j; - if (!$max_num) { return ($retval); } - $factor = $max_width / $max_num; - for ($i = 0; $i < 4; $i++) { my $sum = 0; - my $width = 1; - my $img = $H_IMAGES[$i]; + my $img = $HorizontalImages[$i]; + my $width; for ($j = 0; $j < 6; $j++) { @@ -980,9 +925,9 @@ sub bar $sum += $source->[$hour]; } - $width += int (0.5 + ($sum * $factor)); + $width = sprintf ("%.2f", 95 * $sum / $max_num); - $retval .= qq#$sum); @@ -1053,6 +998,6 @@ sub nick_is_in_main_table =head1 AUTHOR -Florian octo Forster, Eocto at verplant.orgE +Florian octo Forster Eocto at verplant.orgE =cut
 $trans$trans$trans$trans$trans$trans
# . $linescount . "#; @@ -806,58 +763,52 @@ EOF print $fh qq#$print#; - if (($DISPLAY_LINES eq 'BOTH') or ($DISPLAY_LINES eq 'BAR')) + if (($DisplayLines eq 'BOTH') or ($DisplayLines eq 'NUMBER')) { - my $code = bar ($max_lines, $NickData->{$nick}{'lines'}); - print $fh $code; + my $num = $NickData->{$nick}{'lines_total'}; + print $fh qq( $num$code#; - if (($DISPLAY_WORDS eq 'BOTH') or ($DISPLAY_WORDS eq 'BAR')) + if (($DisplayWords eq 'BOTH') or ($DisplayWords eq 'NUMBER')) { - my $code = bar ($max_words, $NickData->{$nick}{'words'}); - print $fh $code; + my $num = $NickData->{$nick}{'words_total'}; + print $fh qq( $num$code#; - if (($DISPLAY_CHARS eq 'BOTH') or ($DISPLAY_CHARS eq 'BAR')) + if (($DisplayChars eq 'BOTH') or ($DisplayChars eq 'NUMBER')) { - my $code = bar ($max_chars, $NickData->{$nick}{'chars'}); - print $fh $code; + my $num = $NickData->{$nick}{'chars_total'}; + print $fh qq( $num$code$code$code$quote