Fix error with db return value for no matches

This commit is contained in:
DominikDoom
2023-11-29 18:14:14 +01:00
parent 4df90f5c95
commit 2dd48eab79
2 changed files with 9 additions and 2 deletions

View File

@@ -419,6 +419,7 @@ def on_ui_settings():
"tac_showWikiLinks": shared.OptionInfo(False, "Show '?' next to tags, linking to its Danbooru or e621 wiki page").info("Warning: This is an external site and very likely contains NSFW examples!"),
"tac_showExtraNetworkPreviews": shared.OptionInfo(True, "Show preview thumbnails for extra networks if available"),
"tac_modelSortOrder": shared.OptionInfo("Name", "Model sort order", gr.Dropdown, lambda: {"choices": list(sort_criteria.keys())}).info("Order for extra network models and wildcards in dropdown"),
# Frequency sorting settings
"tac_frequencySort": shared.OptionInfo(True, "Locally record tag usage and sort frequent tags higher").info("Will also work for extra networks, keeping the specified base order"),
"tac_frequencyFunction": shared.OptionInfo("Logarithmic (weak)", "Function to use for frequency sorting", gr.Dropdown, lambda: {"choices": list(frequency_sort_functions.keys())}).info("; ".join([f'<b>{key}</b>: {val}' for key, val in frequency_sort_functions.items()])),
"tac_frequencyMinCount": shared.OptionInfo(3, "Minimum number of uses for a tag to be considered frequent").info("Tags with less uses than this will not be sorted higher, even if the sorting function would normally result in a higher position."),

View File

@@ -113,7 +113,10 @@ class TagFrequencyDb:
)
tag_count = cursor.fetchone()
return tag_count[0], tag_count[1] if tag_count else 0
if tag_count:
return tag_count[0], tag_count[1]
else:
return 0, None
def get_tag_counts(self, tags: list[str], ttypes: list[str], negative=False):
count_str = "count_neg" if negative else "count_pos"
@@ -128,7 +131,10 @@ class TagFrequencyDb:
(tag, ttype),
)
tag_count = cursor.fetchone()
yield (tag, ttype, tag_count[0], tag_count[1]) if tag_count else (tag, ttype, 0)
if tag_count:
yield (tag, ttype, tag_count[0], tag_count[1])
else:
yield (tag, ttype, 0, None)
def increase_tag_count(self, tag, ttype, negative=False):
pos_count = self.get_tag_count(tag, ttype, False)[0]