112 |
# confess "fatal error"; |
# confess "fatal error"; |
113 |
#}; |
#}; |
114 |
|
|
|
open(STDOUT, '>', $log_path) || warn "can't redirect log to $log_path: $!"; |
|
|
|
|
115 |
sub _log { |
sub _log { |
116 |
print strftime($TIMESTAMP,localtime()) . ' ' . join(" ",@_) . $/; |
print strftime($TIMESTAMP,localtime()) . ' ' . join(" ",map { ref($_) ? dump( $_ ) : $_ } @_) . $/; |
117 |
} |
} |
118 |
|
|
119 |
|
open(STDOUT, '>', $log_path) && warn "log to $log_path: $!\n"; |
120 |
|
|
121 |
# HTML formatters |
# HTML formatters |
122 |
|
|
123 |
my %escape = ('<'=>'<', '>'=>'>', '&'=>'&', '"'=>'"'); |
my %escape = ('<'=>'<', '>'=>'>', '&'=>'&', '"'=>'"'); |
1048 |
$_[KERNEL]->post( $irc => connect => {} ); |
$_[KERNEL]->post( $irc => connect => {} ); |
1049 |
}, |
}, |
1050 |
irc_notice => sub { |
irc_notice => sub { |
1051 |
_log "<< notice",$_[ARG0],dump($_[ARG1]); |
_log "<< notice from ", $_[ARG0], $_[ARG1], $_[ARG2]; |
1052 |
if ( $_[ARG0] =~ m!/msg\s+NickServ\s+IDENTIFY!i ) { |
my $m = $_[ARG2]; |
1053 |
_log ">> IDENTIFY"; |
if ( $m =~ m!/msg.*(NickServ).*(IDENTIFY)!i ) { |
1054 |
|
_log ">> suggested to $1 $2"; |
1055 |
|
$_[KERNEL]->post( $irc => privmsg => $1, "$2 $NICK" ); |
1056 |
|
} elsif ( $m =~ m!\Q$NICK\E.*registered!i ) { |
1057 |
|
_log ">> registreted, so IDENTIFY"; |
1058 |
$_[KERNEL]->post( $irc => privmsg => 'nickserv', "IDENTIFY $NICK" ); |
$_[KERNEL]->post( $irc => privmsg => 'nickserv', "IDENTIFY $NICK" ); |
1059 |
|
} else { |
1060 |
|
warn "## ignore $m\n"; |
1061 |
} |
} |
1062 |
}, |
}, |
1063 |
irc_snotice => sub { |
irc_snotice => sub { |
1064 |
_log "<< snotice",$_[ARG0]; |
_log "<< snotice", $_[ARG0]; #dump( $_[ARG0],$_[ARG1], $_[ARG2] ); |
1065 |
if ( $_[ARG0] =~ m!/(QUOTE)\s+(PASS\s+\d+)!i ) { |
if ( $_[ARG0] =~ m!/(QUOTE)\s+(PASS\s+\d+)!i ) { |
1066 |
warn ">> $1 | $2\n"; |
warn ">> $1 | $2\n"; |
1067 |
$_[KERNEL]->post( $irc => lc($1) => $2); |
$_[KERNEL]->post( $irc => lc($1) => $2); |