Skip to content

Commit

Permalink
refactor, pull out URIs for logins to get favicons
Browse files Browse the repository at this point in the history
  • Loading branch information
Philip Snowberger committed Mar 10, 2021
1 parent dfea12a commit 2aa3605
Showing 1 changed file with 43 additions and 24 deletions.
67 changes: 43 additions & 24 deletions gather.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,49 +8,68 @@
items = []
output = {"folders": folders, "items": items}

for dir_name, subdir_list, file_list in os.walk('dump'):
#print(dir_name, subdir_list, file_list)
if dir_name.startswith("dump/"):
folder_id = str(uuid.uuid4())
folders.append({"name": dir_name[5:], "id": folder_id})
else:
folder_id = None
def parse_file(path):
password = None
uris = []
fields = []

for fname in file_list:
lines = [line.strip() for line in open(os.path.join(dir_name, fname)).readlines()]
password = None
if ': ' not in lines[0]:
password = lines[0]
del lines[0]
fields = []
for i, line in enumerate(lines):
if not line:
lines = [line.strip() for line in open(path).readlines()]
if ': ' not in lines[0]:
password = lines[0]
del lines[0]
for i, line in enumerate(lines):
if not line:
continue
if ': ' not in line:
if password:
print(f"file {path} has a duplicate password or soemthing (line {i})")
continue
if ': ' not in line:
if password:
print(f"file {os.path.join(dir_name, fname)} has a duplicate password or soemthing (line {i})")
continue
else:
password = line
else:
k, v = line.split(": ")
password = line
else:
k, v = line.split(": ")
if k.lower() in ('url', 'link', 'site'):
uris.append({
"match": None,
"uri": v,
})
else:
fields.append({
"name": k,
"value": v,
"type": 0,
})
return password, fields, uris

for dir_name, subdir_list, file_list in os.walk('root'):
#print(dir_name, subdir_list, file_list)
if dir_name.startswith('root/'):
folder_id = str(uuid.uuid4())
folders.append({"name": dir_name[5:], "id": folder_id})
else:
folder_id = None

for fname in file_list:
password, fields, uris = parse_file(os.path.join(dir_name, fname))

if folder_id is None:
item_name = fname
else:
item_name = os.path.join(dir_name[5:], fname)

items.append({
"id": str(uuid.uuid4()),
"organizationId": None,
"folderId": folder_id,
"type": 1,
"name": fname,
"name": item_name,
"notes": None,
"favorite": False,
"fields": fields,
"login": {
"password": password,
"totp": None,
"uris": uris,
},
"collectionIds": None,
})
Expand Down

0 comments on commit 2aa3605

Please sign in to comment.