diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-03-12 08:10:42 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-03-12 08:24:06 +0200 |
commit | 466fcd268e53743ca7414f1fe969a74cd0ac1ee1 (patch) | |
tree | 18056390e7f507c1f40b38edfaa4c218b840f0e7 /splitmboxdaily | |
parent | 2a562fd5a7d935d3743f6746927236b40f891a5c (diff) | |
download | extrautils-466fcd268e53743ca7414f1fe969a74cd0ac1ee1.tar.gz |
drop old crap
Diffstat (limited to 'splitmboxdaily')
-rwxr-xr-x | splitmboxdaily | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/splitmboxdaily b/splitmboxdaily deleted file mode 100755 index d573cae..0000000 --- a/splitmboxdaily +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/python -# splitmboxdaily - split an mbox into new ones, one per day -# Copyright 2008-2010 Lars Wirzenius -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import mailbox, sys, re, time, os - -pat = re.compile(r"((Mon|Tue|Wed|Thu|Fri|Sat|Sun), )?" - r" ?(?P<day>\d\d?) " - r"(?P<mon>(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)) " - r"(?P<year>\d\d(\d\d)?) ") - -montab = { - "Jan": "01", - "Feb": "02", - "Mar": "03", - "Apr": "04", - "May": "05", - "Jun": "06", - "Jul": "07", - "Aug": "08", - "Sep": "09", - "Oct": "10", - "Nov": "11", - "Dec": "12", -} - -outbox = {} - -for filename in sys.argv[1:]: - mbox = mailbox.mbox(filename) - count = 0 - start = time.time() - for key in sorted(mbox.keys()): - msg = mbox[key] - m = pat.match(msg["Date"] or "") - if m: - day = "%02d" % int(m.group("day")) - mon = montab[m.group("mon")] - year = m.group("year") - if int(year) < 10: - year = "20" + year - elif 88 <= int(year) < 100: - year = "19" + year - else: - year = "unknown" - mon = "00" - day = "00" - - name = "%s/%s-%s-%s.mbox" % (year, year, mon, day) - if not os.path.isdir("%s" % year): - os.mkdir("%s" % year) - if name not in outbox: - outbox[name] = mailbox.mbox(name) - outbox[name].add(msg) - - count += 1 - if (count % 10) == 0 or count == len(mbox): - sys.stdout.write("\r%5.1f done" % - (100.0 * count/len(mbox))) - duration = (time.time() - start) or 1.0 - sys.stdout.write(" %6.1f msgs/s" % (count/duration)) - sys.stdout.write(" %s" % filename) - sys.stdout.flush() - - print - for box in outbox.values(): - box.close() - outbox = {} |