WebBrowser/Passwords/PasswordReader.py

branch
QtWebEngine
changeset 4744
ad3f6c1caf8d
parent 4743
f9e2e536d130
child 4745
285bfd224a1b
equal deleted inserted replaced
4743:f9e2e536d130 4744:ad3f6c1caf8d
8 """ 8 """
9 9
10 from __future__ import unicode_literals 10 from __future__ import unicode_literals
11 11
12 from PyQt5.QtCore import QXmlStreamReader, QIODevice, QFile, \ 12 from PyQt5.QtCore import QXmlStreamReader, QIODevice, QFile, \
13 QCoreApplication, QUrl 13 QCoreApplication, QUrl, QByteArray
14 14
15 15
16 class PasswordReader(QXmlStreamReader): 16 class PasswordReader(QXmlStreamReader):
17 """ 17 """
18 Class implementing a reader object for login data files. 18 Class implementing a reader object for login data files.
47 while not self.atEnd(): 47 while not self.atEnd():
48 self.readNext() 48 self.readNext()
49 if self.isStartElement(): 49 if self.isStartElement():
50 version = self.attributes().value("version") 50 version = self.attributes().value("version")
51 if self.name() == "Password" and \ 51 if self.name() == "Password" and \
52 (not version or version == "1.0"): 52 (not version or version == "2.0"):
53 self.__readPasswords() 53 self.__readPasswords()
54 else: 54 else:
55 self.raiseError(QCoreApplication.translate( 55 self.raiseError(QCoreApplication.translate(
56 "PasswordReader", 56 "PasswordReader",
57 "The file is not a Passwords version 1.0 file.")) 57 "The file is not a Passwords version 2.0 file."))
58 58
59 return self.__logins, self.__loginForms, self.__never 59 return self.__logins, self.__loginForms, self.__never
60 60
61 def __readPasswords(self): 61 def __readPasswords(self):
62 """ 62 """
110 Private method to read the forms information. 110 Private method to read the forms information.
111 """ 111 """
112 if not self.isStartElement() and self.name() != "Forms": 112 if not self.isStartElement() and self.name() != "Forms":
113 return 113 return
114 114
115 # TODO: Passwords: adjust reader to new login form
115 while not self.atEnd(): 116 while not self.atEnd():
116 self.readNext() 117 self.readNext()
117 if self.isStartElement(): 118 if self.isStartElement():
118 if self.name() == "Form": 119 if self.name() == "Form":
119 from .LoginForm import LoginForm 120 from .LoginForm import LoginForm
120 attributes = self.attributes() 121 attributes = self.attributes()
121 key = attributes.value("key") 122 key = attributes.value("key")
122 form = LoginForm() 123 form = LoginForm()
123 form.url = QUrl(attributes.value("url")) 124 form.url = QUrl(attributes.value("url"))
124 form.name = attributes.value("name") 125 form.name = attributes.value("name")
125 form.hasAPassword = attributes.value("password") == "yes" 126
126 elif self.name() == "Elements": 127 elif self.name() == "PostData":
127 continue 128 form.postData = QByteArray(
128 elif self.name() == "Element": 129 self.readElementText().encode("utf-8"))
129 attributes = self.attributes()
130 name = attributes.value("name")
131 value = attributes.value("value")
132 form.elements.append((name, value))
133 else: 130 else:
134 self.__skipUnknownElement() 131 self.__skipUnknownElement()
135 132
136 if self.isEndElement(): 133 if self.isEndElement():
137 if self.name() == "Form": 134 if self.name() == "Form":

eric ide

mercurial