Added tor support!
You have to have tor running in 127.0.0.1:9050, if you have it on another port please change line 81 I haven't tested this a lot, it seems to work with https://lainsafe.duckdns.org but does not work with https://lainsafe.delegao.moe (thanks cloudflare!) TODO: check if was possible to connect to the proxy
This commit is contained in:
parent
730e8edbfe
commit
c645b36fb2
1 changed files with 41 additions and 31 deletions
72
lainsafecli
72
lainsafecli
|
@ -15,27 +15,30 @@
|
|||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with lainsafe. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
|
||||
use Getopt::Long;
|
||||
use LWP::UserAgent;
|
||||
|
||||
my $ua = LWP::UserAgent->new;
|
||||
use strict;
|
||||
use warnings;
|
||||
# variables
|
||||
my $help;
|
||||
my $tor;
|
||||
my $DEFAULT_SERVER;
|
||||
my $file;
|
||||
my $DISPLAY_ASCII;
|
||||
my $STORE_LINKS;
|
||||
my $LINKS_FILE;
|
||||
my $tor_enabled = 1;
|
||||
# Default options, if no specified.
|
||||
$DEFAULT_SERVER = "https://lainsafe.delegao.moe";
|
||||
$DISPLAY_ASCII = 1; # 0 if you don't want the ascii
|
||||
$STORE_LINKS = 1; # 0 if you don't want to keep track of your upload
|
||||
$STORE_LINKS = 1; # 0 if you don't want to keep track of your upload
|
||||
$LINKS_FILE = "$ENV{HOME}/.cache/lainsafelinks";
|
||||
|
||||
eval "use LWP::Protocol::socks; 1" or $tor_enabled = 0;
|
||||
my $ASCII_ART = <<'EOF';
|
||||
_..-- ----- --.._
|
||||
,-'' `-.
|
||||
|
@ -57,27 +60,36 @@ my $ASCII_ART = <<'EOF';
|
|||
v,- `;._ _.; | |
|
||||
`'`\ |-_ -^'^'| |
|
||||
------ |/
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
# Subs
|
||||
|
||||
sub help
|
||||
{
|
||||
{
|
||||
print "lainsafecli, a command line interface for lainsafe.\n";
|
||||
print "USAGE: lainsafecli [--server] FILE\n\n";
|
||||
print "USAGE: lainsafecli [--tor] [--server] FILE\n\n";
|
||||
print "if --server not given, $DEFAULT_SERVER is used.\n";
|
||||
|
||||
print "--tor is available\n" if $tor_enabled;
|
||||
print "--tor is unavailable\n" unless $tor_enabled;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
sub enable_tor
|
||||
{
|
||||
die "Tor is unavaiable, install LWP::Protocols::socks\n" unless $tor_enabled;
|
||||
my $checker = $ua->proxy([qw(http https)] => 'socks://localhost:9050');
|
||||
}
|
||||
|
||||
## PROGRAM
|
||||
my $ua = LWP::UserAgent->new;
|
||||
|
||||
GetOptions ("server=s" => \$DEFAULT_SERVER,
|
||||
"help|" => \$help);
|
||||
"help|" => \$help,
|
||||
"tor"=> \$tor
|
||||
);
|
||||
|
||||
&help if $help || not defined $ARGV[0];
|
||||
|
||||
&enable_tor if $tor;
|
||||
|
||||
# check if file is given
|
||||
|
||||
|
@ -93,32 +105,30 @@ $ua->agent("Mozilla/5.0 (X11; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
|
|||
|
||||
# check if server is running lainsafe
|
||||
|
||||
if(!$ua->get($url_to_upload)->is_success)
|
||||
{
|
||||
print "$url_to_upload is not running lainsafe.\n";
|
||||
exit;
|
||||
if (!$ua->get($url_to_upload)->is_success) {
|
||||
print "$url_to_upload is not running lainsafe.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$req = $ua->post($url_to_upload,
|
||||
Content_Type => 'form-data',
|
||||
Content => [
|
||||
"file" => [ $file ],
|
||||
],
|
||||
);
|
||||
Content_Type => 'form-data',
|
||||
Content => [
|
||||
"file" => [ $file ],
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
print $ASCII_ART if $DISPLAY_ASCII;
|
||||
if($req->{_content} =~ /instance/) # If someone knows how to do it another way, I'm all ears
|
||||
{
|
||||
print $req->{_content} . "\n";
|
||||
exit;
|
||||
}
|
||||
if ($req->{_content} =~ /instance/) # If someone knows how to do it another way, I'm all ears
|
||||
{
|
||||
print $req->{_content} . "\n";
|
||||
exit;
|
||||
}
|
||||
print $DEFAULT_SERVER . "/" . $req->{_content} . "\n";
|
||||
|
||||
if($STORE_LINKS)
|
||||
{
|
||||
open FILE,'>>',$LINKS_FILE or die $!;
|
||||
print FILE $DEFAULT_SERVER . "/" . $req->{_content} . " $file" ."\n";
|
||||
close FILE;
|
||||
}
|
||||
if ($STORE_LINKS) {
|
||||
open FILE,'>>',$LINKS_FILE or die $!;
|
||||
print FILE $DEFAULT_SERVER . "/" . $req->{_content} . " $file" ."\n";
|
||||
close FILE;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue