summaryrefslogtreecommitdiff
path: root/lf/lfq
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2020-11-24 03:05:27 +0100
committerJohn Ankarström <john@ankarstrom.se>2020-11-24 03:05:27 +0100
commit6874c634cbca5761a6a8630f07675852f7efba31 (patch)
tree9975e4f684097a60be6f96e718699ad5e776bced /lf/lfq
parent26a5c96dfd8ed2937f602a360c7eee4ed684d3ee (diff)
downloadmsc-6874c634cbca5761a6a8630f07675852f7efba31.tar.gz
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.
Diffstat (limited to 'lf/lfq')
-rwxr-xr-xlf/lfq38
1 files changed, 38 insertions, 0 deletions
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,'