mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Improved parsing of featuring artists in square brackets, fix GH-121
This commit is contained in:
parent
fe21894c5e
commit
17be00f794
@ -29,6 +29,10 @@ minor_release_name: "Yeonhee"
|
|||||||
- "[Bugfix] Fixed native API receiving superfluous keywords"
|
- "[Bugfix] Fixed native API receiving superfluous keywords"
|
||||||
- "[Bugfix] Fixed crash when importing scrobbles with artists with similar names"
|
- "[Bugfix] Fixed crash when importing scrobbles with artists with similar names"
|
||||||
3.0.5:
|
3.0.5:
|
||||||
|
commit: "fe21894c5ecf3a53c9c5c00453abfc7f41c6a83e"
|
||||||
notes:
|
notes:
|
||||||
- "[Feature] Added notification system for web interface"
|
- "[Feature] Added notification system for web interface"
|
||||||
- "[Bugfix] Fixed crash when encountering error in Lastfm import"
|
- "[Bugfix] Fixed crash when encountering error in Lastfm import"
|
||||||
|
3.0.6:
|
||||||
|
notes:
|
||||||
|
- "[Bugfix] Better parsing of featuring artists"
|
||||||
|
@ -109,9 +109,9 @@ class CleanerAgent:
|
|||||||
|
|
||||||
|
|
||||||
for d in self.delimiters_feat:
|
for d in self.delimiters_feat:
|
||||||
if re.match(r"(.*) \(" + d + " (.*)\)",a) is not None:
|
if re.match(r"(.*) [\(\[]" + d + " (.*)[\)\]]",a) is not None:
|
||||||
return self.parseArtists(re.sub(r"(.*) \(" + d + " (.*)\)",r"\1",a)) + \
|
return self.parseArtists(re.sub(r"(.*) [\(\[]" + d + " (.*)[\)\]]",r"\1",a)) + \
|
||||||
self.parseArtists(re.sub(r"(.*) \(" + d + " (.*)\)",r"\2",a))
|
self.parseArtists(re.sub(r"(.*) [\(\[]" + d + " (.*)[\)\]]",r"\2",a))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -139,11 +139,11 @@ class CleanerAgent:
|
|||||||
if t.strip().lower() in self.rules_replacetitle:
|
if t.strip().lower() in self.rules_replacetitle:
|
||||||
return self.rules_replacetitle[t.strip().lower()]
|
return self.rules_replacetitle[t.strip().lower()]
|
||||||
|
|
||||||
t = t.replace("[","(").replace("]",")")
|
#t = t.replace("[","(").replace("]",")")
|
||||||
|
|
||||||
t = re.sub(r" \(as made famous by .*?\)","",t)
|
t = re.sub(r" [\(\[]as made famous by .*?[\)\]]","",t)
|
||||||
t = re.sub(r" \(originally by .*?\)","",t)
|
t = re.sub(r" [\(\[]originally by .*?[\)\]]","",t)
|
||||||
t = re.sub(r" \(.*?Remaster.*?\)","",t)
|
t = re.sub(r" [\(\[].*?Remaster.*?[\)\]]","",t)
|
||||||
|
|
||||||
for s in malojaconfig["REMOVE_FROM_TITLE"]:
|
for s in malojaconfig["REMOVE_FROM_TITLE"]:
|
||||||
if s in t:
|
if s in t:
|
||||||
@ -156,9 +156,9 @@ class CleanerAgent:
|
|||||||
|
|
||||||
def parseTitleForArtists(self,t):
|
def parseTitleForArtists(self,t):
|
||||||
for d in self.delimiters_feat:
|
for d in self.delimiters_feat:
|
||||||
if re.match(r"(.*) \(" + d + " (.*?)\)",t) is not None:
|
if re.match(r"(.*) [\(\[]" + d + " (.*?)[\)\]]",t) is not None:
|
||||||
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) \(" + d + " (.*?)\)",r"\1",t))
|
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) [\(\[]" + d + " (.*?)[\)\]]",r"\1",t))
|
||||||
artists += self.parseArtists(re.sub(r"(.*) \(" + d + " (.*?)\).*",r"\2",t))
|
artists += self.parseArtists(re.sub(r"(.*) [\(\[]" + d + " (.*?)[\)\]].*",r"\2",t))
|
||||||
return (title,artists)
|
return (title,artists)
|
||||||
if re.match(r"(.*) - " + d + " (.*)",t) is not None:
|
if re.match(r"(.*) - " + d + " (.*)",t) is not None:
|
||||||
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) - " + d + " (.*)",r"\1",t))
|
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) - " + d + " (.*)",r"\1",t))
|
||||||
|
Loading…
Reference in New Issue
Block a user