From e02ecfc03da1fc1a826b8a4d2dd685296e077a16 Mon Sep 17 00:00:00 2001 From: Maximilian Rehkopf Date: Thu, 14 Mar 2013 00:02:10 +0100 Subject: [PATCH] Add MotherlessGrabber --- videosite/MotherlessGrabber.pm | 87 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 videosite/MotherlessGrabber.pm diff --git a/videosite/MotherlessGrabber.pm b/videosite/MotherlessGrabber.pm new file mode 100644 index 0000000..bbbe1a8 --- /dev/null +++ b/videosite/MotherlessGrabber.pm @@ -0,0 +1,87 @@ +# (c) 2008 by Ralf Ertzinger +# licensed under GNU GPL v2 +# +# Grabber for motherless.com +# +# written by Maximilian Rehkopf + +package videosite::MotherlessGrabber; + +use videosite::GrabberBase; +@ISA = qw(videosite::GrabberBase); + +use HTML::TokeParser; +use Data::Dumper; + +use strict; + +sub new { + my $class = shift; + my $self = $class->SUPER::new(); + + $self->{'NAME'} = 'motherless'; + $self->{_SELFTESTURL} = 'http://motherless.com/4976432'; + $self->{_SELFTESTTITLE} = 'Teen masturbation in shower'; + $self->{'PATTERNS'} = ['(http://(?:[-a-zA-Z0-9_.]+\.)*motherless.com/([a-zA-Z0-9]+))']; + + bless($self, $class); + $self->_prepare_parameters(); + + return $self; +} + +sub _parse { + my $self = shift; + my $url = shift; + my $pattern = shift; + my $ua = $self->ua(); + my $content; + my $metadata = {}; + my $p; + my $r; + my $tag; + my $dir; + my $hash; + + $url =~ m|$pattern|; + $url = $1; + + $metadata->{'URL'} = $url; + $metadata->{'ID'} = $2; + $metadata->{'TYPE'} = 'video'; + $metadata->{'SOURCE'} = $self->{'NAME'}; + $metadata->{'TITLE'} = undef; + $metadata->{'DLURL'} = undef; + + unless(defined($content = $self->simple_get(sprintf("http://motherless.com/%s", $2), $ua))) { + $self->error('Could not download page'); + return undef; + } + + $p = HTML::TokeParser->new(\$content); + + # Look for the title + while ($tag = $p->get_tag('title', 'script')) { + if ('title' eq $tag->[0]) { + my $t = $p->get_text(); + $metadata->{'TITLE'} = $t; + $metadata->{'TITLE'} =~ s/.* : *//; + } elsif ('script' eq $tag->[0]) { + my $t = $p->get_text(); + + if ($t =~ m|__fileurl = '(.*)';|) { + $self->debug("Found fileurl: %s", $1); + $metadata->{'DLURL'} = $1; + } + } + } + + unless(defined($metadata->{'DLURL'}) && defined($metadata->{'TITLE'})) { + $self->error('Could not extract download URL and title'); + return undef; + } + + return $metadata; +} + +1; -- 1.8.3.1