mirror of
https://github.com/beetbox/beets.git
synced 2026-01-30 12:02:41 +01:00
strip null characters from MB queries (#142)
This commit is contained in:
parent
d59c66af6a
commit
5437b30688
3 changed files with 12 additions and 1 deletions
1
NEWS
1
NEWS
|
|
@ -20,6 +20,7 @@
|
|||
copies afterward). This is fixed.
|
||||
* Fix a bug where some files would be erroneously interpreted as MP4.
|
||||
* Fix permission bits applied to album art files.
|
||||
* Fix malformed MusicBrainz queries caused by null characters.
|
||||
* The old "albumify" plugin for upgrading databases was removed.
|
||||
|
||||
1.0b6
|
||||
|
|
|
|||
|
|
@ -127,7 +127,8 @@ def _lucene_escape(text):
|
|||
string.
|
||||
"""
|
||||
# Regex stolen from MusicBrainz Picard.
|
||||
return re.sub(r'([+\-&|!(){}\[\]\^"~*?:\\])', r'\\\1', text)
|
||||
out = re.sub(r'([+\-&|!(){}\[\]\^"~*?:\\])', r'\\\1', text)
|
||||
return out.replace('\x00', '')
|
||||
|
||||
def find_releases(criteria, limit=SEARCH_LIMIT):
|
||||
"""Get a list of release dictionaries from the MusicBrainz
|
||||
|
|
|
|||
|
|
@ -146,6 +146,15 @@ class MBReleaseDictTest(unittest.TestCase):
|
|||
d = mb.release_dict(release)
|
||||
self.assertTrue(d['va'])
|
||||
|
||||
class QuerySanitationTest(unittest.TestCase):
|
||||
def test_special_char_escaped(self):
|
||||
res = mb._lucene_escape('!')
|
||||
self.assertEqual(res, '\\!')
|
||||
|
||||
def test_null_character_removed(self):
|
||||
res = mb._lucene_escape('\0')
|
||||
self.assertEqual(res, '')
|
||||
|
||||
def suite():
|
||||
return unittest.TestLoader().loadTestsFromName(__name__)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue