updated further
This commit is contained in:
@@ -2,24 +2,54 @@ from pathlib import Path
|
||||
import contextlib
|
||||
import os
|
||||
from datetime import timedelta, datetime
|
||||
from zipfile import ZipFile
|
||||
|
||||
class local_dir_remote:
|
||||
def __init__(self, config):
|
||||
self.config = config
|
||||
self.path = config["path"]
|
||||
|
||||
def list_dir(self):
|
||||
def list_dir(self, recursive_search = False):
|
||||
path = Path(self.path)
|
||||
file_list = []
|
||||
delta = timedelta(minutes=2)
|
||||
for file_demo in list(path.glob('*')):
|
||||
mtime = datetime.fromtimestamp(os.stat(file_demo).st_mtime)
|
||||
if mtime < datetime.now() - delta:
|
||||
file_list.append(file_demo)
|
||||
glob_pattern = '*'
|
||||
glob_pattern_recursive = '**'
|
||||
if not recursive_search:
|
||||
for file_demo in list(path.glob(glob_pattern)):
|
||||
mtime = datetime.fromtimestamp(os.stat(file_demo).st_mtime)
|
||||
if mtime < datetime.now() - delta:
|
||||
file_list.append(file_demo)
|
||||
else:
|
||||
for file_directory in list(path.glob(glob_pattern_recursive)):
|
||||
try:
|
||||
for files in list(file_directory.glob(glob_pattern)):
|
||||
if '/maps' in str(files):
|
||||
continue
|
||||
file_list.append(files)
|
||||
except PermissionError:
|
||||
continue
|
||||
return file_list
|
||||
|
||||
def zip_local_directory(self, job):
|
||||
source_files = self.list_dir(True)
|
||||
zipname = f'{job["zipname"]}-{str(datetime.now()).split(" ")[0]}.zip'
|
||||
with ZipFile(zipname, 'w') as myzip:
|
||||
for files in source_files:
|
||||
try:
|
||||
myzip.write(files)
|
||||
except PermissionError:
|
||||
continue
|
||||
return str(Path.cwd()) + '/' + zipname
|
||||
|
||||
def delete_local_demo(self, pathfile):
|
||||
with contextlib.suppress(FileNotFoundError):
|
||||
if str(pathfile).endswith('.dem'):
|
||||
os.remove(pathfile)
|
||||
print('removed demo: ', pathfile)
|
||||
|
||||
def delete_local_zip(self, zip_file_path):
|
||||
with contextlib.suppress(FileNotFoundError):
|
||||
if (str(zip_file_path).endswith('.zip')):
|
||||
os.remove(zip_file_path)
|
||||
print('removed zip: ', zip_file_path)
|
||||
|
||||
Reference in New Issue
Block a user