On Sun, 16 Jun 2024 13:07:38 +0200
<[email protected]> wrote:
> On Sat, 15 Jun 2024 22:16:12 +0200
> Rodrigo Arias <[email protected]> wrote:
>
> > Thanks! I'm interested in how you are using a script to match
> > several URLs and do some actions automatically, not sure if you
> > would be interesting in sharing it (or some parts).
>
>
> Sure, here is a very basic example which mainly just goes by the
> extension in the URL to handle some common filetypes. I suppose that
> for more complex links in which the filetype can't be parsed like
> this, you could curl the link into the 'file' command to determine
> the type: curl -s "https://example.com/filename" | file -
> But that's overkill for my needs.
> There are many ways to improve on this, but hopefully it at
> least illustrates the concept.
Just for fun, here is a version which uses curl instead of wget. This
has the advantage that curl can output the Content-Type from the
server, and we can use this to perform actions instead of relying on
the file extension. Another advantage is that curl can tell us the
output filename, so we don't have to mess around to get that anymore.
---------------------------------------------------------------------
#!/bin/sh
# Example Dillo URL action handler script using curl
# handlers
youtube="mpv"
audio="mpv"
video="mpv"
image="nsxiv"
pdf="mupdf"
# temporary file location
tmp_dir="/tmp/dillo"
# youtube. checks for "outu" string in URL
if echo $1 | grep outu
then $youtube "$1"
else
# audio. uses file extension from URL
if echo $1 | tail -c -5 | grep -e mp3 -e ogg
then $audio "$1"
else
# video. uses file extension from URL
if echo $1 | tail -c -5 | grep -e mkv -e mp4 -e webm
then $video "$1"
else
# use curl to download the file, and save Content-Type and filename
if [ ! -d $tmp_dir ] ; then mkdir $tmp_dir ; fi
curl -s --write-out "%{content_type} \n%{filename_effective}" \
--remote-name --output-dir "$tmp_dir" "$1" > $tmp_dir/file_info
set the filename based on curl output to file_info
filename=$(tail -1 $tmp_dir/file_info)
# images. checks content type from file_info
if head -1 $tmp_dir/file_info | grep image ; then
$image "$filename"
fi
# pdf. checks content type from file_info
if head -1 $tmp_dir/file_info | grep pdf ; then
$pdf "$filename"
fi
fi
fi
fi
--------------------------------------------------------------------
Regards,
Alex
_______________________________________________
Dillo-dev mailing list -- dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected]
To unsubscribe send an email to dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.