[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