# $Id: UploadedTo 11716 2010-07-27 20:18:28Z sparky $
# Get::UploadedTo - File getter plugin for rsget.pl
#
# 2009-2010 (c) Przemysław Iskra <sparky@pld-linux.org>
#		This program is free software,
# you may distribute it under GPL v2 or newer.

name: UploadedTo
short: UT
web: "http://uploaded.to/"
tos: "http://uploaded.to/agb"
uri: qr{uploaded\.to/(?:file/|\?id=)[0-9a-z]{6}}
uri: qr{ul\.to/[0-9a-z]{6}}
status: OK 2010-07-13

unify:
	return "http://uploaded.to/file/$1" if
		m{ul\.to/([0-9a-z]{6})} or m{uploaded\.to/(?:file/|\?id=)([0-9a-z]{6})};

start:
	GET( $-{_uri} );

	RESTART( ( $1 > 0 ? $1 * 60 : irand 60 ), "free limit reached" )
		if /Or wait (-?\d+) minutes/;

	if ( $-{_referer} =~ m#/\?view=# ) {
		ERROR( "file not found" ) if $-{_referer} =~ /fileremoved/;
		ERROR( "unknown error" );
	}

	! m{<title>(.*?) \.\.\. at uploaded\.to - };
	my $name = $1;
	if ( length $name >= 60 ) {
		! m{<tr><td style="padding-left:4px;">Filename: &nbsp;</td><td><b>\s+(.*?)\s+</b></td></tr>}s;
		$name = $1;
		$name =~ s/\.\.\.$/\0/;
		! m{<tr><td style="padding-left:4px;">Filetype: &nbsp;</td><td>(.*?)</td></tr>};
		$name .= $1;
	}
	! m{<tr><td style="padding-left:4px;">Filesize: &nbsp;</td><td>\s*($STDSIZE)\s*</td></tr>}o;
	INFO( name => $name, asize => $1 );

	! $-{form} = $self->form( name => "download_form" );
	! $-{form}->select( download_submit => 0 );

	! m#var secs = (\d+); // Wartezeit#;
	WAIT( $1, "starting download" );

	CLICK_DOWNLOAD( $-{form}->post() );

# vim: filetype=perl:ts=4:sw=4
