https://git.spwbk.site/swatson/eyebrow/raw/master/eyebrow
___________________________________
#!/usr/bin/perl

use strict;
use warnings;

my $tlUrl = "https://the-eye.eu/public/";
my %currentPageRef;
my $pageNest;
my $curl = `which curl`;
chomp $curl;

if ( $curl eq "" || ! defined $curl ) {
       print "No curl, exiting...\n";
       exit 1;
}

sub dumpPage {
       my $page = shift;
       my @pageContent = split("\n", `$curl -s $page`);
       if ($page =~ m/public\/(.*)$/) {
               $pageNest = $1;
       }
       if ( $pageNest =~ m/\.\.\/$/ ) {
               # Need to lop off old nested dir
               $pageNest =~ s/\/([^\/]*\/\.\.\/)$//g;
       }
       if ( $pageNest !~ m/\/$/ ) {
               $pageNest .= "/";
       }
       my $count = 0;
       foreach my $line (@pageContent) {
               if ($line =~ m/text\/javascript/ || $line =~ m/\/div/ || $line =~ m/\/i/ || $line =~ m/img\ src/ || $line =~ m/\/script/) {
                       next;
               }
               #if ($line =~ m/\"(.*\/)\"\>(.*)\</) {
               if ($line =~ m/\"(.*)\"\>(.*)\</) {
                       my $link = $1;
                       $link = $pageNest . $link;
                       my $name = $2;
                       if ($name =~ m/&gt;/) {
                               $name =~ s/&gt;/>/g;
                       }
                       print "$count : $name\n";
                       $currentPageRef{$count} = $link;
                       $count++;
               }
       }
}

sub pageReturn {
       my $choice = shift;
       my $newPage = $tlUrl . $currentPageRef{$choice};
       return $newPage;
}

sub download {
       my $link = shift;
       system("wget $link");
}

sub printHelp {

       my $help = <<EOF
* Basic usage:
Type the number that corresponds with the link you'd like to browse to to browse there.
( Beware selecting a binary file will dump the output to your term )

* Commands:

** top
Return to the docroot of browseable files ( /public/ )

** download
Type 'download' followed by the selection number to download the file

** search
Type 'search' followed by a term to search the current dir tree
If doing a multiword search, wrap the query in quotes like "search terms here"

** file
Type file followed by the selection number to get the full link path
EOF
;
       print "$help";

}

if ( defined $ARGV[0] && $ARGV[0] =~ /h/ ) {
       printHelp();
       exit 0;
}

print "The Eye CLI Browser\n";
dumpPage($tlUrl);
while () {
       print "Enter a selection: ";
       my $input = <STDIN>;
       chomp $input;
       if ($input =~ m/download/) {
               my @inputs = split(" ", $input);
               my $dlLink = $currentPageRef{$inputs[1]};
               $dlLink = $tlUrl . $dlLink;
               download($dlLink);
               next;
       }
       if ($input =~ m/file/) {
               my @inputs = split(" ", $input);
               my $queryLink = $currentPageRef{$inputs[1]};
               $queryLink = $tlUrl . $queryLink;
               print "File is: $queryLink\n";
               next;
       }
       if ($input =~ m/quit/||$input =~ /exit/) {
               print "Exiting..\n";
               exit 0;
       }
       if ($input =~ m/search/) {
               my @inputs = split(" ", $input);
               shift(@inputs);
               my $searchTerm = join(" ", @inputs);
               #my $searchTerm = $inputs[1];
               if ( $searchTerm =~ m/\"(.*)\"/ ) {
                       $searchTerm = $1;
                       $searchTerm =~ s/\ /%20/g;
               }
               foreach my $key ( keys %currentPageRef ) {
                       if ( $currentPageRef{$key} =~ m/$searchTerm/i ) {
                               my $printLine = $currentPageRef{$key};
                               $printLine =~ s/%20/\ /g;
                               $printLine =~ s/%2C/,/g;
                               $printLine =~ s/%26/&/g;
                               print "$key : $printLine\n";
                       }
               }
               next;
       }
       my $newPage;
       if ($input eq "top") {
               $newPage = $tlUrl;
       } else {
               $newPage = pageReturn($input);
               #print "Your next request is: $newPage\n";

       }
       %currentPageRef = ();
       dumpPage($newPage);
}