Many many fixes. This version is actually kind of useable.
[onis.git] / lib / Onis / Plugins / Conversations.pm
index 5af0717..5b28192 100644 (file)
@@ -3,13 +3,18 @@ package Onis::Plugins::Conversations;
 use strict;
 use warnings;
 
+use Exporter;
+
 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);
-use Onis::Users qw(ident_to_name);
+use Onis::Data::Core qw(register_plugin get_main_nick nick_to_ident nick_to_name);
+use Onis::Users (qw(ident_to_name));
 use Onis::Data::Persistent;
 
+@Onis::Plugins::Conversations::EXPORT_OK = (qw(get_conversations));
+@Onis::Plugins::Conversations::ISA = ('Exporter');
+
 our $ConversationCache = Onis::Data::Persistent->new ('ConversationCache', 'partners', qw(time0 time1 time2 time3));
 our $ConversationData = {};
 
@@ -98,9 +103,10 @@ sub calculate
                $nick_from = get_main_nick ($nick_from);
                $nick_to   = get_main_nick ($nick_to);
 
-               next if (!$nick_from or !$nick_to or ($nick_from eq $nick_to));
+               next if (!$nick_from or !$nick_to);
+               next if ($nick_from eq $nick_to);
 
-               if ($ConversationData->{$nick_from}{$nick_to})
+               if (!defined ($ConversationData->{$nick_from}{$nick_to}))
                {
                        $ConversationData->{$nick_from}{$nick_to} =
                        {
@@ -158,6 +164,7 @@ sub output
 
        my @img = get_config ('horizontal_images');
 
+       # FIXME
        my @data = get_top (10);
        return (undef) unless (@data);
 
@@ -172,8 +179,8 @@ sub output
 
                for (my $i = 0; $i < 4; $i++)
                {
-                       $sum0 += $rec->{'users'}{$nick0}[$i];
-                       $sum1 += $rec->{'users'}{$nick1}[$i];
+                       $sum0 += $rec->{'nicks'}{$nick0}[$i];
+                       $sum1 += $rec->{'nicks'}{$nick1}[$i];
                }
 
                $max_num = $sum0 if ($max_num < $sum0);
@@ -208,7 +215,7 @@ EOF
                for (3, 2, 1, 0)
                {
                        my $i = $img[$_];
-                       my $w = int (0.5 + ($rec->{'users'}{$nick0}[$_] * $factor));
+                       my $w = int (0.5 + ($rec->{'nicks'}{$nick0}[$_] * $factor));
                        my $c = '';
                        $w ||= 1;
 
@@ -225,7 +232,7 @@ EOF
                for (0, 1, 2, 3)
                {
                        my $i = $img[$_];
-                       my $w = int (0.5 + ($rec->{'users'}{$nick1}[$_] * $factor));
+                       my $w = int (0.5 + ($rec->{'nicks'}{$nick1}[$_] * $factor));
                        my $c = '';
                        $w ||= 1;
 
@@ -241,3 +248,17 @@ EOF
 
        print $fh "</table>\n\n";
 }
+
+sub get_conversations
+{
+       my $nick = shift;
+
+       if (!defined ($ConversationData->{$nick}))
+       {
+               return ({});
+       }
+       else
+       {
+               return ($ConversationData->{$nick});
+       }
+}