Export in Bitwarden CSV format
This commit is contained in:
parent
7e8add9327
commit
0a85041143
61
1export.py
61
1export.py
@ -14,15 +14,17 @@ GPG_BIN = 'gpg'
|
|||||||
TAR_BIN = 'tar'
|
TAR_BIN = 'tar'
|
||||||
|
|
||||||
Record = namedtuple('Record', [
|
Record = namedtuple('Record', [
|
||||||
'Title',
|
"folder",
|
||||||
'Url',
|
"favorite",
|
||||||
'Username',
|
"type",
|
||||||
'Password',
|
"name",
|
||||||
'OTPAuth',
|
"notes",
|
||||||
'Favorite',
|
"fields",
|
||||||
'Archived',
|
"reprompt",
|
||||||
'Tags',
|
"login_uri",
|
||||||
'Notes',
|
"login_username",
|
||||||
|
"login_password",
|
||||||
|
"login_totp"
|
||||||
])
|
])
|
||||||
|
|
||||||
Vault = namedtuple('Vault', ['title', 'records'])
|
Vault = namedtuple('Vault', ['title', 'records'])
|
||||||
@ -61,7 +63,7 @@ def process_vault(vault):
|
|||||||
print(str_v(vault_name, 'fetch items'), end='')
|
print(str_v(vault_name, 'fetch items'), end='')
|
||||||
items = retrieve_items(vault_uuid)
|
items = retrieve_items(vault_uuid)
|
||||||
records = []
|
records = []
|
||||||
records.append(Record("Title","Url","Username","Password","OTPAuth","Favorite","Archived","Tags","Notes"))
|
records.append(Record("folder","favorite","type","name","notes","fields","reprompt","login_uri","login_username","login_password","login_totp"))
|
||||||
print(str_vr(vault_name, 0, len(items)), end='')
|
print(str_vr(vault_name, 0, len(items)), end='')
|
||||||
for index, item in enumerate(items):
|
for index, item in enumerate(items):
|
||||||
item_data = retrieve_item(item['id'])
|
item_data = retrieve_item(item['id'])
|
||||||
@ -78,15 +80,16 @@ def save_vault(base_dir, vault):
|
|||||||
record_writer = csv.writer(csv_file)
|
record_writer = csv.writer(csv_file)
|
||||||
for record in vault.records:
|
for record in vault.records:
|
||||||
record_writer.writerow([
|
record_writer.writerow([
|
||||||
record.Title,
|
record.folder,
|
||||||
record.Url,
|
record.favorite,
|
||||||
record.Username,
|
record.type,
|
||||||
record.Password,
|
record.name,
|
||||||
record.OTPAuth,
|
record.notes,
|
||||||
record.Favorite,
|
record.fields,
|
||||||
record.Archived,
|
record.login_uri,
|
||||||
record.Tags,
|
record.login_username,
|
||||||
record.Notes
|
record.login_password,
|
||||||
|
record.login_totp
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
@ -123,15 +126,17 @@ def retrieve_item(item_uuid):
|
|||||||
def extract_item_fields(item_data):
|
def extract_item_fields(item_data):
|
||||||
fields = item_data.get('fields', [])
|
fields = item_data.get('fields', [])
|
||||||
return Record(
|
return Record(
|
||||||
Title=item_data.get('title', ''),
|
folder=(item_data.get('vault', {})).get('name', ''),
|
||||||
Url=(item_data.get('urls', [])[0]["href"] if item_data.get('urls', [])[0] else ''),
|
favorite="",
|
||||||
Username=value_from_fields(fields, 'username').strip(),
|
type=item_data.get('category', '').lower(),
|
||||||
Password=value_from_fields(fields, 'password').strip(),
|
name=item_data.get('title', ''),
|
||||||
OTPAuth="",
|
notes=value_from_fields(fields, 'notesPlain'),
|
||||||
Favorite="false",
|
fields="",
|
||||||
Archived="false",
|
reprompt=0,
|
||||||
Tags="",
|
login_uri=item_data.get('urls', [])[0].get("href", ""),
|
||||||
Notes=value_from_fields(fields, 'notesPlain')
|
login_username=value_from_fields(fields, 'username').strip(),
|
||||||
|
login_password=value_from_fields(fields, 'password').strip(),
|
||||||
|
login_totp=""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user