diff --git a/database.py b/database.py index ef4dd71..1967029 100644 --- a/database.py +++ b/database.py @@ -27,11 +27,19 @@ def search_database(database_file, query): any_mode = True else: any_mode = False + + if 'MULTI' in tag_group: + tag_group.remove('MULTI') + multi_mode = True + else: + multi_mode = False + for tag in tag_group: if tag not in tag_mapping: tag_mapping[tag] = { 'priority': priority_group_idx, - 'tag_number': tag_counter + 'tag_number': tag_counter, + 'multi': multi_mode } if not any_mode: tag_counter += 1 @@ -60,7 +68,7 @@ def search_database(database_file, query): results.append(result_entry) # Сортируем по приоритету - tag_priority = {v['tag_number']: v['priority'] for v in tag_mapping.values()} + tag_priority = {v['tag_number']: (v['priority'],v['multi']) for v in tag_mapping.values()} # Then verify no conflicts if len(set((v['tag_number'], v['priority']) for v in tag_mapping.values())) != len(tag_priority): raise ValueError("Conflicting priorities for same tag_number")