import os import time import re import fnmatch def check_download_exists_matching_url_version_one(url): print ("enter > downloads > exist check > version 1") match = re.search(r"https://sullygnome.com/channel/([^/]+)/(\d+)([a-z]+)/games", url.lower()) if not match: print(f"Invalid URL format. Could not extract channel name, year, or month.") return channel_name, year, month = match.groups() print("channel / ",channel_name) #print("year / ",year) #print("month / ",month) #file_pattern = f"{channel_name}*{month}*{year}*.csv" ## this is a problem. it works but if there 2 channels. ## redbull and redbull2 this is throw false positives. ugh file_pattern = f"*{channel_name} - game stats on Twitch in {month} {year} - SullyGnome.csv".lower() for filename in os.listdir("/home/yankee/Downloads/"): updated = filename.lower() #print("file in downloads / ",updated) if fnmatch.fnmatch(updated, file_pattern): print(f"Found matching file: {updated}") return True else: print(f"No matching CSV file found for channel '{channel_name}' in year '{year}' and month '{month}'. (version one)") return False def check_download_exists_matching_url_version_two(url): print ("enter > check_download_exists_matching_url_version_two") match = re.search(r"https://sullygnome.com/channel/([^/]+)/(\d+)([a-z]+)/games", url.lower()) if not match: print(f"Invalid URL format. Could not extract channel name, year, or month.") return channel_name, year, month = match.groups() print("channel / ",channel_name) print("year / ",year) print("month / ",month) for filename in os.listdir("/home/yankee/Downloads/"): updated = filename.lower() print("found file (v2) / ",updated) ## hasKeyDateParts = does_filename_contain_key_date_parts(updated, month, year) print("\thasKeyDateParts / ",hasKeyDateParts) ## hasTargetChannelName = does_filename_contain_target_channel_name(updated,channel_name) print("\thasTargetChannelName / ",hasTargetChannelName) ## print ("exit < check_download_exists_matching_url_version_two") def does_filename_contain_target_channel_name(url,channel): regex = rf"\({re.escape(channel)}\)" match = re.search(regex, url) results = bool(match) print("results / ",results) match = re.search("\({channel}\)", url) if match: print("yup!") extracted_text = match.group(1).lower() print("extracted: /",extracted_text) return False ## return extracted_text == target_string.lower() else: print("nope!") return False def does_filename_contain_key_date_parts(filename, monthString, yearNumber): print("enter -> does_filename_contain_key_date_parts()") regex = rf"{re.escape(monthString)} {yearNumber}" doesContain = bool(re.search(regex, filename, re.IGNORECASE)) print("doesContain / ",doesContain) return doesContain