From 6874c634cbca5761a6a8630f07675852f7efba31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Tue, 24 Nov 2020 03:05:27 +0100 Subject: lfu: Rename to lfq, make into a more general query tool lfu was not very UNIX-like. Now sim uses ep (edit pipe) to choose the right match. --- lf/lfq | 38 ++++++++++++++++++++++++++++++++++++++ lf/lfu | 59 ----------------------------------------------------------- sim | 2 +- 3 files changed, 39 insertions(+), 60 deletions(-) create mode 100755 lf/lfq delete mode 100755 lf/lfu diff --git a/lf/lfq b/lf/lfq new file mode 100755 index 0000000..81dbfb1 --- /dev/null +++ b/lf/lfq @@ -0,0 +1,38 @@ +#!/bin/sh + +# Search for track(s) on Last.fm, retrieve URL(s) + +usage() { echo usage: $0 [-m max] base-url 1>&2; exit 1; } + +# Parse options +m=10 +while getopts m: o +do + case $o in + m) m=$OPTARG ;; # max + ?) usage + esac +done +shift $((OPTIND-1)) +q=$1 + +m=$((m+0)) +test $m -lt 1 && m=10 + +# Retrieve search results +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,' diff --git a/lf/lfu b/lf/lfu deleted file mode 100755 index 415f448..0000000 --- a/lf/lfu +++ /dev/null @@ -1,59 +0,0 @@ -#!/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 diff --git a/sim b/sim index 2502702..df04473 100755 --- a/sim +++ b/sim @@ -2,7 +2,7 @@ # Get similar songs -lfu "$@" | +lfq "$@" | ep | head -1 | xargs lfs | lfp | sed 's/\(.*\) - \(.*\)/track:"\1" artist:"\2"/' | -- cgit v1.2.3