mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
Merge pull request #17 from GRiker/master
Improved error handling in iDevice xml parsing
This commit is contained in:
commit
c785607ca1
@ -192,22 +192,30 @@ class XmlPropertyListParser(object):
|
|||||||
pattern = XmlPropertyListParser.DATETIME_PATTERN
|
pattern = XmlPropertyListParser.DATETIME_PATTERN
|
||||||
match = pattern.match(content)
|
match = pattern.match(content)
|
||||||
if not match:
|
if not match:
|
||||||
raise PropertyListParseError("Failed to parse datetime '%s'" % content)
|
print("XmlPropertyListParser() ERROR: error parsing %s as datetime" % repr(content))
|
||||||
|
#raise PropertyListParseError("Failed to parse datetime '%s'" % content)
|
||||||
|
d = datetime.datetime.today()
|
||||||
|
else:
|
||||||
|
groups, components = match.groupdict(), []
|
||||||
|
for key in units:
|
||||||
|
value = groups[key]
|
||||||
|
if value is None:
|
||||||
|
break
|
||||||
|
components.append(int(value))
|
||||||
|
while len(components) < 3:
|
||||||
|
components.append(1)
|
||||||
|
|
||||||
groups, components = match.groupdict(), []
|
d = datetime.datetime(*components)
|
||||||
for key in units:
|
|
||||||
value = groups[key]
|
|
||||||
if value is None:
|
|
||||||
break
|
|
||||||
components.append(int(value))
|
|
||||||
while len(components) < 3:
|
|
||||||
components.append(1)
|
|
||||||
|
|
||||||
d = datetime.datetime(*components)
|
|
||||||
self._push_value(d)
|
self._push_value(d)
|
||||||
|
|
||||||
def _parse_real(self, name, content):
|
def _parse_real(self, name, content):
|
||||||
self._push_value(float(content))
|
content = content.replace(',', '.')
|
||||||
|
try:
|
||||||
|
self._push_value(float(content))
|
||||||
|
except:
|
||||||
|
print("XmlPropertyListParser() WARNING: error converting %s to float" % repr(content))
|
||||||
|
self._push_value(0.0)
|
||||||
|
|
||||||
def _parse_integer(self, name, content):
|
def _parse_integer(self, name, content):
|
||||||
self._push_value(int(content))
|
self._push_value(int(content))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user