Skip to content

Commit 617f28d

Browse files
committed
refactor: ♻️ break up some long functions
now more manageable for future use and also easier to read/infer
1 parent f4e60fc commit 617f28d

File tree

3 files changed

+105
-61
lines changed

3 files changed

+105
-61
lines changed

Contents/Code/__init__.py

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -488,9 +488,7 @@ def call_item_api(self, helper):
488488

489489
def compile_metadata(self, helper):
490490
# Date.
491-
if helper.date is not None:
492-
if not helper.metadata.originally_available_at or helper.force:
493-
helper.metadata.originally_available_at = helper.date
491+
helper.set_date()
494492
tagger = TagTool(helper, Prefs)
495493
# Genres.
496494
tagger.add_genres()
@@ -505,39 +503,16 @@ def compile_metadata(self, helper):
505503
tagger.add_authors_to_moods()
506504
# Series.
507505
tagger.add_series_to_moods()
508-
509-
# If the `simplify_title` option is selected, don't append subtitle
510-
# and remove extra endings on the title
511-
if Prefs['simplify_title']:
512-
album_title = helper.simplify_title()
513-
elif helper.subtitle:
514-
album_title = helper.title + ': ' + helper.subtitle
515-
else:
516-
album_title = helper.title
517506
# Title.
518-
if not helper.metadata.title or helper.force:
519-
helper.metadata.title = album_title
507+
helper.set_title()
520508
# Sort Title.
521-
# Add series/volume to sort title where possible.
522-
series_with_volume = ''
523-
if helper.series and helper.volume:
524-
series_with_volume = helper.series + ', ' + helper.volume
525-
# Only include subtitle in sort if not in a series
526-
if not helper.volume:
527-
helper.title = album_title
528-
if not helper.metadata.title_sort or helper.force:
529-
helper.metadata.title_sort = ' - '.join(
530-
filter(
531-
None, [(series_with_volume), helper.title]
532-
)
533-
)
509+
helper.set_sort_title()
534510
# Studio.
535-
if not helper.metadata.studio or helper.force:
536-
helper.metadata.studio = helper.studio
511+
helper.set_studio()
537512
# Summary.
538-
if not helper.metadata.summary or helper.force:
539-
helper.metadata.summary = helper.synopsis
513+
helper.set_summary()
540514
# Thumb.
515+
# Kept here because of Proxy
541516
if helper.thumb:
542517
if helper.thumb not in helper.metadata.posters or helper.force:
543518
helper.metadata.posters[helper.thumb] = Proxy.Media(
@@ -546,10 +521,9 @@ def compile_metadata(self, helper):
546521
# Re-prioritize the poster to the first position
547522
helper.metadata.posters.validate_keys([helper.thumb])
548523
# Rating.
549-
# We always want to refresh the rating
550-
if helper.rating:
551-
helper.metadata.rating = float(helper.rating) * 2
524+
helper.set_rating()
552525

526+
# Log the resulting metadata
553527
helper.log_update_metadata()
554528

555529
def getDateFromString(self, string):

Contents/Code/search_tools.py

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -485,34 +485,11 @@ def sum_scores(self, numberlist):
485485
lambda x, y: x + y, numberlist, 0
486486
)
487487

488-
def score_result(self):
489-
# Array to hold score points for processing
490-
all_scores = []
491-
492-
# Album name score
493-
if self.title:
494-
title_score = self.score_album(self.title)
495-
if title_score:
496-
all_scores.append(title_score)
497-
# Author name score
498-
if self.authors_concat:
499-
author_score = self.score_author(self.authors_concat)
500-
if author_score:
501-
all_scores.append(author_score)
502-
# Library language score
503-
if self.language:
504-
lang_score = self.score_language(self.language)
505-
if lang_score:
506-
all_scores.append(lang_score)
507-
508-
# Subtract difference from initial score
509-
# Subtract index to use Audible relevance as weight
510-
score = self.INITIAL_SCORE - self.sum_scores(all_scores) - self.index
511-
512-
log.info("Result #" + str(self.index + 1))
513-
# Log basic metadata
488+
def score_create_result(self, score):
514489
data_to_log = []
515490
plex_score_dict = {}
491+
492+
# Go through all the keys for the result and log as we go
516493
if self.asin:
517494
plex_score_dict['id'] = self.asin
518495
data_to_log.append({'ASIN is': self.asin})
@@ -536,8 +513,38 @@ def score_result(self):
536513
data_to_log.append({'Title is': self.title})
537514
if self.year:
538515
plex_score_dict['year'] = self.year
539-
516+
540517
log.metadata(data_to_log, log_level="info")
518+
return plex_score_dict
519+
520+
def score_result(self):
521+
# Array to hold score points for processing
522+
all_scores = []
523+
524+
# Album name score
525+
if self.title:
526+
title_score = self.score_album(self.title)
527+
if title_score:
528+
all_scores.append(title_score)
529+
# Author name score
530+
if self.authors_concat:
531+
author_score = self.score_author(self.authors_concat)
532+
if author_score:
533+
all_scores.append(author_score)
534+
# Library language score
535+
if self.language:
536+
lang_score = self.score_language(self.language)
537+
if lang_score:
538+
all_scores.append(lang_score)
539+
540+
# Subtract difference from initial score
541+
# Subtract index to use Audible relevance as weight
542+
score = self.INITIAL_SCORE - self.sum_scores(all_scores) - self.index
543+
544+
log.info("Result #" + str(self.index + 1))
545+
546+
# Create result dict
547+
plex_score_dict = self.score_create_result(score)
541548

542549
if score >= self.IGNORE_SCORE:
543550
self.info.append(plex_score_dict)

Contents/Code/update_tools.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,69 @@ def log_update_metadata(self):
124124

125125

126126
class AlbumUpdateTool(UpdateTool):
127+
def set_date(self):
128+
"""
129+
Sets the date.
130+
"""
131+
if self.date is not None:
132+
if not self.metadata.originally_available_at or self.force:
133+
self.metadata.originally_available_at = self.date
134+
135+
def set_rating(self):
136+
"""
137+
Sets the rating.
138+
"""
139+
# We always want to refresh the rating
140+
if self.rating:
141+
self.metadata.rating = float(self.rating) * 2
142+
143+
def set_summary(self):
144+
"""
145+
Sets the summary.
146+
"""
147+
if not self.metadata.summary or self.force:
148+
self.metadata.summary = self.synopsis
149+
150+
def set_studio(self):
151+
"""
152+
Sets the studio.
153+
"""
154+
if not self.metadata.studio or self.force:
155+
self.metadata.studio = self.studio
156+
157+
def set_sort_title(self):
158+
"""
159+
Sets the sort title.
160+
"""
161+
# Add series/volume to sort title where possible.
162+
series_with_volume = ''
163+
if self.series and self.volume:
164+
series_with_volume = self.series + ', ' + self.volume
165+
# Only include subtitle in sort if not in a series
166+
if not self.volume:
167+
self.title = self.metadata.title
168+
if not self.metadata.title_sort or self.force:
169+
self.metadata.title_sort = ' - '.join(
170+
filter(
171+
None, [(series_with_volume), self.title]
172+
)
173+
)
174+
175+
def set_title(self):
176+
"""
177+
Sets the title.
178+
"""
179+
# If the `simplify_title` option is selected, don't append subtitle
180+
# and remove extra endings on the title
181+
if self.prefs['simplify_title']:
182+
album_title = self.simplify_title()
183+
elif self.subtitle:
184+
album_title = self.title + ': ' + self.subtitle
185+
else:
186+
album_title = self.title
187+
if not self.metadata.title or self.force:
188+
self.metadata.title = album_title
189+
127190
def parse_api_response(self, response):
128191
"""
129192
Parses keys from API into helper variables if they exist.

0 commit comments

Comments
 (0)