python3 ./dedupe_texts.py --ignore-date-milliseconds --ignore-whitespace-differences ~/sms-2023-05-09_01-04-44.xml/sms-2023-05-09_01-04-44.xml ~/sms-2023-05-09_01-04-44.xml/cleaned.xml ~/sms
-2023-05-09_01-04-44.xml/log.log
Reading '/home/USERNAME/sms-2023-05-09_01-04-44.xml/sms-2023-05-09_01-04-44.xml'... Done in 160.8 s.
Preparing log file '/home/USERNAME/sms-2023-05-09_01-04-44.xml/log.log'.
Searching for duplicates... Traceback (most recent call last):
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 295, in <module>
output_tree, input_message_counts, output_message_counts = deduplicate_messages_in_tree(input_tree, log_file,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 211, in deduplicate_messages_in_tree
child_tag, child_attributes = retrieve_message_properties_and_tag(child, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 188, in retrieve_message_properties_and_tag
child_tag, child_attributes = child.tag, retrieve_message_properties(child, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 131, in retrieve_message_properties
result = tuple(item for element in [child] + list(child.iter()) for item in compile_relevant_fields(element))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 131, in <genexpr>
result = tuple(item for element in [child] + list(child.iter()) for item in compile_relevant_fields(element))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 123, in compile_relevant_fields
return tuple(
^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 128, in <genexpr>
and not contains_smil(element.attrib[field])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/USERNAME/Sources/SMS-MMS-deduplication/./dedupe_texts.py", line 74, in contains_smil
raise RuntimeError(f"Encountered SMIL data not captured by existing check? {repr(s)}")
RuntimeError: Encountered SMIL data not captured by existing check? '<?xml version="1.0" encoding="UTF-8"?><smil>\r\n<head>\r\n<layout>\r\n<root-layout/>\r\n<region id="Text" top="70%" left="0%" height="30%" width="100%" fit="scroll"/>\r\n<region id="Image" top="0%" left="0%" height="70%" width="100%" fit="meet"/>\r\n</layout>\r\n</head>\r\n<body>\r\n<par dur="10s">\r\n<img src="imagejpeg_0.jpg" region="Image"/>\r\n</par>\r\n</body>\r\n</smil>'
This is reading a 18GBish backup that has been handed across from Windows Phone 8 -> Windows Phone 8.1 -> Windows 10 Mobile -> Android 9 -> Android 10 -> Android 11 -> Android 12 (LineageOS).
I am not surprised this backup isn't playing nice, but it does work on-device well, if that helps at all.