summaryrefslogtreecommitdiffstats
path: root/.local/bin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-x.local/bin/linkview68
1 files changed, 30 insertions, 38 deletions
diff --git a/.local/bin/linkview b/.local/bin/linkview
index cd9d90e..772ae6e 100755
--- a/.local/bin/linkview
+++ b/.local/bin/linkview
@@ -8,13 +8,9 @@ use File::HomeDir qw(home);
use File::Basename qw(basename fileparse);
use Cwd qw(cwd);
use Env qw(BROWSER TERMINAL);
-use Term::ReadKey;
use Capture::Tiny qw(capture);
use POSIX qw(setsid);
use Data::UUID;
-use Hash::Ordered;
-use feature qw(switch);
-no warnings qw(experimental::smartmatch);
my $menu = "fzf";
@@ -33,15 +29,26 @@ use constant {
HOSTNAME => (split /\./, hostname())[0]
};
+my @keys = (
+ 'vid',
+ 'img',
+ 'dl',
+ 'audio',
+ 'pdf',
+ 'w3m',
+ 'web',
+ 'clip',
+);
+
my %func_list = (
- '1 vid' => \&vid,
- '2 img' => \&img_pdf,
- '3 dl' => \&dl,
- '4 audio' => \&audio,
- '5 pdf' => \&img_pdf,
- '6 w3m' => \&w3m,
- '7 browser' => \&browser,
- '8 clip' => \&clip,
+ $keys[0] => \&vid,
+ $keys[1] => \&img_pdf,
+ $keys[2] => \&dl,
+ $keys[3] => \&audio,
+ $keys[4] => \&img_pdf,
+ $keys[5] => \&w3m,
+ $keys[6] => \&web,
+ $keys[7] => \&clip,
);
use constant QUAL_LIST => "" .
@@ -135,13 +142,10 @@ sub img_pdf
}
$file_name = $url;
$file_name =~ s/.+\///g;
- given (HOSTNAME) {
- when(["mother", "po-rbo"]) {
- system(CURL_PATH, "-fsSLO", $url);
- }
- when("mars") {
- system(FETCH_PATH, '-q', $url);
- }
+ if (HOSTNAME eq "mother" or "po-rbo") {
+ system(CURL_PATH, "-fsSLO", $url);
+ } elsif (HOSTNAME == "mars") {
+ system(FETCH_PATH, "-q", $url);
}
my ($name, undef, $ext) = fileparse($file_name, qr/\.[^.]*/);
$ug = Data::UUID->new;
@@ -317,7 +321,7 @@ sub dl
if (HOSTNAME eq "mother" or "po-rbo") {
system(CURL_PATH, "-fsSLO", $url);
} elsif (HOSTNAME == "mars") {
- system(FETCH_PATH, $url);
+ system(FETCH_PATH, "-q", $url);
}
};
if ($ret == 0) {
@@ -413,7 +417,7 @@ sub w3m
return;
}
-sub browser
+sub web
{
my ($url) = @_;
my $pid;
@@ -497,17 +501,11 @@ sub get_yt_vid_name
sub fzf_prompt
{
- my ($url, $mapping_ref) = @_;
+ my ($url) = @_;
my $answer;
- my @sorted_keys;
- my @stripped_keys;
my $list;
- @sorted_keys = sort keys %func_list;
- @stripped_keys = map { substr($_, 2) } @sorted_keys;
- %$mapping_ref = ();
- @{$mapping_ref}{@stripped_keys} = @sorted_keys;
- $list = join("\n", @stripped_keys);
+ $list = join("\n", @keys);
$answer = `printf "$list\n" | $menu --prompt '$url > '`;
chomp $answer;
return $answer;
@@ -516,21 +514,15 @@ sub fzf_prompt
sub linkview
{
my $answer;
- my $og_key;
- my %mapping;
if (@ARGV == 0 || $ARGV[0] eq '') {
print STDERR "linkview: no URL\n";
exit 1;
}
- $answer = fzf_prompt($ARGV[0], \%mapping);
-
- return unless exists $mapping{$answer};
- $og_key = $mapping{$answer};
-
- return unless exists $func_list{$og_key};
- $func_list{$og_key}->($ARGV[0], $ARGV[1], $og_key);
+ $answer = fzf_prompt($ARGV[0]);
+ return unless exists $func_list{$answer};
+ $func_list{$answer}->($ARGV[0], $ARGV[1], $answer);
return;
}