/usr/share/perl5/WWW/Topica/Reply.pm is in libwww-topica-perl 0.6-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | package WWW::Topica::Reply;
use strict;
=pod
=head1 NAME
WWW::Topica::Index - parse a single Topic mailing list index
=head1 SYNOPSIS
my $index = WWW::Topic::Index->new($index_html);
foreach my $message_id ($index->message_ids) {
# the mail has some information and also provides a link to the reply ...
my $mail = WWW::Topica::Mail->new($topica->fetch_mail($mess_id), $mess_id);
# which has other information (like the un-htmled mail and the email address) ...
my $reply = WWW::Topica::Reply->new($topica->fetch_reply($mail->id, $mail->eto), $mail->id, $mail->eto);
}
print "Next offset is ".$index->next."\n";
print "Previous offset is ".$index->prev."\n";
=head1 DESCRIPTION
Used to parse a single reply page from Topica.com's mailing list indexes.
Reply pages have the body of the email (albeit quoted) and potentially a full email address.
=head1 METHODS
=cut
=head2 new <page html> <message id> <eto>
Takes the html of the page, the eto and the message-id and parses the html.
=cut
sub new {
my ($class, $html, $id, $eto) = @_;
my $self = { id=>$id, eto=>$eto };
bless $self, $class;
$self->parse($html);
return $self;
}
=head2 parse <html>
Parse the html to get the subject, email address and body of the email.
=cut
sub parse {
my ($self,$html) = @_;
(undef, $self->{email}) = ($html =~ m!<INPUT TYPE\="hidden" NAME\="eto"(.+?)SIZE\="-2">(.+?)</FONT>!s);
($self->{subject}) = ($html =~ m!NAME\="subject" SIZE\=28 VALUE\="(.+?)"!s);
($self->{body}) = ($html =~ m!<TEXTAREA NAME\="body" ROWS\=13 COLS\=70 WRAP\=AUTO>(.+?)</TEXTAREA>!s);
return unless $self->{body};
# the body is quoted as if ready to reply. So we need to clean that up.
$self->{body} =~ s!^(.+?) wrote:!!sg;
$self->{body} =~ s!^>\s?!!msg;
}
=head2 id
Get the message id
=cut
sub id {
return $_[0]->{id};
}
=head2 eto
Get the message eto
=cut
sub eto {
return $_[0]->{eto};
}
=head2 email
Get the email address parsed out.
=cut
sub email {
my $email = $_[0]->{email} || "";
return $email;
}
=head2 subject
Get the email subject parsed out.
=cut
sub subject {
my $subject = $_[0]->{subject} || "";
return $subject;
}
=head2 body
Get the email body parsed out.
=cut
sub body {
return $_[0]->{body};
}
1;
=head1 AUTHOR
Simon Wistow <simon@thegestalt.org>
=head1 COPYRIGHT
Copyright (c) 2004, Simon Wistow
=cut
|