# Note - don't use this code. See link above.
package PerlMonksChat;
use LWP::UserAgent;
use HTTP::Request;
use HTML::Entities;
sub new {
my $class=shift;
my $url=shift||'http://www.perlmonks.org/index.pl?node_id=2518';
my $self={};
$self->{url}=$url;
$self->{ua}=new LWP::UserAgent;
$self->{req}=new HTTP::Request('GET', $url);
$self->{cache}=[];
bless $self, $class;
return $self;
}
sub getalllines {
my $self=shift;
$ua=$self->{ua};
$req=$self->{req};
# print "(* grabbing *)\n";
my $response=$ua->request($req);
if ($response->is_success) {
my $c=$response->content;
# print $c;
if ($c =~ /<td.*?Chatterbox.*?<input[^>]*?>(.*?)<input/msi) {
my $chatline=$1;
$chatline=~s/[\n\r]//g;
# Split in lines and remove html tags
my @chatlines=grep { $_ }
map { s/<[^>]+?>//g; decode_entities($_); $_ }
split(/\s*<br>\s*/, $chatline);
return @chatlines;
}
}
else {
return ("error");
}
}
sub getnewlines {
my $self=shift;
my $cache=$self->{cache};
my @allines=$self->getalllines();
my @newcache;
# Don't use a regular cache, instead go back through them until we
# find the first one that is in the cache.
foreach (reverse @allines) {
last if ($cache->[0] && $_ eq $cache->[0]);
push @newcache, $_;
}
# Add the new lines to the cache
unshift @$cache, @newcache;
# Trim the cache to the last 50 lines
splice(@$cache,50);
return reverse @newcache;
}
1;
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|