import os
from pathlib import Path

def get_scrypted_volume():
    volume_dir = os.getenv('SCRYPTED_VOLUME') or Path.home() / '.scrypted' / 'volume'
    return str(volume_dir)

def get_plugins_volume():
    volume = get_scrypted_volume()
    plugins_volume = Path(volume) / 'plugins'
    return str(plugins_volume)

def get_plugin_volume(plugin_id):
    volume = get_plugins_volume()
    plugin_volume = Path(volume) / plugin_id
    return str(plugin_volume)

def ensure_plugin_volume(plugin_id):
    plugin_volume = get_plugin_volume(plugin_id)
    try:
        os.makedirs(plugin_volume, exist_ok=True)
    except Exception as e:
        pass
    return plugin_volume

def create_adm_zip_hash(hash):
    extract_version = "1-"
    return extract_version + hash

def prep(plugin_volume, hash):
    hash = create_adm_zip_hash(hash)

    zip_filename = f"{hash}.zip"
    zip_dir = os.path.join(plugin_volume, 'zip')
    zip_file = os.path.join(zip_dir, zip_filename)
    unzipped_path = os.path.join(zip_dir, 'unzipped')
    zip_dir_tmp = zip_dir + '.tmp'

    return {
        'unzipped_path': unzipped_path,
        'zip_filename': zip_filename,
        'zip_dir': zip_dir,
        'zip_file': zip_file,
        'zip_dir_tmp': zip_dir_tmp,
    }