for rfile in ftpc.nlst(): print("Remote file", rfile, "size", ftpc.size(rfile)) if "/" in rfile: raise Exception("Slash in remote file name") if False: # ismail(rfile): # in-memory import is disabled until rarfile will start working with file objects print("ismail") # download data = io.BytesIO() recipient = FTPFile(data) ftpc.retrbinary('RETR ' + rfile, recipient.feed) data.seek(0) with ftnimport.session(db) as sess: import_file(sess, rfile, data, address, False) #ftpc.delete(rfile) else: savedir = ftnconfig.addrdir(ftnconfig.INBOUND, address) print("save", savedir) if not os.path.exists(savedir): os.makedirs(savedir) fd = os.open(os.path.join(savedir, "pwd-in", rfile), os.O_CREAT | os.O_WRONLY) fo = os.fdopen(fd, "wb") recipient = FTPFile(fo) ftpc.retrbinary('RETR ' + rfile, recipient.feed) fo.close() ftpc.delete(rfile)
for rfile in ftpc.nlst(): print ("Remote file", rfile, "size", ftpc.size(rfile)) if "/" in rfile: raise Exception("Slash in remote file name") if False: # ismail(rfile): # in-memory import is disabled until rarfile will start working with file objects print ("ismail") # download data = io.BytesIO() recipient = FTPFile(data) ftpc.retrbinary('RETR '+rfile, recipient.feed) data.seek(0) with ftnimport.session(db) as sess: import_file(sess, rfile, data, address, False) #ftpc.delete(rfile) else: savedir = ftnconfig.addrdir(ftnconfig.INBOUND, address) print("save", savedir) if not os.path.exists(savedir): os.makedirs(savedir) fd = os.open(os.path.join(savedir, "pwd-in", rfile), os.O_CREAT|os.O_WRONLY) fo = os.fdopen(fd, "wb") recipient = FTPFile(fo) ftpc.retrbinary('RETR '+rfile, recipient.feed) fo.close() ftpc.delete(rfile) ftpc.cwd("~")
processed=True elif arg=='-e': areabyname=True print(format, processed, files) if not format: raise Exception('format not specified') extractor = {"sq": sq_message_extractor, "jam": jam_message_extractor}.get(format) db=ftnconfig.connectdb() counter = 0 for f in files: with ftnimport.session(db) as sess: print(f) if extractor: for msg in extractor(f): #print unicode(msg).encode("utf-8") ftnpush.import_msg(sess, msg, "2:5020/12000", processed) else: #fo = open(f, "rb") ftnpush.import_file(sess, f, None, "2:5020/12000", processed) #fo.close() counter += 1 # no exception, all fine os.unlink(f)