fix future problem of 999 index
This commit is contained in:
47
flit.py
47
flit.py
@@ -123,7 +123,7 @@ def parse_opts():
|
|||||||
type=str,
|
type=str,
|
||||||
help="List only named share",
|
help="List only named share",
|
||||||
default=None,
|
default=None,
|
||||||
nargs="?"
|
nargs="?",
|
||||||
)
|
)
|
||||||
|
|
||||||
del_parser = subparsers.add_parser("del", add_help=False)
|
del_parser = subparsers.add_parser("del", add_help=False)
|
||||||
@@ -157,13 +157,16 @@ def random_name():
|
|||||||
"""
|
"""
|
||||||
while True:
|
while True:
|
||||||
existing_names = [c["name"] for c in get_folders()]
|
existing_names = [c["name"] for c in get_folders()]
|
||||||
index = 0
|
existing_numbers = [
|
||||||
for existing in existing_names:
|
tryint(num[0:3]) for num in existing_names if tryint(num[0:3]) != None
|
||||||
try:
|
]
|
||||||
e_index = int(existing[0:3])
|
|
||||||
index = max(e_index + 1, index)
|
index = max(existing_numbers) + 1
|
||||||
except:
|
if index > 999:
|
||||||
pass
|
for index in range(1000):
|
||||||
|
if not index in existing_numbers:
|
||||||
|
break
|
||||||
|
|
||||||
name = "{:03d}-{}-{}".format(
|
name = "{:03d}-{}-{}".format(
|
||||||
index,
|
index,
|
||||||
"".join([random_char() for x in range(3)]),
|
"".join([random_char() for x in range(3)]),
|
||||||
@@ -306,7 +309,7 @@ def list_folders(root_url, verbose=False, filter_name=None):
|
|||||||
|
|
||||||
folders = get_folders()
|
folders = get_folders()
|
||||||
header_format = "{:" + str(12 + len(root_url)) + "} {} {} {} {}"
|
header_format = "{:" + str(12 + len(root_url)) + "} {} {} {} {}"
|
||||||
print(header_format.format("URL","Created","ToDelete","InDays","Description"))
|
print(header_format.format("URL", "Created", "ToDelete", "InDays", "Description"))
|
||||||
for c in folders:
|
for c in folders:
|
||||||
if filter_name is not None:
|
if filter_name is not None:
|
||||||
if filter_name != c["name"]:
|
if filter_name != c["name"]:
|
||||||
@@ -382,6 +385,22 @@ def write_config(p, config):
|
|||||||
return json.dump(config, fp, indent=2, sort_keys=True)
|
return json.dump(config, fp, indent=2, sort_keys=True)
|
||||||
|
|
||||||
|
|
||||||
|
def tryint(s):
|
||||||
|
"""Return integer, or None
|
||||||
|
|
||||||
|
Args:
|
||||||
|
s (str): Integer as string
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Int or None
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
return int(s, 10)
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
opts = parse_opts()
|
opts = parse_opts()
|
||||||
cwd = os.getcwd()
|
cwd = os.getcwd()
|
||||||
@@ -391,7 +410,7 @@ if __name__ == "__main__":
|
|||||||
os.chdir(opts.home)
|
os.chdir(opts.home)
|
||||||
|
|
||||||
if opts.command == "add":
|
if opts.command == "add":
|
||||||
""" Add a new share """
|
"""Add a new share"""
|
||||||
|
|
||||||
new_name = random_name()
|
new_name = random_name()
|
||||||
create_new(new_name, opts.days, opts.description)
|
create_new(new_name, opts.days, opts.description)
|
||||||
@@ -401,19 +420,19 @@ if __name__ == "__main__":
|
|||||||
list_folders(opts.root, verbose=True, filter_name=new_name)
|
list_folders(opts.root, verbose=True, filter_name=new_name)
|
||||||
|
|
||||||
if opts.command == "list" or opts.command is None:
|
if opts.command == "list" or opts.command is None:
|
||||||
""" List shares """
|
"""List shares"""
|
||||||
|
|
||||||
name = None
|
name = None
|
||||||
try:
|
try:
|
||||||
name = opts.name
|
name = opts.name
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
if name:
|
if name:
|
||||||
if os.path.isdir(os.path.join(cwd, name)):
|
if os.path.isdir(os.path.join(cwd, name)):
|
||||||
name = os.path.basename(os.path.realpath(os.path.join(cwd, name)))
|
name = os.path.basename(os.path.realpath(os.path.join(cwd, name)))
|
||||||
list_folders(opts.root, verbose=opts.verbose, filter_name=name)
|
list_folders(opts.root, verbose=opts.verbose, filter_name=name)
|
||||||
|
|
||||||
if opts.command == "del":
|
if opts.command == "del":
|
||||||
""" Delete due shares """
|
"""Delete due shares"""
|
||||||
|
|
||||||
del_due_folders()
|
del_due_folders()
|
||||||
|
|||||||
Reference in New Issue
Block a user