diff --git a/convert.py b/convert.py index b15eaf1..d9edb82 100755 --- a/convert.py +++ b/convert.py @@ -64,7 +64,7 @@ for item in opif: target_group_name = "Recycle Bin" # Add entry to KeePass - entry = kp.add_entry(target_group_name, item["title"]) + entry = kp.add_entry(target_group_name, props["title"]) fids_done.append("title") # UUID - memorise for later linking? @@ -104,8 +104,8 @@ for item in opif: fids_done.append("notesPlain") # Dates - entry.ctime = datetime.datetime.fromtimestamp(item["createdAt"]) - entry.mtime = datetime.datetime.fromtimestamp(item["updatedAt"]) + entry.ctime = datetime.datetime.fromtimestamp(props["createdAt"]) + entry.mtime = datetime.datetime.fromtimestamp(props["updatedAt"]) fids_done.append("createdAt") fids_done.append("updatedAt") @@ -137,26 +137,15 @@ for item in opif: - # TODO: scope: Never = never suggest in browser - - secure = item["secureContents"] - - + # TODO: scope: Never = never suggest in browser (i.e. don't add KPH fields) + secure = item.raw["secureContents"] # Other web fields if "fields" in secure: for field in secure["fields"]: d = field.get("designation") if d != "username" and d != "password": - entry.set_custom_property("Web field: {}".format(field["name"]), field["value"]) - - # Find URL in fields - if not entry.url: - if "htmlAction" in secure: - entry.url = secure["htmlAction"] - - - + entry.set_custom_property("KPH: {}".format(field["name"]), field["value"]) # AFTER ALL OTHER PROCESSING IS DONE: Password history if "passwordHistory" in props: @@ -171,5 +160,4 @@ for item in opif: entry.password = original_password entry.mtime = original_mtime - kp.save() diff --git a/onepif/OnepifEntry.py b/onepif/OnepifEntry.py index 62e2b41..60317dc 100644 --- a/onepif/OnepifEntry.py +++ b/onepif/OnepifEntry.py @@ -184,24 +184,3 @@ class OnepifEntry(): props[new_key] = v # TODO: Maybe walk all keys and see if there's (xxx_dd), xxx_mm, xxx_yy and turn them into a date return props - - def __getattr__(self, name): - if name not in self.raw: - raise AttributeError - return self.raw[name] - - def __getitem__(self, key): - if self.__missing__(key): - raise KeyError - return self.raw[key] - - def __contains__(self, item): - return item in self.raw - - def __missing__(self, key): - return key not in self.raw - - def get(self, key): - if key not in self.raw: - return None - return self.raw[key]