Use https and http appropriately when connecting to MusicBrainz
Fixed some bugs: - MusicBrainz submit URL always has https as protocol: hardcoded, even when inappropriate. It's just a graphical issue. - Whipper appears to always communicate with MusicBrainz using musicbrainzngs over http. The musicbrainzngs.set_hostname(server). - `musicbrainzngs.set_hostname(server)` always defaults to http. Since musicbrainzngs version 0.7 the method `set_hostname` takes an optional argument named `use_https` (defaults to False) which whipper never passes. Changed behaviour of `server` option (`musicbrainz` section of whipper's configuration file). Now it expects an URL with a valid scheme (scheme must be `http` or `http`, empty scheme isn't allowed anymore). Only the scheme and netloc parts of the URL are taken into account. Fixes #437. Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
This commit is contained in:
@@ -75,11 +75,12 @@ class Config:
|
||||
# musicbrainz section
|
||||
|
||||
def get_musicbrainz_server(self):
|
||||
server = self.get('musicbrainz', 'server') or 'musicbrainz.org'
|
||||
server_url = urlparse('//' + server)
|
||||
if server_url.scheme != '' or server_url.path != '':
|
||||
raise KeyError('Invalid MusicBrainz server: %s' % server)
|
||||
return server
|
||||
conf = self.get('musicbrainz', 'server') or 'https://musicbrainz.org'
|
||||
if not conf.startswith(('http://', 'https://')):
|
||||
raise KeyError('Invalid MusicBrainz server: unsupported '
|
||||
'or missing scheme')
|
||||
scheme, netloc, _, _, _, _ = urlparse(conf)
|
||||
return {'scheme': scheme, 'netloc': netloc}
|
||||
|
||||
# drive sections
|
||||
|
||||
|
||||
Reference in New Issue
Block a user