from datetime import datetime, timedelta
import os
import logging
from configparser import ConfigParser
import shutil


logging.basicConfig(filename='/var/www/html/logs/clean_up.log',
                    filemode='a',
                    format='%(asctime)s %(name)s %(levelname)s %(message)s',
                    level=logging.INFO)

# read config.ini file
config_object = ConfigParser()
config_object.read(".config.ini")

# get info
savepathinfo = config_object["save_path"]


sheets_path = str(savepathinfo['sheets_path'])
save_zip_path = str(savepathinfo['save_zip_path'])

sheets = os.listdir(sheets_path)
zip_files = os.listdir(save_zip_path)

# delete folders in this directory
try:
    for sheet in sheets:
        sheet = sheet.strip()
        # extract datetime from foldername
        sheet_name = sheet[:-9] + " " + sheet[-8:]
        created_at = datetime.strptime(sheet_name[(sheet_name.find('-')+1):], '%Y-%m-%d %H:%M:%S')
        if datetime.utcnow() > created_at + timedelta(days=7):
            shutil.rmtree(os.path.join(sheets_path, sheet))
       


    # delete files in this directory
    for zip_file in zip_files:
        zip_file=zip_file.strip()
        # extract datetime from filename
        created_at = datetime.strptime(zip_file[(zip_file.find('-')+1):-4], '%Y-%m-%d %H:%M:%S')
        if datetime.utcnow() > created_at + timedelta(days=7):
            os.remove(os.path.join(save_zip_path, zip_file))
        

    print('done')

except Exception as e:
    logging.info(f'failed with error {e}')
    print('failed')





