import os # for: os.getcwd; os.mkdir; os.listdir;
from os import path # for: os.path.abspath
import shutil # for: shutil.move
import cv2 # for: cv2.imread; cv2.namedWindow; cv2.imshow; cv2.waitKey; cv2.destroyAllWindows; cv2.IMREAD_COLOR
IMAGE_EXTENSION = (".bmp", ".dib", ".jpeg", ".jpg", ".jpe", ".jp2", ".png", ".pbm", ".pgm", ".ppm", ".pxm", ".pnm", ".pfm", ".sr", ".ras", ".tiff", ".tif", ".exr", ".hdr", ".pic") # Stolen from here: https://docs.opencv.org/4.5.2/d4/da8/group__imgcodecs.html I didn't include .webp because if the image is animated shit does not work
LEFT_FOLDER_CODE = 100 # Default 100 - 'd'
RIGHT_FOLDER_CODE = 97 # Default 97 - 'a'
# Change by checking: https://www.ascii-code.com/

firstFolderName = input("Enter first folder name: [a] ")
secondFolderName = input("Enter second folder name: [d] ")

currentPath = os.path.abspath(os.getcwd()) # Stolen from: https://stackoverflow.com/q/3430372
os.chdir(currentPath) # Change working directory to the path where the python file is

if path.isdir(firstFolderName) != 1: # Check if folder already exists, if it does not make it
     os.mkdir(firstFolderName)
if path.isdir(secondFolderName) != 1:
     os.mkdir(secondFolderName)

for filename in os.listdir(os.getcwd()): # Go through every file in the working directory
    if (filename.lower()).endswith(IMAGE_EXTENSION): # If the file name ends with image extension
        print(filename)
        image = cv2.imread(filename, cv2.IMREAD_COLOR)
        window_name = filename.split('.')[0]
        cv2.namedWindow(window_name) # Window name is the same as image file name
        cv2.imshow(window_name, image)
        key = cv2.waitKey()
        if key == RIGHT_FOLDER_CODE:
            shutil.move(currentPath + "/" + filename, currentPath + "/" + firstFolderName + "/" + filename)
        elif key == LEFT_FOLDER_CODE:
            shutil.move(currentPath + "/" + filename, currentPath + "/" + secondFolderName + "/" + filename)
        #else:
        #    print(key)
        cv2.destroyAllWindows()
