def submit_albums(collection_id, release_ids): """Add all of the release IDs to the indicated collection. Multiple requests are made if there are many release IDs to submit. """ for i in range(0, len(release_ids), SUBMISSION_CHUNK_SIZE): chunk = release_ids[i:i+SUBMISSION_CHUNK_SIZE] releaselist = ";".join(chunk) musicbrainz._mb_request( "collection/%s/releases/%s" % (collection_id, releaselist), 'PUT', True, True, body='foo')
def test_auth_headers_ifset(self): musicbrainz._useragent = "test" musicbrainz.auth("user", "password") req = musicbrainz._mb_request(path="foo", auth_required=musicbrainz.AUTH_IFSET) assert (any([ isinstance(handler, musicbrainz._DigestAuthHandler) for handler in self.opener.handlers ]))
def test_auth_headers_ifset_no_user(self): musicbrainz._useragent = "test" musicbrainz.auth("", "") # if no user and password, auth is not set for AUTH_IFSET req = musicbrainz._mb_request(path="foo", auth_required=musicbrainz.AUTH_IFSET) assert (not any([ isinstance(handler, musicbrainz._DigestAuthHandler) for handler in self.opener.handlers ]))
def mb_request(*args, **kwargs): """Send a MusicBrainz API request and process exceptions. """ try: return musicbrainz._mb_request(*args, **kwargs) except musicbrainzngs.AuthenticationError: raise ui.UserError('authentication with MusicBrainz failed') except musicbrainzngs.ResponseError as exc: raise ui.UserError('MusicBrainz API error: {0}'.format(exc)) except musicbrainzngs.UsageError: raise ui.UserError('MusicBrainz credentials missing')
def update_collection(lib, config, opts, args): # Get the collection to modify. collections = musicbrainz._mb_request('collection', 'GET', True, True) if not collections['collection-list']: raise ui.UserError('no collections exist for user') collection_id = collections['collection-list'][0]['id'] # Get a list of all the albums. albums = [a.mb_albumid for a in lib.albums() if a.mb_albumid] # Submit to MusicBrainz. print('Updating MusicBrainz collection {0}...'.format(collection_id)) submit_albums(collection_id, albums) print('...MusicBrainz collection updated.')
def update_collection(lib, config, opts, args): # Get the collection to modify. collections = musicbrainz._mb_request('collection', 'GET', True, True) if not collections['collection-list']: raise ui.UserError('no collections exist for user') collection_id = collections['collection-list'][0]['id'] # Get a list of all the albums. albums = [a.mb_albumid for a in lib.albums() if a.mb_albumid] # Submit to MusicBrainz. print 'Updating MusicBrainz collection {0}...'.format(collection_id) submit_albums(collection_id, albums) print '...MusicBrainz collection updated.'
def test_client(self): musicbrainzngs.set_useragent("testapp", "0.1", "*****@*****.**") musicbrainz._mb_request(path="foo", client_required=True) self.assertTrue("testapp" in self.opener.myurl)
def test_no_client(self): musicbrainzngs.set_useragent("testapp", "0.1", "*****@*****.**") musicbrainz._mb_request(path="foo", client_required=False) self.assertFalse("testapp" in _common.opener.myurl)