[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