pass_to_bw.py (1812B)
1 import argparse 2 import base64 3 import json 4 5 FOLDERS = [ 6 {"object": "folder", "id": "c3470844-395c-46a0-8ebf-8a4161fc52af", "name": "chat"}, 7 {"object": "folder", "id": "d2ac53c5-68e3-4d66-9757-3a6e7302b687", "name": "db"}, 8 {"object": "folder", "id": "cedc22c3-5306-489c-81da-c5cc3bc8db69", "name": "email"}, 9 {"object": "folder", "id": "1b228e1b-6b3f-40a3-879e-7497125771a4", "name": "sites"}, 10 {"object": "folder", "id": "06d2c19c-7d41-4a3b-94f2-2fca30d4127b", "name": "wifi"}, 11 {"object": "folder", "id": None, "name": "No Folder"}, 12 ] 13 14 15 def main() -> int: 16 parser = argparse.ArgumentParser(description="Import stuff to bitwarden") 17 parser.add_argument( 18 "name", 19 metavar="NAME", 20 type=str, 21 help="name of the password to create", 22 ) 23 parser.add_argument( 24 "password", 25 metavar="PWD", 26 type=str, 27 help="password to create", 28 ) 29 parser.add_argument( 30 "--user", 31 help="username if any", 32 ) 33 parser.add_argument( 34 "--uri", 35 help="uri for this password if any", 36 ) 37 parser.add_argument( 38 "--folder", 39 default="sites", 40 help="name of the folder to put this in", 41 ) 42 43 args = parser.parse_args() 44 45 item = { 46 "folderId": [f["id"] for f in FOLDERS if f["name"] == args.folder][0], 47 "name": args.name, 48 "type": 1, 49 "login": {"password": args.password}, 50 } 51 52 if args.user: 53 item["login"]["username"] = args.user 54 55 if args.uri: 56 item["login"]["uris"] = [{"uri": args.uri}] 57 58 item_json = json.dumps(item) 59 60 encodedBytes = base64.b64encode(item_json.encode("utf-8")) 61 encodedStr = str(encodedBytes, "utf-8") 62 print(encodedStr) 63 64 return 0 65 66 67 if __name__ == "__main__": 68 raise SystemExit(main())