# $Id: FileSonic 12227 2011-04-12 23:14:24Z sparky $
# Get::FileSonic - Premium file getter plugin for rsget.pl
#
# 2011 (c) Przemysław Iskra <sparky@pld-linux.org>
#		This program is free software,
# you may distribute it under GPL v2 or newer.

name: FileSonic
short: *FS
web: "http://www.filesonic.com/"
tos: "http://www.filesonic.com/terms-and-conditions"
uri: qr{filesonic\.com/file/\d+}
uri: qr{(?:www\d+\.)?sharingmatrix\.com/file/\d+}
cookie: fsc.p
slots: max
status: OK 2011-04-13

pre:
	my ($user, $pass);
	if ( my $s = setting("premium_filesonic") ) {
		($user, $pass) = ($s =~ /^(.+?):(.+)/) or die "Premium user:pass incorrect\n";
	} else {
		die "Premium user:pass not given\n";
	}

unify:
	return "http://www.filesonic.com/file/$1"
		if m{/file/(\d+)};

start:
	GET( $-{_uri} );

	ERROR( "file not found: $1" )
		if m#<div class="section CL1">.*?<p>\s*(.*?)\s*</p>#s
			or m#<div id="downloadFileInfo" class="section CL2">\s*<h2><span>[^<]*?</span></h2>\s*<p>\s*(.*?)\s*</p>#s;
	! m#<title>Download (.*?) for free on Filesonic.com</title>#;
	my $fn = de_ml( $1 );
	! m#<span class="size">($STDSIZE)</span>#;
	INFO( name => $fn, asize => $1 );

	GET( "/user/login", post => { email => $user, redirect => "/", password => $pass } );

	DOWNLOAD( $-{_uri} );

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