Example #1
0
                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)
Example #2
0
        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("~")
Example #3
0
      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)