def download_thread(): try: cherrypy.log("Thread Start User: {}".format(user)) try: session = newman_email.login(user, passwd, logfile) fldr = "{}/emails/{}".format(webroot, user) cherrypy.log("Login User: {}".format(user)) if os.path.exists(fldr): rmrf(fldr) mkdir(fldr) spit("{}/output.csv".format(fldr), newman_email.headerrow() + "\n") mkdir(fldr + "/emails") newman_email.download(session, user, fldr, int(limit), logfile) spit(logfile, "[Completed Download] {}\n".format(user)) except Exception as ex: spit(logfile, "[Error] {}\n".format(ex)) cherrypy.log("[Error] {}\n".format(ex)) except: spit(logfile, "[Error]") cherrypy.log("[Error]") error_info = sys.exc_info()[0] cherrypy.log(error_info) spit(logfile, "[Error] {}\n".format(error_info.replace('\n', ' '))) finally: newman_email.close_session(session) except: error_info = sys.exc_info()[0] cherrypy.log(error_info) spit(logfile, "[Error] {}\n".format(error_info.replace('\n', ' ')))
def buildExportable(*args): webroot = cherrypy.config.get("webroot") target = getOpt('target') base_src = "{}/emails/{}".format(webroot, target) tmp_dir = os.path.abspath("{}/../tmp/".format(webroot)) download_dir = "{}/downloads/".format(webroot) tar_gz = "export_{}".format(fmtNow()) base_dest = os.path.abspath("{}/../tmp/newman_dl".format(webroot)) if os.path.exists(base_dest): rmrf(base_dest) if not os.path.exists(download_dir): mkdir(download_dir) mkdir(base_dest) # Get list of paths... stmt = (" SELECT id, dir FROM email WHERE exportable='true' ") msg = '' paths_to_copy = [] tangelo.content_type("application/json") with newman_connector() as read_cnx: with execute_query(read_cnx.conn(), stmt) as qry: for email_id, val in qry.cursor(): src = "{}/{}/".format(base_src, val) dest = "{}/{}/".format(base_dest, val) shutil.copytree(src, dest) # compress dir shutil.make_archive("{}/{}".format(tmp_dir, tar_gz), "gztar", root_dir=base_dest) # move to web downloads mv("{}/{}.tar.gz".format(tmp_dir, tar_gz), "{}/{}.tar.gz".format(download_dir, tar_gz)) return {"file": "downloads/{}.tar.gz".format(tar_gz)}
def buildExportable(*args): webroot = cherrypy.config.get("webroot") target = getOpt('target') base_src = "{}/emails/{}".format(webroot,target) tmp_dir = os.path.abspath("{}/../tmp/".format(webroot)) download_dir = "{}/downloads/".format(webroot) tar_gz = "export_{}".format(fmtNow()) base_dest = os.path.abspath("{}/../tmp/newman_dl".format(webroot)) if os.path.exists(base_dest): rmrf(base_dest) if not os.path.exists(download_dir): mkdir(download_dir) mkdir(base_dest) # Get list of paths... stmt = ( " SELECT id, dir FROM email WHERE exportable='true' " ) msg = '' paths_to_copy = [] tangelo.content_type("application/json") with newman_connector() as read_cnx: with execute_query(read_cnx.conn(), stmt) as qry: for email_id, val in qry.cursor(): src = "{}/{}/".format(base_src,val) dest = "{}/{}/".format(base_dest, val) shutil.copytree(src, dest) # compress dir shutil.make_archive("{}/{}".format(tmp_dir, tar_gz), "gztar", root_dir=base_dest) # move to web downloads mv("{}/{}.tar.gz".format(tmp_dir, tar_gz), "{}/{}.tar.gz".format(download_dir, tar_gz)) return { "file" : "downloads/{}.tar.gz".format(tar_gz) }
def setup(_dir): if os.path.exists(_dir): rmrf(_dir) mkdir(_dir)