summaryrefslogtreecommitdiff
path: root/distixlib/msg_id_extractor.py
diff options
context:
space:
mode:
Diffstat (limited to 'distixlib/msg_id_extractor.py')
-rw-r--r--distixlib/msg_id_extractor.py18
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