def keyword_search(self, s): if s.startswith(':a'): artist_id = s[len(':a'):].strip() try: url = search_album('arid:' + solr_escape(artist_id), limit=100, own=True) return parse_album_search(urlopen(url)) except RetrievalError as e: msg = translate("MusicBrainz", '<b>Error:</b> While retrieving %1: %2') write_log(msg.arg(artist_id).arg(escape(e))) raise elif s.startswith(':b'): r_id = s[len(':b'):].strip() try: return [self.retrieve(r_id)] except RetrievalError as e: msg = translate( "MusicBrainz", "<b>Error:</b> While retrieving Album ID %1 (%2)") write_log(msg.arg(r_id).arg(escape(e))) raise else: try: params = parse_searchstring(s) except RetrievalError as e: return parse_album_search(urlopen(search_album(s, limit=100))) if not params: return artist = params[0][0] album = params[0][1] return self.search(album, [artist], 100)
def keyword_search(self, text): """Searches for albums by keywords, text.""" #Should search for the keywords in text. #This method is optional, but recommended. #The format artist1;album1|artist2;album2 should be accepted. #Use the parse_searchstring method to separate text #into a list of artist album pairs as in: # [(artist1, album1), (artist2, album2)] try: params = parse_searchstring(text) artists = [params[0][0]] album = params[0][1] except RetrievalError: album = text artists = None return self.search(album, artists)
def keyword_search(self, text): """Searches for albums by keywords, text.""" # Should search for the keywords in text. # This method is optional, but recommended. # The format artist1;album1|artist2;album2 should be accepted. # Use the parse_searchstring method to separate text # into a list of artist album pairs as in: # [(artist1, album1), (artist2, album2)] try: params = parse_searchstring(text) artists = [params[0][0]] album = params[0][1] except RetrievalError: album = text artists = None return self.search(album, artists)
def keyword_search(self, text): if text.startswith(':id'): sql = text[len(':id'):].strip().replace(' ', '').lower() if sql.startswith('mr'): url = album_url + 'release/' + sql else: url = album_url + sql info, tracks, cover = retrieve_album(url, self._getcover) if cover: info.update(cover) return [(info, tracks)] else: try: params = parse_searchstring(text) except RetrievalError: return self.search(text, ['']) artists = [params[0][0]] album = params[0][1] return self.search(album, artists)
def keyword_search(self, text): if text.startswith(u':id'): sql = text[len(':id'):].strip().replace(u' ', u'').lower() if sql.startswith('mr'): url = album_url + 'release/' + sql else: url = album_url + sql info, tracks, cover = retrieve_album(url, self._getcover) if cover: info.update(cover) return [(info, tracks)] else: try: params = parse_searchstring(text) except RetrievalError: return self.search(text, [u'']) artists = [params[0][0]] album = params[0][1] return self.search(album, artists)
msg = translate("MusicBrainz", '<b>Error:</b> While retrieving %1: %2') write_log(msg.arg(artist_id).arg(escape(e))) raise elif s.startswith(u':b'): r_id = s[len(u':b'):].strip() try: return [self.retrieve(r_id)] except RetrievalError, e: msg = translate("MusicBrainz", "<b>Error:</b> While retrieving Album ID %1 (%2)") write_log(msg.arg(r_id).arg(escape(e))) raise else: try: params = parse_searchstring(s) except RetrievalError, e: return parse_album_search(urlopen(search_album(s, limit=100))) if not params: return artist = params[0][0] album = params[0][1] return self.search(album, [artist], 100) def search(self, album, artists=u'', limit=40): if time.time() - self.__lasttime < 1000: time.sleep(1) ret = [] check_matches = False if isempty(artists):
'<b>Error:</b> While retrieving %1: %2') write_log(msg.arg(artist_id).arg(escape(e))) raise elif s.startswith(u':b'): r_id = s[len(u':b'):].strip() try: return [self.retrieve(r_id)] except RetrievalError, e: msg = translate( "MusicBrainz", "<b>Error:</b> While retrieving Album ID %1 (%2)") write_log(msg.arg(r_id).arg(escape(e))) raise else: try: params = parse_searchstring(s) except RetrievalError, e: return parse_album_search(urlopen(search_album(s, limit=100))) if not params: return artist = params[0][0] album = params[0][1] return self.search(album, [artist], 100) def search(self, album, artists=u'', limit=40): if time.time() - self.__lasttime < 1000: time.sleep(1) ret = [] check_matches = False if isempty(artists):