404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.220.217.228: ~ $
#! /usr/bin/python2.7

# Convert  MH directories (1 message per file) or MMDF mailboxes (4x^A
# delimited) to unix mailbox (From ... delimited) on stdout.
# If -f is given, files contain one message per file (e.g. MH messages)

import rfc822
import sys
import time
import os
import stat
import getopt
import re

def main():
    dofile = mmdf
    try:
        opts, args = getopt.getopt(sys.argv[1:], 'f')
    except getopt.error, msg:
        sys.stderr.write('%s\n' % msg)
        sys.exit(2)
    for o, a in opts:
        if o == '-f':
            dofile = message
    if not args:
        args = ['-']
    sts = 0
    for arg in args:
        if arg == '-' or arg == '':
            sts = dofile(sys.stdin) or sts
        elif os.path.isdir(arg):
            sts = mh(arg) or sts
        elif os.path.isfile(arg):
            try:
                f = open(arg)
            except IOError, msg:
                sys.stderr.write('%s: %s\n' % (arg, msg))
                sts = 1
                continue
            sts = dofile(f) or sts
            f.close()
        else:
            sys.stderr.write('%s: not found\n' % arg)
            sts = 1
    if sts:
        sys.exit(sts)

numeric = re.compile('[1-9][0-9]*')

def mh(dir):
    sts = 0
    msgs = os.listdir(dir)
    for msg in msgs:
        if numeric.match(msg) != len(msg):
            continue
        fn = os.path.join(dir, msg)
        try:
            f = open(fn)
        except IOError, msg:
            sys.stderr.write('%s: %s\n' % (fn, msg))
            sts = 1
            continue
        sts = message(f) or sts
    return sts

def mmdf(f):
    sts = 0
    while 1:
        line = f.readline()
        if not line:
            break
        if line == '\1\1\1\1\n':
            sts = message(f, line) or sts
        else:
            sys.stderr.write(
                    'Bad line in MMFD mailbox: %r\n' % (line,))
    return sts

counter = 0 # for generating unique Message-ID headers

def message(f, delimiter = ''):
    sts = 0
    # Parse RFC822 header
    m = rfc822.Message(f)
    # Write unix header line
    fullname, email = m.getaddr('From')
    tt = m.getdate('Date')
    if tt:
        t = time.mktime(tt)
    else:
        sys.stderr.write(
                'Unparseable date: %r\n' % (m.getheader('Date'),))
        t = os.fstat(f.fileno())[stat.ST_MTIME]
    print 'From', email, time.ctime(t)
    # Copy RFC822 header
    for line in m.headers:
        print line,
    # Invent Message-ID header if none is present
    if not m.has_key('message-id'):
        global counter
        counter = counter + 1
        msgid = "<%s.%d>" % (hex(t), counter)
        sys.stderr.write("Adding Message-ID %s (From %s)\n" %
                         (msgid, email))
        print "Message-ID:", msgid
    print
    # Copy body
    while 1:
        line = f.readline()
        if line == delimiter:
            break
        if not line:
            sys.stderr.write('Unexpected EOF in message\n')
            sts = 1
            break
        if line[:5] == 'From ':
            line = '>' + line
        print line,
    # Print trailing newline
    print
    return sts

if __name__ == "__main__":
    main()

Filemanager

Name Type Size Permission Actions
README File 1009 B 0644
beer.py File 458 B 0755
beer.pyc File 703 B 0644
beer.pyo File 703 B 0644
eqfix.py File 6.16 KB 0755
eqfix.pyc File 4.53 KB 0644
eqfix.pyo File 4.53 KB 0644
fact.py File 1.11 KB 0755
fact.pyc File 1.14 KB 0644
fact.pyo File 1.14 KB 0644
find-uname.py File 1.18 KB 0755
find-uname.pyc File 1.47 KB 0644
find-uname.pyo File 1.47 KB 0644
from.py File 873 B 0755
from.pyc File 751 B 0644
from.pyo File 751 B 0644
lpwatch.py File 2.77 KB 0755
lpwatch.pyc File 2.54 KB 0644
lpwatch.pyo File 2.54 KB 0644
makedir.py File 509 B 0755
makedir.pyc File 732 B 0644
makedir.pyo File 732 B 0644
markov.py File 3.5 KB 0755
markov.pyc File 3.93 KB 0644
markov.pyo File 3.93 KB 0644
mboxconvert.py File 3.11 KB 0755
mboxconvert.pyc File 3.18 KB 0644
mboxconvert.pyo File 3.18 KB 0644
morse.py File 4.21 KB 0755
morse.pyc File 4.33 KB 0644
morse.pyo File 4.33 KB 0644
pi.py File 887 B 0755
pi.pyc File 921 B 0644
pi.pyo File 921 B 0644
pp.py File 3.72 KB 0755
pp.pyc File 2.28 KB 0644
pp.pyo File 2.28 KB 0644
primes.py File 602 B 0755
primes.pyc File 921 B 0644
primes.pyo File 921 B 0644
queens.py File 2.19 KB 0755
queens.pyc File 2.95 KB 0644
queens.pyo File 2.95 KB 0644
script.py File 961 B 0755
script.pyc File 1.21 KB 0644
script.pyo File 1.21 KB 0644
unbirthday.py File 3.07 KB 0755
unbirthday.pyc File 2.93 KB 0644
unbirthday.pyo File 2.93 KB 0644
update.py File 2.68 KB 0755
update.pyc File 2.69 KB 0644
update.pyo File 2.69 KB 0644