--- keitairc-1.30 2006-08-05 11:10:47.716171088 +0900
+++ keitairc 2006-08-05 11:07:42.533604433 +0900
@@ -21,6 +21,9 @@
use HTTP::Response;
use AppConfig qw(:argcount);
+use Time::Local;
+use POSIX;
+
use constant true => 1;
use constant false => 0;
use constant cookie_ttl => 86400*3; # 3 days
@@ -73,6 +77,7 @@
irc_join => \&on_irc_join,
irc_part => \&on_irc_part,
irc_public => \&on_irc_public,
+ irc_msg => \&on_irc_private,
irc_notice => \&on_irc_notice,
irc_topic => \&on_irc_topic,
irc_332 => \&on_irc_topicraw,
@@ -145,6 +150,16 @@
}
################################################################
+# on_irc_private added by yoosee@init.org for !foo channel
+sub on_irc_private{
+ my ($kernel, $who, $channel, $msg) = @_[KERNEL, ARG0 .. ARG2];
+ $who =~ s/!.*//;
+ $channel = $channel->[0];
+ $msg = Jcode->new($msg, 'jis')->euc;
+ &add_message($channel, $who, $msg);
+}
+
+################################################################
sub on_irc_notice{
my ($kernel, $who, $channel, $msg) = @_[KERNEL, ARG0 .. ARG2];
$who =~ s/!.*//;
@@ -254,11 +269,27 @@
my $accesskey = 1;
my $channel;
+ my @t = localtime(time);
+ my $day0am = timelocal(0,0,0,$t[3],$t[4],$t[5]);
+
for my $canon_channel (sort {
$mtime{$b} <=> $mtime{$a};
}(keys(%channel_name))){
$channel = $channel_name{$canon_channel};
+ # added by yoosee for displaying date
+ if(0 < $day0am && $mtime{$canon_channel} < $day0am) {
+ while($mtime{$canon_channel} < $day0am) {
+ $day0am -= 24*60*60;
+ }
+ if($day0am >=0) {
+ $buf .= strftime("-- %Y.%m.%d --
", localtime($day0am));
+ } else {
+ $buf .= "-- NEVER --
";
+ }
+ }
+ # end
+
$buf .= &label($accesskey);
if($accesskey < 10){
@@ -283,6 +314,9 @@
uri_escape($channel),
$unread_lines{$canon_channel});
}
+ # display the time of last speak on the channel
+ $buf .= strftime(" (%H:%M)", localtime($mtime{$canon_channel})) if $mtime{$canon_channel};
+
$buf .= '
';
}