52 |
} |
} |
53 |
|
|
54 |
for (@module) { |
for (@module) { |
55 |
vprint $_; |
dprint $_; |
56 |
my $module = "Suikawari::$_"; |
my $module = "Suikawari::$_"; |
57 |
require "$_.sb"; |
load_module ($_); |
58 |
my $b = new Bunshin; |
my $b = new Bunshin; |
59 |
my @msgreg = $module->msg_regex; |
my @msgreg = $module->msg_regex; |
60 |
my @metareg = $module->meta_regex; |
my @metareg = $module->meta_regex; |
61 |
$b->set_regex (message => shift (@msgreg)); |
$b->set_regex (message => shift (@msgreg)); |
62 |
$b->set_elements (message => @msgreg); |
$b->set_elements (message => @msgreg); |
63 |
$b->set_regex (metainfo => shift (@metareg)); |
$b->set_regex (metainfo => shift (@metareg)) if @metareg > 0; |
64 |
$b->set_elements (metainfo => @metareg); |
$b->set_elements (metainfo => @metareg) if @metareg > 0; |
65 |
my %face = $module->face; |
my %face = $module->face; |
66 |
for (keys %face) { |
for (keys %face) { |
67 |
$b->default_parameter ($_ => $face{$_}); |
$b->default_parameter ($_ => $face{$_}); |
78 |
my $t = $_->header->field ('date'); |
my $t = $_->header->field ('date'); |
79 |
next if $latest_time >= $t; |
next if $latest_time >= $t; |
80 |
$nntp = open_nntp () unless ref $nntp; |
$nntp = open_nntp () unless ref $nntp; |
81 |
dprint 'Date: '.$t; |
vprint 'Date: '.$t; |
82 |
|
#dprint 'Subject: '.$_->header->field ('subject'); |
83 |
send_msg ($_ => $nntp); |
send_msg ($_ => $nntp); |
84 |
$time = $t if $t > $time || !$time; |
$time = $t if $t > $time || !$time; |
85 |
} |
} |
100 |
my $r = $nntp->post (@m); |
my $r = $nntp->post (@m); |
101 |
vprint ${*$nntp}{'net_cmd_code'}, @{${*$nntp}{'net_cmd_resp'}}; |
vprint ${*$nntp}{'net_cmd_code'}, @{${*$nntp}{'net_cmd_resp'}}; |
102 |
unless ($r) { |
unless ($r) { |
103 |
close_nntp ($nntp); |
#close_nntp ($nntp); |
104 |
die; |
#die; |
105 |
|
vprint "send_msg: Can't post the message. Skiped"; |
106 |
} |
} |
107 |
} |
} |
108 |
|
|
121 |
vprint ${*$nntp}{'net_cmd_code'}, @{${*$nntp}{'net_cmd_resp'}}; |
vprint ${*$nntp}{'net_cmd_code'}, @{${*$nntp}{'net_cmd_resp'}}; |
122 |
} |
} |
123 |
|
|
124 |
|
sub load_module ($) { |
125 |
|
no strict 'refs'; |
126 |
|
my $m = shift; |
127 |
|
dprint qq{require "$m.sb"}; |
128 |
|
require "$m.sb"; |
129 |
|
if (defined &{ "Suikawari::${m}::require" }) { |
130 |
|
for (&{ "Suikawari::${m}::require" }) { |
131 |
|
load_module ($_) unless ${ "Suikawari::${_}::VERSION" }; |
132 |
|
push @{ "Suikawari::${m}::ISA" }, "Suikawari::${_}"; |
133 |
|
} |
134 |
|
} |
135 |
|
} |
136 |
|
|
137 |
sub dprint (@) { |
sub dprint (@) { |
138 |
print shift, ' ' if $Bunshin::DEBUG && @_ > 1; |
print shift, ' ' if $Bunshin::DEBUG && @_ > 1; |
139 |
print map {/\n$/s? $_: $_."\n"} @_ if $Bunshin::DEBUG; |
print map {/\n$/s? $_: $_."\n"} @_ if $Bunshin::DEBUG; |