MailFolder
view release on metacpan or search on metacpan
Mail/Folder/NNTP.pm view on Meta::CPAN
sub get_message_file {
my $self = shift;
my $key = shift;
return undef;
}
=head2 get_header($msg_number)
If the particular header has never been retrieved then C<get_header>
retrieves the header for the given news article from the news server,
converts it into a C<Mail::Header> object and returns a reference to
the object.
If the header has already been retrieved in a prior call to
C<get_header>, then the cached entry is returned.
It returns C<undef> on failure.
=cut
sub get_header {
my $self = shift;
my $key = shift;
my $hdr = $self->SUPER::get_header($key);
return $hdr if defined($hdr);
# return undef unless ($self->SUPER::get_header($key));
# return $self->{Messages}{$key}{Header} if ($self->{Messages}{$key}{Header});
if (my $header = $self->{NNTP_Connection}->head($key)) {
my $href = new Mail::Header($header, Modify => 0) or return undef;
$self->cache_header($key, $href);
return $href;
}
return undef;
}
=head2 append_message($mref)
Not currently implemented. Returns C<0>.
=cut
sub append_message {
my $self = shift;
my $mref = shift;
return 0;
}
=head2 update_message($msg_number, $mref)
Not currently implemented. Returns C<0>.
=cut
sub update_message {
my $self = shift;
my $key = shift;
my $mref = shift;
return 0;
}
=head2 is_valid_folder_format($foldername)
Returns C<1> if the foldername either starts with the string
'C<news://>' or starts with the string 'C<#news:>' and the
C<NNTPSERVER> environment variable is set, otherwise return 0;
=cut
sub is_valid_folder_format($foldername) {
my $foldername = shift;
return (($foldername =~ /^news:\/\//) ||
(($foldername =~ /^\#news:/) && defined($ENV{NNTPSERVER})));
}
=head2 create($foldername)
Not currently implemented. Returns C<0>.
=cut
sub create {
my $self = shift;
my $foldername = shift;
return 0;
}
###############################################################################
sub _absorb_folder {
my $self = shift;
my $foldername = shift;
my $qty_new_articles = 0;
my @group = $self->{NNTP_Connection}->group($self->{NNTP_Newsgroup})
or return undef;
for my $msg ($group[1] .. $group[2]) {
next if defined($self->{Messages}{$msg});
$self->remember_message($msg);
$self->get_header($msg);
$qty_new_articles++;
}
return $qty_new_articles;
}
sub _extract_hostname {
my $foldername = shift;
return $1 if ($foldername =~ /^news:\/\/([^\/]+)\//);
return $ENV{NNTPSERVER} if ($foldername =~ /^\#news:/);
return undef;
( run in 0.687 second using v1.01-cache-2.11-cpan-39bf76dae61 )