From 13bbfbe616023e8d5d1bea311bd79ccdd0951a52 Mon Sep 17 00:00:00 2001 From: Dijkstra Date: Wed, 1 Nov 2023 17:35:31 +0100 Subject: [PATCH] fix : added boundaries for tag indexes and a check if tag list empty --- utils.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/utils.py b/utils.py index dfad7a3..b11b5f3 100644 --- a/utils.py +++ b/utils.py @@ -171,12 +171,17 @@ def sort_tags_by_frequency(meta_tags): return [] def parse_selector(selector, tags_list): + if len(tags_list) == 0: + return "" range_index_list = selector.split(",") output = {} for range_index in range_index_list: # single value if range_index.count(":") == 0: index = int(range_index) + # ignore out of bound indexes + if abs(index) > len(tags_list) - 1: + continue output[index] = tags_list[index] # actual range @@ -196,6 +201,9 @@ def parse_selector(selector, tags_list): start = len(tags_list) + start if end < 0: end = len(tags_list) + end + # clamp start and end values within list boundaries + start, end = min(start, len(tags_list)-1), min(end, len(tags_list)-1) + start, end = max(start, 0), max(end, 0) # merge all for i in range(start, end): output[i] = tags_list[i]