once XML files increase past a certain size
(was about 220MB for me), the parser just throws
an error because the tree is too large (iirc for
security reasons)
could maybe look at using iterparse in the future
to parse it without loading the whole file, but this
seems to fix it fine for me
sort of reverts #287, but also makes some other improvements
this allows us to remove some of the Optional's to
make downstream consumers easier to write. However,
this keeps the return type as a Res (result, with errors),
so downstream consumers will have to handle those incase
the schema ever changes (highly unlikely)
also added the 'call_type/message_type' with a comment
there describing the values
I left 'who' Optional I believe it actually should be -
its very possible for there to be no contact name, added
a check incase its '(Unknown)' which is what my phone
sets it to
pytz is overkill for this, use the builin
datetime.timezone module (since py ver 3.2)
attach the readable datetime
like 'Sep 12, 2020 9:12:19 AM' to each
of the calls/messages