diff options
Diffstat (limited to 'distixlib/msg_id_extractor.py')
-rw-r--r-- | distixlib/msg_id_extractor.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/distixlib/msg_id_extractor.py b/distixlib/msg_id_extractor.py index cbe985d..d789e90 100644 --- a/distixlib/msg_id_extractor.py +++ b/distixlib/msg_id_extractor.py @@ -16,6 +16,22 @@ # =*= License: GPL-3+ =*= +import email + def get_ids_from_message(msg): - return [] + return set(_yield_ids(msg)) + + +def _yield_ids(msg): + header_names = ('Message-Id', 'In-Reply-To', 'References') + for header_name in header_names: + for msg_id in _yield_ids_from_header(msg, header_name): + yield msg_id + + +def _yield_ids_from_header(msg, header_name): + values = msg.get_all(header_name) + if values: + for _, msg_id in email.utils.getaddresses(values): + yield msg_id |