diff --git a/comicapi/comicbookinfo.py b/comicapi/comicbookinfo.py index a1939a3..9201dfb 100644 --- a/comicapi/comicbookinfo.py +++ b/comicapi/comicbookinfo.py @@ -95,7 +95,7 @@ class ComicBookInfo: metadata.volume_count = utils.xlate(cbi["numberOfVolumes"], True) metadata.language = utils.xlate(cbi["language"]) metadata.country = utils.xlate(cbi["country"]) - metadata.critical_rating = utils.xlate(cbi["rating"]) + metadata.critical_rating = utils.xlate(cbi["rating"], True) metadata.credits = cbi["credits"] metadata.tags = cbi["tags"] @@ -157,7 +157,7 @@ class ComicBookInfo: assign("numberOfVolumes", utils.xlate(metadata.volume_count, True)) assign("language", utils.xlate(utils.get_language_from_iso(metadata.language))) assign("country", utils.xlate(metadata.country)) - assign("rating", utils.xlate(metadata.critical_rating)) + assign("rating", utils.xlate(metadata.critical_rating, True)) assign("credits", metadata.credits) assign("tags", metadata.tags) diff --git a/comicapi/comicinfoxml.py b/comicapi/comicinfoxml.py index 80cb381..7b17965 100644 --- a/comicapi/comicinfoxml.py +++ b/comicapi/comicinfoxml.py @@ -160,7 +160,7 @@ class ComicInfoXml: assign("LanguageISO", md.language) assign("Format", md.format) assign("AgeRating", md.maturity_rating) - assign("CommunityRating", md.community_rating) + assign("CommunityRating", md.critical_rating) assign("BlackAndWhite", "Yes" if md.black_and_white else None) assign("Manga", md.manga) assign("Characters", md.characters) @@ -228,7 +228,7 @@ class ComicInfoXml: md.story_arc = utils.xlate(get("StoryArc")) md.series_group = utils.xlate(get("SeriesGroup")) md.maturity_rating = utils.xlate(get("AgeRating")) - md.community_rating = utils.xlate(get("CommunityRating")) + md.critical_rating = utils.xlate(get("CommunityRating"), is_float=True) tmp = utils.xlate(get("BlackAndWhite")) if tmp is not None and tmp.lower() in ["yes", "true", "1"]: diff --git a/comicapi/genericmetadata.py b/comicapi/genericmetadata.py index 9cf4310..5cc1ed3 100644 --- a/comicapi/genericmetadata.py +++ b/comicapi/genericmetadata.py @@ -92,7 +92,7 @@ class GenericMetadata: self.comments: str | None = None # use same way as Summary in CIX self.volume_count: int | None = None - self.critical_rating: str | None = None + self.critical_rating: float | None = None # rating in cbl; CommunityRating in CIX self.country: str | None = None self.alternate_series: str | None = None @@ -106,7 +106,6 @@ class GenericMetadata: self.black_and_white: bool | None = None self.page_count: int | None = None self.maturity_rating: str | None = None - self.community_rating: str | None = None self.story_arc: str | None = None self.series_group: str | None = None @@ -168,7 +167,6 @@ class GenericMetadata: assign("manga", new_md.manga) assign("black_and_white", new_md.black_and_white) assign("maturity_rating", new_md.maturity_rating) - assign("community_rating", new_md.community_rating) assign("story_arc", new_md.story_arc) assign("series_group", new_md.series_group) assign("scan_info", new_md.scan_info) @@ -306,7 +304,6 @@ class GenericMetadata: if self.black_and_white: add_attr_string("black_and_white") add_attr_string("maturity_rating") - add_attr_string("community_rating") add_attr_string("story_arc") add_attr_string("series_group") add_attr_string("scan_info") @@ -378,7 +375,7 @@ md_test.comments = ( " and what those characters meant to the livelihood of children around the world." ) md_test.volume_count = None -md_test.critical_rating = None +md_test.critical_rating = 3.0 md_test.country = None md_test.alternate_series = "Tales" md_test.alternate_number = "2" @@ -391,7 +388,6 @@ md_test.manga = "No" md_test.black_and_white = None md_test.page_count = 24 md_test.maturity_rating = "Everyone 10+" -md_test.community_rating = "3.0" md_test.story_arc = "Here and Now" md_test.series_group = "Futuristic Tales" md_test.scan_info = "(CC BY-NC-SA 3.0)" diff --git a/comicapi/utils.py b/comicapi/utils.py index 8b3e20f..1d29d06 100644 --- a/comicapi/utils.py +++ b/comicapi/utils.py @@ -78,16 +78,20 @@ def add_to_path(dirname: str) -> None: os.environ["PATH"] = dirname + os.pathsep + os.environ["PATH"] -def xlate(data: Any, is_int: bool = False) -> Any: +def xlate(data: Any, is_int: bool = False, is_float: bool = False) -> Any: if data is None or data == "": return None - if is_int: - i = str(data).translate(defaultdict(lambda: None, zip((ord(c) for c in "1234567890"), "1234567890"))) - if i == "0": - return "0" + if is_int or is_float: + i: str | int | float + if isinstance(data, (int, float)): + i = data + else: + i = str(data).translate(defaultdict(lambda: None, zip((ord(c) for c in "1234567890."), "1234567890."))) if i == "": return None - return int(i) + if is_float: + return float(i) + return int(float(i)) return str(data) diff --git a/comictaggerlib/settingswindow.py b/comictaggerlib/settingswindow.py index 1ffafd2..e808e39 100644 --- a/comictaggerlib/settingswindow.py +++ b/comictaggerlib/settingswindow.py @@ -77,7 +77,7 @@ Accepts the following variables: {language} (string) {comments} (string) {volume_count} (integer) -{critical_rating} (string) +{critical_rating} (float) {country} (string) {alternate_series} (string) {alternate_number} (string) @@ -90,7 +90,6 @@ Accepts the following variables: {black_and_white} (boolean) {page_count} (integer) {maturity_rating} (string) -{community_rating} (string) {story_arc} (string) {series_group} (string) {scan_info} (string) diff --git a/comictaggerlib/taggerwindow.py b/comictaggerlib/taggerwindow.py index 521d683..b7ec325 100644 --- a/comictaggerlib/taggerwindow.py +++ b/comictaggerlib/taggerwindow.py @@ -796,7 +796,6 @@ Have fun! assign_text(self.leImprint, md.imprint) assign_text(self.teComments, md.comments) assign_text(self.teNotes, md.notes) - assign_text(self.leCriticalRating, md.critical_rating) assign_text(self.leStoryArc, md.story_arc) assign_text(self.leScanInfo, md.scan_info) assign_text(self.leSeriesGroup, md.series_group) @@ -808,10 +807,7 @@ Have fun! assign_text(self.teTeams, md.teams) assign_text(self.teLocations, md.locations) - try: - self.dsbCommunityRating.setValue(md.community_rating or 0.0) - except ValueError: - self.dsbCommunityRating.setValue(0.0) + self.dsbCriticalRating.setValue(md.critical_rating or 0.0) if md.format is not None and md.format != "": i = self.cbFormat.findText(md.format) @@ -913,7 +909,6 @@ Have fun! md.month = utils.xlate(self.lePubMonth.text(), True) md.year = utils.xlate(self.lePubYear.text(), True) md.day = utils.xlate(self.lePubDay.text(), True) - md.critical_rating = utils.xlate(self.leCriticalRating.text(), True) md.alternate_count = utils.xlate(self.leAltIssueCount.text(), True) md.series = self.leSeries.text() @@ -925,9 +920,9 @@ Have fun! md.notes = self.teNotes.toPlainText() md.maturity_rating = self.cbMaturityRating.currentText() - md.community_rating = utils.xlate(self.dsbCommunityRating.cleanText()) - if md.community_rating == "0.0": - md.community_rating = None + md.critical_rating = utils.xlate(self.dsbCriticalRating.cleanText(), is_float=True) + if md.critical_rating == 0.0: + md.critical_rating = None md.story_arc = self.leStoryArc.text() md.scan_info = self.leScanInfo.text() @@ -1122,6 +1117,8 @@ Have fun! self.update_menus() self.fileSelectionList.update_current_row() + self.metadata = self.comic_archive.read_metadata(self.load_data_style) + self.actual_load_current_archive() else: QtWidgets.QMessageBox.information(self, "Whoops!", "No data to commit!") @@ -1217,7 +1214,7 @@ Have fun! widget.setReadOnly(True) widget.setPalette(inactive_palette1) - cbi_only = [self.leVolumeCount, self.cbCountry, self.leCriticalRating, self.teTags] + cbi_only = [self.leVolumeCount, self.cbCountry, self.teTags] cix_only = [ self.leImprint, self.teNotes, @@ -1235,7 +1232,6 @@ Have fun! self.teLocations, self.cbMaturityRating, self.cbFormat, - self.dsbCommunityRating, ] if self.save_data_style == MetaDataStyle.CIX: diff --git a/comictaggerlib/ui/TemplateHelp.ui b/comictaggerlib/ui/TemplateHelp.ui index cf4dbd8..8be434b 100644 --- a/comictaggerlib/ui/TemplateHelp.ui +++ b/comictaggerlib/ui/TemplateHelp.ui @@ -78,7 +78,7 @@ tr:nth-child(even) { <tr><td>{language}</td><td>string</td></tr> <tr><td>{comments}</td><td>string</td></tr> <tr><td>{volume_count}</td><td>integer</td></tr> - <tr><td>{critical_rating}</td><td>string</td></tr> + <tr><td>{critical_rating}</td><td>float</td></tr> <tr><td>{country}</td><td>string</td></tr> <tr><td>{alternate_series}</td><td>string</td></tr> <tr><td>{alternate_number}</td><td>string</td></tr> @@ -91,7 +91,6 @@ tr:nth-child(even) { <tr><td>{black_and_white}</td><td>boolean</td></tr> <tr><td>{page_count}</td><td>integer</td></tr> <tr><td>{maturity_rating}</td><td>string</td></tr> - <tr><td>{community_rating}</td><td>string</td></tr> <tr><td>{story_arc}</td><td>string</td></tr> <tr><td>{series_group}</td><td>string</td></tr> <tr><td>{scan_info}</td><td>string</td></tr> diff --git a/comictaggerlib/ui/taggerwindow.ui b/comictaggerlib/ui/taggerwindow.ui index 80f7074..8312eee 100644 --- a/comictaggerlib/ui/taggerwindow.ui +++ b/comictaggerlib/ui/taggerwindow.ui @@ -964,41 +964,15 @@ - - - - User Rating - - - - - - - - 0 - 0 - - - - - 80 - 16777215 - - - - false - - - - + - Community Rating + Critical Rating - + 80