Skip to content

Commit

Permalink
Added functionality to split {year} into different years, if there mu…
Browse files Browse the repository at this point in the history
…ltiple release years defined for the entry.
  • Loading branch information
elgatito committed Jan 15, 2023
1 parent aca00df commit a981bae
Showing 1 changed file with 45 additions and 1 deletion.
46 changes: 45 additions & 1 deletion burst/filtering.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,14 +342,51 @@ def split_title_per_languages(self, text, item_type):
else:
return result

def different_years(self):
""" Checks whether there are different years defined in release dates
Returns:
str: Dictionary of country/year.
"""
if 'year' not in self.info or 'years' not in self.info:
return {}

self.info['years']['default'] = self.info['year']

res = {}
seen = set()
for key in self.info['years']:
if self.info['years'][key] in seen:
continue
seen.add(self.info['years'][key])
res[key] = self.info['years'][key]

return res

def split_title_per_year(self, queries, years):
res = []
for item in queries:
if "{year}" in item:
for key in years:
query = item.replace("{year}", "{year:%s}" % (key))
res.append(query)
else:
res.append(item)

return res

def collect_queries(self, item_type, definition):
different_years = self.different_years()

# Collecting keywords
priority = 1
for item in ['', '2', '3', '4']:
key = item_type + '_keywords' + item
extra = item_type + '_extra' + item
if key in definition and definition[key]:
qlist = self.split_title_per_languages(definition[key], item_type)
if len(different_years) > 1:
qlist = self.split_title_per_year(qlist, different_years)
self.queries.extend(qlist)
eitem = definition[extra] if extra in definition and definition[extra] else ''
for _ in qlist:
Expand All @@ -362,6 +399,8 @@ def collect_queries(self, item_type, definition):
extra = item_type + '_extra_fallback' + item
if key in definition and definition[key]:
qlist = self.split_title_per_languages(definition[key], item_type)
if len(different_years) > 1:
qlist = self.split_title_per_year(qlist, different_years)
self.queries.extend(qlist)
eitem = definition[extra] if extra in definition and definition[extra] else ''
for _ in qlist:
Expand Down Expand Up @@ -455,7 +494,12 @@ def process_keywords(self, provider, text, definition):
text = text.replace('{%s}' % keyword, title)

if 'year' in keyword:
text = text.replace('{%s}' % keyword, str(self.info["year"]))
if ':' not in keyword:
text = text.replace('{%s}' % keyword, str(self.info["year"]))
else:
use_language = keyword.split(':')[1].lower()
if use_language in self.info['years'] and self.info['years'][use_language]:
text = text.replace('{%s}' % keyword, str(self.info['years'][use_language]))

if 'show_tmdb_id' in keyword:
if 'show_tmdb_id' not in self.info:
Expand Down

0 comments on commit a981bae

Please sign in to comment.