src/eric7/WebBrowser/Passwords/PasswordWriter.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
12 12
13 class PasswordWriter(QXmlStreamWriter): 13 class PasswordWriter(QXmlStreamWriter):
14 """ 14 """
15 Class implementing a writer object to generate login data files. 15 Class implementing a writer object to generate login data files.
16 """ 16 """
17
17 def __init__(self): 18 def __init__(self):
18 """ 19 """
19 Constructor 20 Constructor
20 """ 21 """
21 super().__init__() 22 super().__init__()
22 23
23 self.setAutoFormatting(True) 24 self.setAutoFormatting(True)
24 25
25 def write(self, fileNameOrDevice, logins, forms, nevers): 26 def write(self, fileNameOrDevice, logins, forms, nevers):
26 """ 27 """
27 Public method to write an login data file. 28 Public method to write an login data file.
28 29
29 @param fileNameOrDevice name of the file to write (string) 30 @param fileNameOrDevice name of the file to write (string)
30 or device to write to (QIODevice) 31 or device to write to (QIODevice)
31 @param logins dictionary with login data (user name, password) 32 @param logins dictionary with login data (user name, password)
32 @param forms list of forms data (list of LoginForm) 33 @param forms list of forms data (list of LoginForm)
33 @param nevers list of URLs to never store data for (list of strings) 34 @param nevers list of URLs to never store data for (list of strings)
37 f = fileNameOrDevice 38 f = fileNameOrDevice
38 else: 39 else:
39 f = QFile(fileNameOrDevice) 40 f = QFile(fileNameOrDevice)
40 if not f.open(QIODevice.OpenModeFlag.WriteOnly): 41 if not f.open(QIODevice.OpenModeFlag.WriteOnly):
41 return False 42 return False
42 43
43 self.setDevice(f) 44 self.setDevice(f)
44 return self.__write(logins, forms, nevers) 45 return self.__write(logins, forms, nevers)
45 46
46 def __write(self, logins, forms, nevers): 47 def __write(self, logins, forms, nevers):
47 """ 48 """
48 Private method to write an login data file. 49 Private method to write an login data file.
49 50
50 @param logins dictionary with login data (user name, password) 51 @param logins dictionary with login data (user name, password)
51 @param forms list of forms data (list of LoginForm) 52 @param forms list of forms data (list of LoginForm)
52 @param nevers list of URLs to never store data for (list of strings) 53 @param nevers list of URLs to never store data for (list of strings)
53 @return flag indicating success (boolean) 54 @return flag indicating success (boolean)
54 """ 55 """
55 self.writeStartDocument() 56 self.writeStartDocument()
56 self.writeDTD("<!DOCTYPE passwords>") 57 self.writeDTD("<!DOCTYPE passwords>")
57 self.writeStartElement("Password") 58 self.writeStartElement("Password")
58 self.writeAttribute("version", "2.0") 59 self.writeAttribute("version", "2.0")
59 60
60 if logins: 61 if logins:
61 self.__writeLogins(logins) 62 self.__writeLogins(logins)
62 if forms: 63 if forms:
63 self.__writeForms(forms) 64 self.__writeForms(forms)
64 if nevers: 65 if nevers:
65 self.__writeNevers(nevers) 66 self.__writeNevers(nevers)
66 67
67 self.writeEndDocument() 68 self.writeEndDocument()
68 return True 69 return True
69 70
70 def __writeLogins(self, logins): 71 def __writeLogins(self, logins):
71 """ 72 """
72 Private method to write the login data. 73 Private method to write the login data.
73 74
74 @param logins dictionary with login data (user name, password) 75 @param logins dictionary with login data (user name, password)
75 """ 76 """
76 self.writeStartElement("Logins") 77 self.writeStartElement("Logins")
77 for key, login in logins.items(): 78 for key, login in logins.items():
78 self.writeEmptyElement("Login") 79 self.writeEmptyElement("Login")
79 self.writeAttribute("key", key) 80 self.writeAttribute("key", key)
80 self.writeAttribute("user", login[0]) 81 self.writeAttribute("user", login[0])
81 self.writeAttribute("password", login[1]) 82 self.writeAttribute("password", login[1])
82 self.writeEndElement() 83 self.writeEndElement()
83 84
84 def __writeForms(self, forms): 85 def __writeForms(self, forms):
85 """ 86 """
86 Private method to write forms data. 87 Private method to write forms data.
87 88
88 @param forms list of forms data (list of LoginForm) 89 @param forms list of forms data (list of LoginForm)
89 """ 90 """
90 self.writeStartElement("Forms") 91 self.writeStartElement("Forms")
91 for key, form in forms.items(): 92 for key, form in forms.items():
92 self.writeStartElement("Form") 93 self.writeStartElement("Form")
94 self.writeAttribute("url", form.url.toString()) 95 self.writeAttribute("url", form.url.toString())
95 self.writeAttribute("name", str(form.name)) 96 self.writeAttribute("name", str(form.name))
96 self.writeTextElement("PostData", form.postData) 97 self.writeTextElement("PostData", form.postData)
97 self.writeEndElement() 98 self.writeEndElement()
98 self.writeEndElement() 99 self.writeEndElement()
99 100
100 def __writeNevers(self, nevers): 101 def __writeNevers(self, nevers):
101 """ 102 """
102 Private method to write the URLs never to store login data for. 103 Private method to write the URLs never to store login data for.
103 104
104 @param nevers list of URLs to never store data for (list of strings) 105 @param nevers list of URLs to never store data for (list of strings)
105 """ 106 """
106 self.writeStartElement("Nevers") 107 self.writeStartElement("Nevers")
107 for never in nevers: 108 for never in nevers:
108 self.writeEmptyElement("Never") 109 self.writeEmptyElement("Never")

eric ide

mercurial