import os
import cv2
import argparse


def main(directory, name, test):
    cap = cv2.VideoCapture(0)

    i = 0
    while True:
        # Capture frame-by-frame
        ret, frame = cap.read()
        frame = cv2.flip(frame, 1)

        # Display the resulting frame
        cv2.imshow(name, frame)
        if not test and i != 0 and i % 10 == 0:
            cv2.imwrite("{}/{}{}.png".format(directory, name, int(i / 10)), frame)
        i += 1
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # When everything done, release the captureq
    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--person', required=True)
    parser.add_argument('--test', action='store_true')
    args = parser.parse_args()
    directory = 'images/{}'.format(args.person)
    if not args.test and not os.path.exists(directory):
        os.mkdir(directory)
    try:
        main(directory, args.person, args.test)
    except KeyboardInterrupt:
        print("Photo session done for {} :)".format(args.person))