listservs/export.py
2022-07-31 17:16:51 +02:00

47 lines
1.3 KiB
Python

import argparse, mailbox, email
import archive.archive as archive
import config
if __name__ == "__main__":
p = argparse.ArgumentParser(description='Export mailinglists archives')
p.add_argument('name', metavar="name", help="name of the archive to export")
p.add_argument('--out', '-o', help="mbox output")
args = p.parse_args()
with archive.Archive(args.name, config=config.db) as a:
r = a.select_all()
if args.out:
mbox = mailbox.mbox(args.out)
for (from_, author_name_, to_, subject_, date_, content_type_, content_, url_) in r:
m = mailbox.mboxMessage()
m['To'] = to_
m['Subject'] = subject_
addr = from_.replace('{at}', '@')
if author_name_:
m['From'] = email.utils.formataddr((author_name_, addr))
else:
m['From'] = addr
m['Date'] = email.utils.format_datetime(date_)
m['Content-Type'] = content_type_
m.set_payload(content_)
mbox.add(m)
mbox.flush()
else:
for (from_, author_name_, to_, subject_, date_, content_type_, content_, url_) in r:
print(date_)