[mb-commits] branch, mbs-5317, created. MBS-5317, Get the decoded content from LWP instead of decoding it ourselves .

MusicBrainz Git Server <[email protected]>
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1TaqZf-00088K-6I@wiley>
The branch, mbs-5317 has been created
        at  b948fd9de002efda93cc3896d44d2119e8daf103 (commit)

- Log -----------------------------------------------------------------
commit b948fd9de002efda93cc3896d44d2119e8daf103
Author: warp <[email protected]>
Date:   Tue Nov 20 17:17:48 2012 +0100

    MBS-5317, Get the decoded content from LWP instead of decoding it ourselves.
    
    This fixes the following error, which otherwise may be printed for fmt=json requests to the search server:
    
    [error] Caught exception in engine "Wide character in syswrite at /usr/lib/perl/5.14/IO/Handle.pm line 216."

diff --git a/lib/MusicBrainz/Server/Data/WebService.pm b/lib/MusicBrainz/Server/Data/WebService.pm
index 6e01033..0c6397e 100644
--- a/lib/MusicBrainz/Server/Data/WebService.pm
+++ b/lib/MusicBrainz/Server/Data/WebService.pm
@@ -207,7 +207,7 @@ sub xml_search
     my $response = $self->c->lwp->get($url);
     if ( $response->is_success )
     {
-        return { xml => decode('utf-8', $response->content) };
+        return { xml => $response->decoded_content };
     }
     else
     {

commit 5a826ee98cd8b7594cd3010882efe8af287fef93
Author: warp <[email protected]>
Date:   Tue Nov 20 17:11:32 2012 +0100

    MBS-5317, support fmt=json for searches

diff --git a/lib/MusicBrainz/Server/Controller/WS/2/CDStub.pm b/lib/MusicBrainz/Server/Controller/WS/2/CDStub.pm
index 8d48354..cabda72 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/CDStub.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/CDStub.pm
@@ -10,7 +10,7 @@ my $ws_defs = Data::OptList::mkopt([
      cdstub => {
                          method   => 'GET',
                          required => [ qw(query) ],
-                         optional => [ qw(limit offset) ],
+                         optional => [ qw(fmt limit offset) ],
      },
      cdstub => {
          method => 'POST'
diff --git a/lib/MusicBrainz/Server/Controller/WS/2/Collection.pm b/lib/MusicBrainz/Server/Controller/WS/2/Collection.pm
index fcb9d0d..d9a1d80 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/Collection.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/Collection.pm
@@ -12,7 +12,7 @@ my $ws_defs = Data::OptList::mkopt([
      collection => {
                          method   => 'GET',
                          inc      => [ qw(releases tags) ],
-                         optional => [ qw(limit offset) ],
+                         optional => [ qw(fmt limit offset) ],
      },
      collection => {
          method => 'PUT',
diff --git a/lib/MusicBrainz/Server/Controller/WS/2/DiscID.pm b/lib/MusicBrainz/Server/Controller/WS/2/DiscID.pm
index 7b4fbd4..17b5707 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/DiscID.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/DiscID.pm
@@ -11,7 +11,8 @@ my $ws_defs = Data::OptList::mkopt([
      discid => {
                          method   => 'GET',
                          inc      => [ qw(artists labels recordings release-groups artist-credits
-                                          aliases puids isrcs _relations cdstubs ) ]
+                                          aliases puids isrcs _relations cdstubs ) ],
+                         optional => [ qw( fmt ) ],
      }
 ]);
 
diff --git a/lib/MusicBrainz/Server/Controller/WS/2/FreeDB.pm b/lib/MusicBrainz/Server/Controller/WS/2/FreeDB.pm
index bf6a9b1..3cfae19 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/FreeDB.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/FreeDB.pm
@@ -8,7 +8,7 @@ my $ws_defs = Data::OptList::mkopt([
      freedb => {
                          method   => 'GET',
                          required => [ qw(query) ],
-                         optional => [ qw(limit offset) ],
+                         optional => [ qw(fmt limit offset) ],
      },
 ]);
 
diff --git a/lib/MusicBrainz/Server/Controller/WS/2/ISRC.pm b/lib/MusicBrainz/Server/Controller/WS/2/ISRC.pm
index b28dc95..5d60e18 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/ISRC.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/ISRC.pm
@@ -10,7 +10,8 @@ my $ws_defs = Data::OptList::mkopt([
      isrc => {
                          method   => 'GET',
                          inc      => [ qw(artists releases puids isrcs artist-credits aliases
-                                          _relations tags user-tags ratings user-ratings) ]
+                                          _relations tags user-tags ratings user-ratings) ],
+                         optional => [ qw( fmt ) ],
      },
 ]);
 
diff --git a/lib/MusicBrainz/Server/Controller/WS/2/PUID.pm b/lib/MusicBrainz/Server/Controller/WS/2/PUID.pm
index e07584b..0b99e1d 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/PUID.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/PUID.pm
@@ -11,7 +11,8 @@ my $ws_defs = Data::OptList::mkopt([
          method   => 'GET',
          inc      => [ qw(artists releases puids isrcs artist-credits aliases
                           _relations tags user-tags ratings user-ratings
-                          release-groups ) ]
+                          release-groups ) ],
+         optional => [ qw(fmt) ]
      }
 ]);
 
diff --git a/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm b/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm
index d2eb888..7f11cec 100644
--- a/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm
+++ b/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm
@@ -12,7 +12,7 @@ my $ws_defs = Data::OptList::mkopt([
      tag => {
                          method   => 'GET',
                          required => [ qw(query) ],
-                         optional => [ qw(limit offset) ],
+                         optional => [ qw(fmt limit offset) ],
      },
      tag => {
                          method   => 'GET',
diff --git a/lib/MusicBrainz/Server/Data/WebService.pm b/lib/MusicBrainz/Server/Data/WebService.pm
index ffdd215..6e01033 100644
--- a/lib/MusicBrainz/Server/Data/WebService.pm
+++ b/lib/MusicBrainz/Server/Data/WebService.pm
@@ -200,8 +200,10 @@ sub xml_search
         };
     }
 
+    my $format = $args->{fmt} eq "json" ? "jsonnew" : "xml";
+
     my $url = 'http://' . DBDefs->LUCENE_SERVER . "/ws/2/$resource/?" .
-              "max=$limit&type=$resource&fmt=xml&offset=$offset&query=". uri_escape_utf8($query);
+              "max=$limit&type=$resource&fmt=$format&offset=$offset&query=". uri_escape_utf8($query);
     my $response = $self->c->lwp->get($url);
     if ( $response->is_success )
     {

-----------------------------------------------------------------------


hooks/post-receive
-- 
mb_server
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.