diff --git a/lib/xenu_nntp/session.py b/lib/xenu_nntp/session.py index 7f8aee2..5e794aa 100644 --- a/lib/xenu_nntp/session.py +++ b/lib/xenu_nntp/session.py @@ -649,32 +649,24 @@ class Session(Connection): int_bytes = len(bytes(message.content, 'utf-8')) int_lines = message.body.count('\n') - 2 + def _or(a, b): + return a if a is not None else b + + xref = message.headers.get('Xref') + parts = [ str(message.id), email.header.Header(message.subject).encode(), email.header.Header(message.sender).encode(), email.utils.format_datetime(message.created_on), - message.message_id, - message.reference_ids or '', + _or(message.message_id, ''), + _or(message.reference_ids, ''), str(int_bytes), str(int_lines), ] - HEADERS_SKIP = { - 'subject': True, - 'from': True, - 'date': True, - 'message-id': True, - 'references': True, - } - - for k in message.headers: - if k.casefold() in HEADERS_SKIP: - continue - - parts.append("%s: %s" % ( - k, message.headers[k] - )) + if xref is not None: + parts.append('Xref: %s' % xref) return map(f, parts)