|
import yaml |
|
import os |
|
from dotenv import load_dotenv |
|
|
|
load_dotenv() |
|
|
|
ELEVEN_LABS_KEY = os.getenv('ELEVEN_LABS_API_KEY') |
|
OPENAI_KEY = os.getenv('OPENAI_API_KEY') |
|
PLAY_HT_USERID = os.getenv('PLAY_HT_USERID') |
|
PLAY_HT_API_KEY = os.getenv('PLAY_HT_API_KEY') |
|
|
|
|
|
def read_yaml_config(file_path: str) -> dict: |
|
"""Reads and returns the contents of a YAML file as dictionary""" |
|
with open(file_path, 'r') as file: |
|
contents = yaml.safe_load(file) |
|
return contents |
|
|
|
def write_yaml_config(file_path: str, data: dict): |
|
"""Writes a dictionary to a YAML file""" |
|
with open(file_path, 'w') as file: |
|
yaml.dump(data, file) |
|
|
|
def load_editing_assets() -> dict: |
|
"""Loads all local assets from the static-assets folder specified in the yaml_config""" |
|
yaml_config = read_yaml_config("public.yaml") |
|
if yaml_config['local-assets'] == None: |
|
yaml_config['local-assets'] = {} |
|
|
|
local_paths = [] |
|
if yaml_config['local-assets'] != {}: |
|
local_assets = yaml_config['local-assets'].copy() |
|
|
|
for key in local_assets: |
|
asset = local_assets[key] |
|
if(type(asset) == str): |
|
filePath = local_assets[key] |
|
else: |
|
filePath = local_assets[key]['path'] |
|
if not os.path.exists(filePath): |
|
del yaml_config['local-assets'][key] |
|
else: |
|
local_paths.append(filePath) |
|
|
|
folder_path = 'public' |
|
for foldername, subfolders, filenames in os.walk(folder_path): |
|
for filename in filenames: |
|
file_path = os.path.join(foldername, filename).replace("\\", "/") |
|
if not file_path in local_paths: |
|
yaml_config['local-assets'][filename] = file_path |
|
|
|
write_yaml_config("public.yaml", yaml_config) |
|
|
|
return yaml_config |
|
|
|
|
|
|
|
|
|
|