tools.linux.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] list-archive-maker: collect recipents in lists instead of strings
@ 2021-04-14 14:12 Uwe Kleine-König
  2021-04-14 14:12 ` [PATCH 2/2] list-archive-maker: better handle mails with misencoded real names Uwe Kleine-König
  2021-04-15 15:07 ` [PATCH 1/2] list-archive-maker: collect recipents in lists instead of strings Konstantin Ryabitsev
  0 siblings, 2 replies; 3+ messages in thread
From: Uwe Kleine-König @ 2021-04-14 14:12 UTC (permalink / raw)
  To: tools

This is more pythonic and should also be quicker to execute.

Note there is an (intended) side effect of this change. If cc already
contains "twentyone@example.com" and pair[1] is "one@example.com", the
latter was detected as already contained in cc.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 list-archive-maker.py | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/list-archive-maker.py b/list-archive-maker.py
index 7e1d276bdf62..b4050198e16a 100755
--- a/list-archive-maker.py
+++ b/list-archive-maker.py
@@ -139,8 +139,8 @@ def process_archives(sources, outdir, msgids, listids, rejectsfile):
             # Remove headers not in WANTHDRS list and any Received:
             # lines that do not mention the list email address
             newhdrs = []
-            to = ''
-            cc = ''
+            to = []
+            cc = []
             recvtime = None
             is_our_list = False
             for hdrname, hdrval in list(msg._headers): # noqa
@@ -196,32 +196,26 @@ def process_archives(sources, outdir, msgids, listids, rejectsfile):
 
                 elif lhdrname == 'to':
                     for pair in email.utils.getaddresses([hdrval]):
-                        if cc.find(pair[1]) >= 0:
+                        if pair[1] in cc:
                             # already in Cc, so no need to add it to To
                             continue
-                        if len(to) and to.find(pair[1]) < 0:
-                            to += ', %s' % email.utils.formataddr(pair)
-                        else:
-                            to += email.utils.formataddr(pair)
+                        to.append(email.utils.formataddr(pair))
 
                 elif lhdrname == 'cc':
                     for pair in email.utils.getaddresses([hdrval]):
-                        if to.find(pair[1]) >= 0:
+                        if pair[1] in to:
                             # already in To, so no need to add it to CCs
                             continue
-                        if len(cc) and cc.find(pair[1]) < 0:
-                            cc += ', %s' % email.utils.formataddr(pair)
-                        else:
-                            cc += email.utils.formataddr(pair)
+                        cc.append(email.utils.formataddr(pair))
 
                 else:
                     newhdrs.append((hdrname, hdrval))
 
             if len(to):
-                newhdrs.append(('To', to))
+                newhdrs.append(('To', ', '.join(to)))
 
             if len(cc):
-                newhdrs.append(('Cc', cc))
+                newhdrs.append(('Cc', ', '.join(cc)))
 
             if not is_our_list:
                 # Sometimes a message is cc'd to multiple mailing lists and the

base-commit: 45172ee760eb6210d9c153b6fe92888c79b662b0
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-15 15:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-14 14:12 [PATCH 1/2] list-archive-maker: collect recipents in lists instead of strings Uwe Kleine-König
2021-04-14 14:12 ` [PATCH 2/2] list-archive-maker: better handle mails with misencoded real names Uwe Kleine-König
2021-04-15 15:07 ` [PATCH 1/2] list-archive-maker: collect recipents in lists instead of strings Konstantin Ryabitsev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).