#!/usr/bin/env python3
import zipfile
import os
import shutil

def create_split_zip(source_dir, base_name, chunk_size=10*1024*1024):  # 10MB chunks
    """Создает разделенный ZIP архив"""
    
    # Remove temp directory if exists
    shutil.rmtree('flatsome-split-temp', ignore_errors=True)
    
    # Copy source to temp
    shutil.copytree(source_dir, 'flatsome-split-temp/flatsome')
    
    # Create split ZIP files
    zip_num = 1
    current_size = 0
    zipf = zipfile.ZipFile(f'{base_name}_part{zip_num}.zip', 'w', zipfile.ZIP_DEFLATED)
    
    for root, dirs, files in os.walk('flatsome-split-temp/flatsome'):
        for file in files:
            file_path = os.path.join(root, file)
            arcname = os.path.relpath(file_path, 'flatsome-split-temp/flatsome')
            
            # Get file size
            file_size = os.path.getsize(file_path)
            
            # Check if we need to start a new zip
            if current_size + file_size > chunk_size and current_size > 0:
                zipf.close()
                zip_num += 1
                zipf = zipfile.ZipFile(f'{base_name}_part{zip_num}.zip', 'w', zipfile.ZIP_DEFLATED)
                current_size = 0
            
            zipf.write(file_path, arcname)
            current_size += file_size
    
    zipf.close()
    
    # Clean up
    shutil.rmtree('flatsome-split-temp')
    
    print(f"Created {zip_num} split ZIP files")
    return zip_num

# Create split archives
num_parts = create_split_zip('flatsome-cleaned', 'flatsome-cleaned-split')

print(f"\nИнструкции:")
print(f"1. Скачайте все части: flatsome-cleaned-split_part1.zip ... flatsome-cleaned-split_part{num_parts}.zip")
print(f"2. Распакуйте все части в одну папку")
print(f"3. Установите тему через WordPress")
