Changeset 972

Show
Ignore:
Timestamp:
10/31/07 22:23:12 (7 years ago)
Author:
tokuhirom
Message:

lang/perl/mobirc: implemented keyword support, likes limechat ;-) idea from id:miyagawa++

Location:
lang/perl/mobirc/trunk/mobirc
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/mobirc/trunk/mobirc/Makefile.PL

    r943 r972  
    3131requires 'Storable'; 
    3232requires 'List::MoreUtils'; 
    33 requires 'Template::Provider::Encoding'; 
    34 requires 'HTTP::MobileAgent'; 
    3533 
    3634build_requires 'Test::More'; 
  • lang/perl/mobirc/trunk/mobirc/assets/tmpl/index.html

    r932 r972  
    22 
    33[%# < %][% IF keyword_recent.size() > 0 %] 
    4 <div class="keyword_recent_notice"><a href="[% docroot %]keyword-recent">Keyword([% keyword_recent.size() | html %])</a></div> 
     4<div class="keyword_recent_notice"><a href="/keyword-recent">Keyword([% keyword_recent.size() | html %])</a></div> 
    55[% END %] 
    66 
     
    5555<!-- main menu --> 
    5656 
    57 0 <a href="[% docroot %]" accesskey="0">refresh list</a><br /> 
     570 <a href="[% docroot %]" accesskey="0">refresh list</a><br> 
    5858[%- IF exists_recent_entries %] 
    5959* <a href="[% docroot %]recent" accesskey="*">recent</a><br /> 
     
    6161# <a href="[% docroot %]topics" accesskey="#">topics</a><br /> 
    6262<a href="[% docroot %]keyword">keyword</a><br /> 
     63<a href="/keyword">keyword</a><br /> 
    6364 
    6465<hr /> 
  • lang/perl/mobirc/trunk/mobirc/assets/tmpl/keyword.html

    r914 r972  
    77 
    88[% FOR row IN rows %] 
    9     [% render_line(row) %](<a href="[% docroot %]channels/[% row.channel | uri%]">[% row.channel | html %]</a>)<br /> 
     9    [% render_line(row) %]<br /> 
    1010[% END %] 
    1111 
  • lang/perl/mobirc/trunk/mobirc/config.yaml.sample

    r967 r972  
    33#   assets_dir: /usr/local/share/mobirc/assets 
    44#   pid_fname: /var/run/mobirc-sample.pid 
     5#   keywords: 
     6#     - tokuhirom 
     7#     - mogera 
    58#   keywords: 
    69#     - tokuhirom 
  • lang/perl/mobirc/trunk/mobirc/lib/Mobirc/ConfigLoader.pm

    r967 r972  
    121121    } 
    122122    else { 
    123         open my $fh, '<:utf8', $stuff or die $!; 
    124         $config = YAML::LoadFile($fh); 
    125         close $fh; 
     123        # TODO: local $YAML::Syck::ImplicitUnicode = 1; 
     124        $config = YAML::Syck::LoadFile($stuff); 
    126125    } 
    127126 
  • lang/perl/mobirc/trunk/mobirc/lib/Mobirc/Util.pm

    r971 r972  
    9090 
    9191    # update unread lines 
    92     $heap->{unread_lines}->{$canon_channel} = scalar grep { 
    93                                                   $_->{class} eq "public" || 
    94                                                   $_->{class} eq "notice" 
    95                                               } @{ $heap->{channel_recent}->{$canon_channel} }; 
     92    $heap->{unread_lines}->{$canon_channel} = scalar @{ $heap->{channel_recent}->{$canon_channel} }; 
    9693 
    9794    # update keyword buffer. 
    98     if ($row->{class} eq 'public') { 
    99         if (any { $row->{msg} =~ /$_/i } @{$config->{global}->{keywords} || []}) { 
    100             update_keyword_buffer($poe, $row); 
     95    if ($row->{class} eq 'notice' || $row->{class} eq 'public') { 
     96        # FIXME: shoud use local $YAML::Syck::ImplicitUnicode = 1; 
     97        if (any { index($row->{msg}, $_) != -1 } map { decode('utf8', $_) } @{$config->{global}->{keywords} || []}) { 
     98            push @{$heap->{keyword_buffer}}, $row; 
     99            if ( @{$heap->{keyword_buffer}} > $config->{httpd}->{lines}) { 
     100                shift @{ $heap->{keyword_buffer} }; # trash old one. 
     101            } 
     102 
     103            push @{$heap->{keyword_recent}}, $row; 
     104            if ( @{$heap->{keyword_recent}} > $config->{httpd}->{lines}) { 
     105                shift @{ $heap->{keyword_recent} }; # trash old one. 
     106            } 
    101107        } 
    102108    }