#!/bin/sh # Search for track(s) on Last.fm, retrieve URL(s) usage() { echo usage: $0 [-a] [-f] [-m max] base-url 1>&2; exit 1; } # Parse options a= f= m=10 while getopts afm: o do case $o in a) a=1 ;; # all f) f=1 ;; # first m) m=$OPTARG ;; # max ?) usage esac done shift $((OPTIND-1)) q=$1 m=$((m+0)) test $m -lt 1 && m=10 # Retrieve search results tmp=/tmp/lfu.$RANDOM curl -s -G --data-urlencode "q=$q" 'https://www.last.fm/search/tracks' | sed '/^[ ]*$/d' | awk -F \" ' /class="chartlist-name"/ { getline; getline; getline; getline; getline; getline; print $2; i++; if (i > '"$((m-1))"') exit; } ' | sed 's,^,https://www.last.fm,' > $tmp # Select/print results if test ! -z "$a" then cat $tmp elif test ! -z "$f" then sed 1q < $tmp else < $tmp lfp | nl -w2 -s'. ' > /dev/tty read n < /dev/tty n=$((n+0)) test $n -lt 1 && n=1 awk "NR == $n {print}" < $tmp fi rm $tmp