so, to avoid any issues with copyright, we'll call this a command line browser for tvtome, in the spirit of lynx, except dedicated to tvtome:
DISCLAIMER: Not fully tested, but works for me -----------------8<------------------------------------------ package TVTome; use strict; use Carp; use LWP::Simple; use HTML::TokeParser; sub new { my $pkg = shift; my $self = bless { }, $pkg; return $self; } sub _findResults { my $self = shift; my $content = shift; my $parser = HTML::TokeParser->new(\$content); my ($tag, @list); while ($tag = $parser->get_token()) { if ($parser->get_text =~ 'Show search for') { while ($tag = $parser->get_tag()){ if ($tag->[0] eq 'a') { my $startcrap = '<a href="'; my $endcrap = '">'; $tag->[3] =~ s/$startcrap//g; $tag->[3] =~ s/$endcrap//g; push @list, {show => $parser->get_text(), url=>$tag->[3]}; } last if ($parser->get_text =~ /Here are some hints/); } } } return [EMAIL PROTECTED]; } sub _getEPs { my $self = shift; my $content = shift; my $parser = HTML::TokeParser->new(\$content); my ($tag, @list); while ($tag = $parser->get_token()) { if ($parser->get_text =~ 'Season') { while ($tag = $parser->get_tag('tr')){ # Episode number $parser->get_tag('td'); my $epno = $parser->get_text; $parser->get_tag('td'); my $no = $parser->get_text; $parser->get_tag('td'); my $seasonep = $parser->get_text; $parser->get_tag('td'); my $airdate = $parser->get_text; my $tag = $parser->get_tag('a'); my $startcrap = '<a href="'; my $endcrap = '">'; $tag->[3] =~ s/$startcrap//g; $tag->[3] =~ s/$endcrap//g; my $epname = $parser->get_text; my $epurl = $tag->[3]; push @list, { epno => $epno, no => $no, seasonep => $seasonep, airdate => $airdate, epname => $epname, epurl => $epurl, } } } } return [EMAIL PROTECTED]; } sub _getSynopsis { my $self = shift; my $content = shift; my $parser = HTML::TokeParser->new(\$content); my ($tag, $synopsis); while ($tag = $parser->get_token()) { if ($parser->get_text =~ 'Synopsis') { $parser->get_tag('tr'); $parser->get_tag(); $synopsis .=$parser->get_text(); while ($tag->[0] ne 'td') { $tag = $parser->get_tag(); my $text = $parser->get_text(); $synopsis .= $text if (defined $text && length($text) > 0); } } } return \$synopsis; } sub find { my $self = shift; my %args = @_; croak "Must supply show!" unless (defined $args{show}); $args{show}=~s/\s/%20/g; my $url = 'http://www.tvtome.com/tvtome/servlet/Search?searchType=show&searchString='.$args{show}; my $content = get($url) or carp "can't connect to server"; return $self->_findResults($content); } sub getEPList { my $self = shift; my %args = @_; croak "Must supply url!" unless (defined $args{url}); my $url = 'http://www.tvtome.com/'.$args{url}.'eplist.html'; my $content = get($url) or carp "can't connect to server"; return $self->_getEPs($content); } sub getSynopsis { my $self = shift; my %args = @_; croak "Must supply url!" unless (defined $args{url}); my $url = 'http://www.tvtome.com/'.$args{url}; my $content = get($url) or carp "can't connect to server"; return $self->_getSynopsis($content); } 1 -----------------8<------------------------------------------ On Fri, 10 Dec 2004 10:26:34 +1100, Alistair Osborne <[EMAIL PROTECTED]> wrote: > Check out the Meedio forums, I believe they have one there for Meedio > that uses TvTome. > > > >
_______________________________________________ mythtv-users mailing list [EMAIL PROTECTED] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users