23 lines
596 B
Bash
Executable File
23 lines
596 B
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
if [[ -z $1 ]]; then
|
|
url=$(xclip -selection c -o)
|
|
>&2 echo "Reading url from clipboard: ${url}"
|
|
else
|
|
url=$1
|
|
fi
|
|
|
|
if ! grep -qF 'bandcamp.com/album' <<<"$url"; then
|
|
>&2 echo "Input does not look like a bandcamp album URL"
|
|
exit 1
|
|
fi
|
|
|
|
track_durations=$(curl "$url" 2>/dev/null | tr -d '\n' | tr -s ' ' | grep -oE 'time secondaryText"> [0-9]+:[0-9]+' | cut -d' ' -f3)
|
|
total_seconds=$( { printf '('; cut -d: -f1 <<<"$track_durations" | paste -d+ -s | tr -d '\n'; printf ') * 60 +'; cut -d: -f2 <<<"$track_durations" | paste -d+ -s; } | bc )
|
|
|
|
date -u -d @${total_seconds} +%T
|
|
|
|
|
|
|
|
|