import os
import re
import sys
import fnmatch
from datetime import datetime

sys.path.append('./')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ragnarok.settings'
import django
django.setup()
from django.contrib.auth.models import User
from core.models import Video

folder_path = './channel_archiver/UnusualVideos (@UnusualVideos)/'

def extract_version(filename):
    # Define a regular expression pattern to match the version number
    pattern = r'V(\d+)'
    # Use the pattern to search for a match in the filename
    match = re.search(pattern, filename)
    if match:
        # If a match is found, extract the version number from the matched string
        version = match.group(1)
        # Return the version number as an integer
        return int(version)
    else:
        # If no match is found, return None
        return None

def find_image_file(name_pattern, folder):
    pattern = re.compile('.*{} .*\.(jpg|png|webp)'.format(name_pattern), re.IGNORECASE)
    for root, dirs, files in os.walk(folder):
        for filename in files:
            if pattern.match(filename):
                return os.path.join(root, filename)
    return None


for filename in os.listdir(folder_path):
    if filename.endswith('.mp4'):
        # Create a new Video object
        video = Video()
        id = extract_version(filename)
        ret = Video.objects.filter(id=id)
        if ret:
            print("skipping V"+str(id))
            continue

        video.id = extract_version(filename)
        video.name = "UNUSUAL MEMES COMPILATION"
        video.created_at = datetime.now()

        # Open the file and save it to the Video object
        with open(os.path.join(folder_path, filename), 'rb') as f:
            video.file.save(filename, f)

        #filepath = find_image_file("V"+str(id), folder_path)
        with open(filepath, 'rb') as f:
            video.thumbnail.save(filename, f)

        # Save the Video object to the database
        video.save()

print('Done!')
