[Surfraw-commits] [SCM] surfraw - a fast unix command line interface to WWW branch, master, updated. surfraw_2-2-5_1-193-g0078e53
Ian Beckwith
ianb at erislabs.net
Tue Jun 14 03:39:05 UTC 2011
The following commit has been merged in the master branch:
commit 28fc4fb4b1af4ddb3b4f704d5b904a923f04f318
Author: Ian Beckwith <ianb at erislabs.net>
Date: Tue Jun 14 00:21:53 2011 +0100
musicbrainz: update to current URLs and options, add more tests
diff --git a/ChangeLog b/ChangeLog
index 894865e..b304c05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-14 Ian Beckwith <ianb at erislabs.net>
+
+ * musicbrainz: update to current URLs and options, add more
+ tests.
+
2011-06-13 Ian Beckwith <ianb at erislabs.net>
* w3link: fixed URLs.
diff --git a/elvi/musicbrainz b/elvi/musicbrainz
index c5bdcc8..8b716d3 100755
--- a/elvi/musicbrainz
+++ b/elvi/musicbrainz
@@ -10,6 +10,8 @@ def SURFRAW_musicbrainz_tagrelease ""
def SURFRAW_musicbrainz_tagtrack ""
def SURFRAW_musicbrainz_tagnum ""
def SURFRAW_musicbrainz_taglen ""
+def SURFRAW_musicbrainz_tagpuid ""
+def SURFRAW_musicbrainz_tagfile ""
defyn SURFRAW_musicbrainz_advanced 0
defyn SURFRAW_musicbrainz_direct 0
}
@@ -21,33 +23,44 @@ Description:
Surfraw search MusicBrainz (musicbrainz.org)
Local options:
-d Direct (old) search.
- -a Enable advanced query syntax. <*> See:
+ -a Enable advanced query syntax. See:
http://musicbrainz.org/popup/TextSearchSyntax
-results=NUM Number of search results returned
Default: $SURFRAW_musicbrainz_results
Environment: SURFRAW_musicbrainz_results
0 means all results.
-search= Search type:
- artist | Artist [default]
- release | Release (album)
- track | Track (song)
- label | Label
- annotation | Annotation <*>
- freedb | FreeDB <*>
- discid | Disc ID <*>
- freedbid | FreeDB ID <*>
- puid | PUID <*>
- trmid | TRM ID <*>
- tag Tag Search <*>
+ artist | Artist [default] <*>
+ release | Release (album) <*>
+ release_group | Release Group
+ label | Label <*>
+ annotation | Annotation
+ barcode | Barcode
+ catno | Catalog number
+ cdstub | CD Stub
+ discid | Disc ID
+ editor | Editor
+ freedb | FreeDB
+ freedb | FreeDB ID
+ isrc | ISRC
+ iswc | ISWC
+ mbid | MBID
+ puid | PUID
+ recording | Recording
+ trmid | TRM ID
+ work | Work
+ tag Tag Search
With Tag Search, [search words] are treated
as artist name, use -tag* below to specify
other fields.
- <*> = not available with direct search (-d)
+ <*> = supported by direct search (-d)
Environment: SURFRAW_musicbrainz_search
- -tagrelease=ALBUM Album tag search (with -search=tag)
- -tagtrack=SONG Track tag search (with -search=tag)
- -tagnum=TRACKNUM Track number tag search (with -search=tag)
- -taglen=DURATION Duration tag search (with -search=tag)
+ -tagrelease=ALBUM Album/Release tag search (implies -search=tag)
+ -tagnum=TRACKNUM Track number tag search (implies -search=tag)
+ -tagtrack=SONG Track tag search (implies -search=tag)
+ -taglen=DURATION Track length tag search (implies -search=tag)
+ -tagfile=FILENAME Filename tag search (implies -search=tag)
+ -tagpuid=FILENAME PUID tag search (implies -search=tag)
EOF
w3_global_usage
}
@@ -57,13 +70,44 @@ w3_parse_option_hook () {
optarg="$2"
case "$opt" in
-results=*) setopt SURFRAW_musicbrainz_results $optarg ;;
- -search=*) setopt SURFRAW_musicbrainz_search $optarg ;;
- -tagrel*=*) setopt SURFRAW_musicbrainz_tagrelease $optarg ;;
- -tagtra*=*) setopt SURFRAW_musicbrainz_tagtrack $optarg ;;
- -tagnu*=*) setopt SURFRAW_musicbrainz_tagnum $optarg ;;
- -tagle*=*) setopt SURFRAW_musicbrainz_taglen $optarg ;;
+ -tagrel*=*) setopt SURFRAW_musicbrainz_tagrelease $optarg
+ setopt SURFRAW_musicbrainz_search tag ;;
+ -tagnu*=*) setopt SURFRAW_musicbrainz_tagnum $optarg
+ setopt SURFRAW_musicbrainz_search tag ;;
+ -tagtra*=*) setopt SURFRAW_musicbrainz_tagtrack $optarg
+ setopt SURFRAW_musicbrainz_search tag ;;
+ -tagle*=*) setopt SURFRAW_musicbrainz_taglen $optarg
+ setopt SURFRAW_musicbrainz_search tag ;;
+ -tagp*=*) setopt SURFRAW_musicbrainz_tagpuid $optarg
+ setopt SURFRAW_musicbrainz_search tag ;;
+ -tagf*=*) setopt SURFRAW_musicbrainz_tagfile $optarg
+ setopt SURFRAW_musicbrainz_search tag ;;
-a) setoptyn SURFRAW_musicbrainz_advanced 1 ;;
-d) setoptyn SURFRAW_musicbrainz_direct 1 ;;
+ -search=*) searchtype="$optarg"
+ case "$searchtype" in
+ ar*) setopt SURFRAW_musicbrainz_search artist ;;
+ release_*) setopt SURFRAW_musicbrainz_search release_group ;;
+ release|rel|al*) setopt SURFRAW_musicbrainz_search release ;;
+ an*) setopt SURFRAW_musicbrainz_search annotation ;;
+ ba*) setopt SURFRAW_musicbrainz_search barcode ;;
+ ca*) setopt SURFRAW_musicbrainz_search catno ;;
+ cd*) setopt SURFRAW_musicbrainz_search cdstub ;;
+ d*) setopt SURFRAW_musicbrainz_search discid ;;
+ e*) setopt SURFRAW_musicbrainz_search editor ;;
+ freedb|fr) setopt SURFRAW_musicbrainz_search freedb ;;
+ freedbid) setopt SURFRAW_musicbrainz_search freedbid ;;
+ isr*) setopt SURFRAW_musicbrainz_search isrc ;;
+ isw*) setopt SURFRAW_musicbrainz_search iswc ;;
+ l*) setopt SURFRAW_musicbrainz_search label ;;
+ m*) setopt SURFRAW_musicbrainz_search mbid ;;
+ p*) setopt SURFRAW_musicbrainz_search puid ;;
+ rec*) setopt SURFRAW_musicbrainz_search recording ;;
+ tr*) setopt SURFRAW_musicbrainz_search trmid ;;
+ w*) setopt SURFRAW_musicbrainz_search work ;;
+ ta*) setopt SURFRAW_musicbrainz_search tag ;;
+ *) err "Search type not known"
+ esac ;;
*) return 1 ;;
esac
return 0
@@ -72,7 +116,14 @@ w3_parse_option_hook () {
w3_config
w3_parse_args "$@"
# w3_args now contains a list of arguments
-if test -z "$w3_args"; then
+if test -z "$w3_args" &&
+ test -z "$SURFRAW_musicbrainz_tagrelease" &&
+ test -z "$SURFRAW_musicbrainz_tagnum" &&
+ test -z "$SURFRAW_musicbrainz_tagtrack" &&
+ test -z "$SURFRAW_musicbrainz_taglen" &&
+ test -z "$SURFRAW_musicbrainz_tagpuid" &&
+ test -z "$SURFRAW_musicbrainz_tagfile"
+then
w3_browse_url "http://musicbrainz.org/search.html"
else
escaped_args=`w3_url_of_arg $w3_args`
@@ -80,28 +131,28 @@ else
if ifyes SURFRAW_musicbrainz_direct
then
case "$SURFRAW_musicbrainz_search" in
- artist|release|track|label)
+ artist|release|label)
url="${url}/search/oldsearch.html?query=${escaped_args}&type=${SURFRAW_musicbrainz_search}&limit=${SURFAW_musicbrainz_results}&handlearguments=1" ;;
*) err "Search type $SURFRAW_musicbrainz_search not supported by Direct Search (-d)" ;;
esac
else
case "$SURFRAW_musicbrainz_search" in
- discid)
- url="${url}/bare/cdlookup.html?discid=${escaped_args}" ;;
- freedbid)
- url="${url}/bare/cdlookup.html?freedbid=${escaped_args}" ;;
- puid)
- url="${url}/show/puid/?puid=${escaped_args}" ;;
- trmid)
- url="${url}/show/trm/?trm=${escaped_args}" ;;
- artist|release|track|label|annotation|freedb)
- url="${url}/search/textsearch.html?query=${escaped_args}&type=${SURFRAW_musicbrainz_search}&limit=${SURFRAW_musicbrainz_results}&handlearguments=1"
+ artist|release_group|release|recording|work| \
+ label|annotation|cdstub|editor| \
+ freedb) url="${url}/search?query=${escaped_args}&type=${SURFRAW_musicbrainz_search}&limit=${SURFRAW_musicbrainz_limit}"
if ifyes SURFRAW_musicbrainz_advanced
then
url="${url}&adv=on"
fi ;;
+
+ catno|barcode|discid|freedbid|freedb| \
+ puid|trmid|isrc|iswc|mbid| \
+ discid)
+ url="${url}/otherlookup?${SURFRAW_musicbrainz_search}=${escaped_args}" ;;
+
tag)
- url="${url}/taglookup.html?artist=${escaped_args}&album=${SURFRAW_musicbrainz_tagrelease}&track=${SURFRAW_musicbrainz_tagtrack}&tracknum=${SURFRAW_musicbrainz_tagnum}&duration=${SURFRAW_musicbrainz_taglen}" ;;
+ url="${url}/taglookup?artist=${escaped_args}&release=${SURFRAW_musicbrainz_tagrelease}&track=${SURFRAW_musicbrainz_tagtrack}&tracknum=${SURFRAW_musicbrainz_tagnum}&duration=${SURFRAW_musicbrainz_taglen}&filename=${SURFRAW_musicbrainz_tagfile}&puid=${SURFRAW_musicbrainz_puid}" ;;
+
*)
err Unknown search type "${SURFRAW_musicbrainz_search}" ;;
esac
diff --git a/test/musicbrainz.test b/test/musicbrainz.test
index 1d39ed6..2223c91 100644
--- a/test/musicbrainz.test
+++ b/test/musicbrainz.test
@@ -1,2 +1,7 @@
musicbrainz swans
US art rock
+musicbrainz -search=mbid b3468ed3-ebae-475b-932e-5578336ce72b
+My Father Will Guide Me
+musicbrainz -tagrelease=soundtracks swans
+Blind
+
--
surfraw - a fast unix command line interface to WWW
More information about the Surfraw-commits
mailing list