diff --git a/Contents/Code/__init__.py b/Contents/Code/__init__.py index 993324b..5314459 100644 --- a/Contents/Code/__init__.py +++ b/Contents/Code/__init__.py @@ -10,7 +10,7 @@ from update_tools import UpdateTool from urls import SiteUrl -VERSION_NO = '2021.08.27.1' +VERSION_NO = '2021.08.28.1' # Delay used when requesting HTML, # may be good to have to prevent being banned from the site @@ -235,8 +235,8 @@ def update(self, metadata, media, lang, force=False): log.separator( msg=( - "UPDATING" + media.title + ( - "ID: " + metadata.id + "UPDATING: " + media.title + ( + " ID: " + metadata.id ) ), log_level="info" @@ -288,6 +288,12 @@ def update(self, metadata, media, lang, force=False): .replace("

", "\n") ) + # Handle single genre result + if update_helper.genre_child: + genre_string = update_helper.genre_parent + ', ' + update_helper.genre_child + else: + genre_string = update_helper.genre_parent + # Setup logging of all data in the array data_to_log = [ {'date': update_helper.date}, @@ -295,7 +301,7 @@ def update(self, metadata, media, lang, force=False): {'author': update_helper.author}, {'narrator': update_helper.narrator}, {'series': update_helper.series}, - {'genres': update_helper.genre_parent + ', ' + update_helper.genre_child}, + {'genres': genre_string}, {'studio': update_helper.studio}, {'thumb': update_helper.thumb}, {'rating': update_helper.rating}, @@ -473,20 +479,32 @@ def run_search(self, helper, media, result): if date is not None: year = date.year + # Make sure this isn't a pre-order listing + if helper.check_if_preorder(date): + continue + # Score the album name scorebase1 = media.album scorebase2 = title.encode('utf-8') - - score = INITIAL_SCORE - Util.LevenshteinDistance( + album_score = INITIAL_SCORE - Util.LevenshteinDistance( scorebase1, scorebase2 ) + log.debug("Score from album: " + str(album_score)) + # Score the author name if media.artist: scorebase3 = media.artist scorebase4 = author - score = INITIAL_SCORE - Util.LevenshteinDistance( + author_score = INITIAL_SCORE - Util.LevenshteinDistance( scorebase3, scorebase4 ) + log.debug("Score from author: " + str(author_score)) + # Find the difference in score between name and author + score = ( + album_score + author_score + ) - INITIAL_SCORE + else: + score = album_score log.info("Result #" + str(i + 1)) # Log basic metadata @@ -687,7 +705,9 @@ def compile_metadata(self, helper): if not Prefs['no_overwrite_genre']: helper.metadata.genres.clear() helper.metadata.genres.add(helper.genre_parent) - helper.metadata.genres.add(helper.genre_child) + # Not all books have 2 genres + if helper.genre_child: + helper.metadata.genres.add(helper.genre_child) self.parse_author_narrator(helper) diff --git a/Contents/Code/search_tools.py b/Contents/Code/search_tools.py index 168fe28..0c5b704 100644 --- a/Contents/Code/search_tools.py +++ b/Contents/Code/search_tools.py @@ -1,3 +1,4 @@ +from datetime import date import re # Import internal tools from logging import Logging @@ -13,6 +14,11 @@ def __init__(self, lang, manual, media, results): self.media = media self.results = results + def check_if_preorder(self, book_date): + current_date = (date.today()) + if book_date > current_date: + return True + def get_id_from_url(self, item): url = item['url'] log.debug('URL For Breakdown: %s', url) diff --git a/Contents/Code/update_tools.py b/Contents/Code/update_tools.py index 569849f..3ccbd8f 100644 --- a/Contents/Code/update_tools.py +++ b/Contents/Code/update_tools.py @@ -55,6 +55,12 @@ def re_parse_with_date_published(self, json_data): ) except AttributeError: continue + except IndexError: + log.info( + '"' + self.title + '", ' + "only has one genre" + ) + continue # Writes metadata information to log. def writeInfo(self):