extract-msg 0.48.2__tar.gz → 0.48.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {extract_msg-0.48.2 → extract_msg-0.48.4}/CHANGELOG.md +7 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/PKG-INFO +3 -3
- {extract_msg-0.48.2 → extract_msg-0.48.4}/README.rst +2 -2
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/__init__.py +2 -2
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/__main__.py +1 -1
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/attachment_base.py +1 -1
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/signed_att.py +42 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg.egg-info/PKG-INFO +3 -3
- {extract_msg-0.48.2 → extract_msg-0.48.4}/LICENSE.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/MANIFEST.in +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/_rtf/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/_rtf/create_doc.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/_rtf/inject_rtf.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/_rtf/token.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/_rtf/tokenize_rtf.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/attachment.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/broken_att.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att_handler/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att_handler/custom_handler.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att_handler/lnk_obj_att.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att_handler/outlook_image_dib.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/emb_msg_att.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/unsupported_att.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/web_att.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/constants/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/constants/ps.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/constants/re.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/constants/st.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/data/logging-config/logging-nt.json +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/data/logging-config/logging-posix.json +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_mac_ce.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_mac_cyrillic.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_mac_greek.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_mac_iceland.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_mac_turkish.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_win874_dec.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/_dt/_win950_dec.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/encoding/utils.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/enums.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/exceptions.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/appointment.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/calendar.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/calendar_base.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/contact.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/journal.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/meeting_cancellation.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/meeting_exception.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/meeting_forward.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/meeting_related.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/meeting_request.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/meeting_response.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/message.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/message_base.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/message_signed.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/message_signed_base.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/msg.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/post.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/sticky_note.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/task.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/msg_classes/task_request.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/null_date.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/ole_writer.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/open_msg.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/properties/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/properties/named.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/properties/prop.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/properties/properties_store.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/py.typed +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/recipient.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/__init__.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/_helpers.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/business_card.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/cfoas.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/contact_link_entry.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/dev_mode_a.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/dv_target_device.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/entry_id.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/misc_id.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/mon_stream.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/odt.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/ole_pres.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/ole_stream_struct.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/recurrence_pattern.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/report_tag.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/system_time.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/time_zone_definition.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/time_zone_struct.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/toc_entry.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/structures/tz_rule.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/utils.py +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg.egg-info/SOURCES.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg.egg-info/dependency_links.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg.egg-info/entry_points.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg.egg-info/requires.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg.egg-info/top_level.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/requirements.txt +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/setup.cfg +0 -0
- {extract_msg-0.48.2 → extract_msg-0.48.4}/setup.py +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
**v0.48.4**
|
|
2
|
+
* [[TeamMsgExtractor #411](https://github.com/TeamMsgExtractor/msg-extractor/issues/411)] Fix console script throwing error due to changed console args not defaulting.
|
|
3
|
+
|
|
4
|
+
**v0.48.3**
|
|
5
|
+
* [[TeamMsgExtractor #409](https://github.com/TeamMsgExtractor/msg-extractor/issues/409)] Added missing private method to `SignedAttachment`.
|
|
6
|
+
* Fixed some missing typing information.
|
|
7
|
+
|
|
1
8
|
**v0.48.2**
|
|
2
9
|
* Fixed bugs with `MessageBase.asEmailMessage()`. Numerous improvements to how it handles the data.
|
|
3
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: extract_msg
|
|
3
|
-
Version: 0.48.
|
|
3
|
+
Version: 0.48.4
|
|
4
4
|
Summary: Extracts emails and attachments saved in Microsoft Outlook's .msg files
|
|
5
5
|
Home-page: https://github.com/TeamMsgExtractor/msg-extractor
|
|
6
6
|
Download-URL: https://github.com/TeamMsgExtractor/msg-extractor/archives/master
|
|
@@ -278,8 +278,8 @@ your access to the newest major version of extract-msg.
|
|
|
278
278
|
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
|
|
279
279
|
:target: LICENSE.txt
|
|
280
280
|
|
|
281
|
-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.
|
|
282
|
-
:target: https://pypi.org/project/extract-msg/0.48.
|
|
281
|
+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.4-blue.svg
|
|
282
|
+
:target: https://pypi.org/project/extract-msg/0.48.4/
|
|
283
283
|
|
|
284
284
|
.. |PyPI2| image:: https://img.shields.io/badge/python-3.8+-brightgreen.svg
|
|
285
285
|
:target: https://www.python.org/downloads/release/python-3810/
|
|
@@ -260,8 +260,8 @@ your access to the newest major version of extract-msg.
|
|
|
260
260
|
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
|
|
261
261
|
:target: LICENSE.txt
|
|
262
262
|
|
|
263
|
-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.
|
|
264
|
-
:target: https://pypi.org/project/extract-msg/0.48.
|
|
263
|
+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.4-blue.svg
|
|
264
|
+
:target: https://pypi.org/project/extract-msg/0.48.4/
|
|
265
265
|
|
|
266
266
|
.. |PyPI2| image:: https://img.shields.io/badge/python-3.8+-brightgreen.svg
|
|
267
267
|
:target: https://www.python.org/downloads/release/python-3810/
|
|
@@ -27,8 +27,8 @@ https://github.com/TeamMsgExtractor/msg-extractor
|
|
|
27
27
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
28
28
|
|
|
29
29
|
__author__ = 'Destiny Peterson & Matthew Walker'
|
|
30
|
-
__date__ = '2024-03-
|
|
31
|
-
__version__ = '0.48.
|
|
30
|
+
__date__ = '2024-03-20'
|
|
31
|
+
__version__ = '0.48.4'
|
|
32
32
|
|
|
33
33
|
__all__ = [
|
|
34
34
|
# Modules:
|
|
@@ -13,7 +13,7 @@ from extract_msg.enums import ErrorBehavior
|
|
|
13
13
|
from typing import List
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def main(argv
|
|
16
|
+
def main(argv: List[str] = sys.argv) -> None:
|
|
17
17
|
# Setup logging to stdout, indicate running from cli
|
|
18
18
|
CLI_LOGGING = 'extract_msg_cli'
|
|
19
19
|
args = utils.getCommandArgs(argv[1:])
|
|
@@ -152,7 +152,7 @@ class AttachmentBase(abc.ABC):
|
|
|
152
152
|
raise ReferenceError('The MSGFile for this Attachment instance has been garbage collected.')
|
|
153
153
|
return msg._getTypedStream([self.__dir, msgPathToString(filename)], True, _type)
|
|
154
154
|
|
|
155
|
-
def _handleFnc(self, _zip, filename, customPath, kwargs) -> pathlib.Path:
|
|
155
|
+
def _handleFnc(self, _zip, filename, customPath: pathlib.Path, kwargs) -> pathlib.Path:
|
|
156
156
|
"""
|
|
157
157
|
"Handle Filename Conflict"
|
|
158
158
|
|
|
@@ -62,6 +62,48 @@ class SignedAttachment:
|
|
|
62
62
|
if self.__data is None:
|
|
63
63
|
self.__data = data
|
|
64
64
|
|
|
65
|
+
def _handleFnc(self, _zip, filename, customPath: pathlib.Path, kwargs) -> pathlib.Path:
|
|
66
|
+
"""
|
|
67
|
+
"Handle Filename Conflict"
|
|
68
|
+
|
|
69
|
+
Internal function for use in determining how to modify the saving path
|
|
70
|
+
when a file with the same name already exists. This is mainly because
|
|
71
|
+
any save function that uses files will need to do this functionality.
|
|
72
|
+
|
|
73
|
+
:returns: A ``pathlib.Path`` object to where the file should be saved.
|
|
74
|
+
"""
|
|
75
|
+
fullFilename = customPath / filename
|
|
76
|
+
|
|
77
|
+
overwriteExisting = kwargs.get('overwriteExisting', False)
|
|
78
|
+
|
|
79
|
+
if _zip:
|
|
80
|
+
# If we are writing to a zip file and are not overwriting.
|
|
81
|
+
if not overwriteExisting:
|
|
82
|
+
name, ext = os.path.splitext(filename)
|
|
83
|
+
nameList = _zip.namelist()
|
|
84
|
+
if str(fullFilename).replace('\\', '/') in nameList:
|
|
85
|
+
for i in range(2, 100):
|
|
86
|
+
testName = customPath / f'{name} ({i}){ext}'
|
|
87
|
+
if str(testName).replace('\\', '/') not in nameList:
|
|
88
|
+
return testName
|
|
89
|
+
else:
|
|
90
|
+
# If we couldn't find one that didn't exist.
|
|
91
|
+
raise FileExistsError(f'Could not create the specified file because it already exists ("{fullFilename}").')
|
|
92
|
+
else:
|
|
93
|
+
if not overwriteExisting and fullFilename.exists():
|
|
94
|
+
# Try to split the filename into a name and extension.
|
|
95
|
+
name, ext = os.path.splitext(filename)
|
|
96
|
+
# Try to add a number to it so that we can save without overwriting.
|
|
97
|
+
for i in range(2, 100):
|
|
98
|
+
testName = customPath / f'{name} ({i}){ext}'
|
|
99
|
+
if not testName.exists():
|
|
100
|
+
return testName
|
|
101
|
+
else:
|
|
102
|
+
# If we couldn't find one that didn't exist.
|
|
103
|
+
raise FileExistsError(f'Could not create the specified file because it already exists ("{fullFilename}").')
|
|
104
|
+
|
|
105
|
+
return fullFilename
|
|
106
|
+
|
|
65
107
|
def save(self, **kwargs) -> constants.SAVE_TYPE:
|
|
66
108
|
"""
|
|
67
109
|
Saves the attachment data.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: extract-msg
|
|
3
|
-
Version: 0.48.
|
|
3
|
+
Version: 0.48.4
|
|
4
4
|
Summary: Extracts emails and attachments saved in Microsoft Outlook's .msg files
|
|
5
5
|
Home-page: https://github.com/TeamMsgExtractor/msg-extractor
|
|
6
6
|
Download-URL: https://github.com/TeamMsgExtractor/msg-extractor/archives/master
|
|
@@ -278,8 +278,8 @@ your access to the newest major version of extract-msg.
|
|
|
278
278
|
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
|
|
279
279
|
:target: LICENSE.txt
|
|
280
280
|
|
|
281
|
-
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.
|
|
282
|
-
:target: https://pypi.org/project/extract-msg/0.48.
|
|
281
|
+
.. |PyPI3| image:: https://img.shields.io/badge/pypi-0.48.4-blue.svg
|
|
282
|
+
:target: https://pypi.org/project/extract-msg/0.48.4/
|
|
283
283
|
|
|
284
284
|
.. |PyPI2| image:: https://img.shields.io/badge/python-3.8+-brightgreen.svg
|
|
285
285
|
:target: https://www.python.org/downloads/release/python-3810/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att_handler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/attachments/custom_att_handler/lnk_obj_att.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{extract_msg-0.48.2 → extract_msg-0.48.4}/extract_msg/data/logging-config/logging-posix.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|