forked from Wobbl/Wobuzz
Improved unique name system.
This commit is contained in:
parent
a8560add65
commit
e5cc7c0cdb
3 changed files with 24 additions and 12 deletions
|
@ -11,7 +11,7 @@ class Utils:
|
|||
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
self.unique_names = {}
|
||||
self.unique_names = []
|
||||
|
||||
def format_time(self, ms):
|
||||
seconds = int(ms / 1000) % 60
|
||||
|
@ -30,19 +30,26 @@ class Utils:
|
|||
|
||||
return output
|
||||
|
||||
def unique_name(self, name: str) -> str:
|
||||
def unique_name(self, name: str, ignore: str = None) -> str:
|
||||
"""
|
||||
Makes a name unique by adding a number to it if the name already exists.
|
||||
"""
|
||||
|
||||
if name in self.unique_names:
|
||||
num_duplicates = self.unique_names[name]
|
||||
self.unique_names[name] += 1
|
||||
# just return the original name if it is the ignore name
|
||||
# this can be useful when e.g. renaming something bc. u don't want to append a number when the user doesn't
|
||||
# change anything
|
||||
if name == ignore:
|
||||
return name
|
||||
|
||||
name = f"{name} {str(num_duplicates).zfill(2)}"
|
||||
occurrences = 0
|
||||
|
||||
else:
|
||||
self.unique_names[name] = 1
|
||||
unique_name = name
|
||||
|
||||
return name
|
||||
while unique_name in self.unique_names:
|
||||
occurrences += 1
|
||||
unique_name = f"{name} {str(occurrences).zfill(2)}"
|
||||
|
||||
self.unique_names.append(unique_name)
|
||||
|
||||
return unique_name
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue