import requests
from PIL import Image
from io import BytesIO
import os
from datetime import datetime
import magic

def image_save(img_source):
    # Проверяем, содержит ли ссылка '&' и '%'
    if '&' in img_source and '%' in img_source and 'circle-01.png' not in img_source:
        img_response = requests.get(img_source)
        if img_response.status_code == 200:
            # Получаем текущую дату и время
            now = datetime.now()
            year = now.strftime("%Y")
            month = now.strftime("%m")

            # получаю имя
            img_source_split = img_source.split('&')[-2].split('%')[-1]
            # Создаем директорию, если она не существует
            directory = f'/var/www/html/wp-content/uploads/{year}/{month}'
            os.makedirs(directory, exist_ok=True)
            # Получаем MIME тип изображения
            mime = magic.Magic(mime=True)
            mime_type = mime.from_buffer(img_response.content)
            # with open(f'E://OSPanel/domains/gpt-plagin.local/wp-content/uploads/{year}/{month}/{img_source_split}', 'wb') as f:
            with open(os.path.join(directory, img_source_split), 'wb') as f:
                f.write(img_response.content)

            # Открываем изображение с помощью Pillow
            img = Image.open(BytesIO(img_response.content))
            
            # Создаем миниатюры
            sizes = [(100, 100), (150, 150), (300, 300)]
            for size in sizes:
                thumbnail = img.copy()
                thumbnail.thumbnail(size)
                # Преобразуем изображение в режим RGB, если оно в режиме RGBA
                if thumbnail.mode == 'RGBA':
                    thumbnail = thumbnail.convert('RGB')
                thumbnail_name = os.path.splitext(img_source_split)[0] + f'-{size[0]}x{size[1]}' + os.path.splitext(img_source_split)[1]
                thumbnail.save(f'/var/www/html/wp-content/uploads/{year}/{month}/{thumbnail_name}')
            
        else:
            img_source_split = None
            mime_type = None
    else:
        img_source_split = None
        mime_type = None

    return img_source_split, mime_type

def attachment_for_img(image_name):
    # Получаем текущую дату и время
    now = datetime.now()
    year = now.strftime("%Y")
    month = now.strftime("%m")
    image_path = f'/var/www/html/wp-content/uploads/{year}/{month}/{image_name}'
    # Загрузка изображения из интернета
    response = requests.get(image_path)

    # Открытие изображения из байтов
    img = Image.open(BytesIO(response.content))

    wp_attachment_metadata = 'a:6:{s:5:"width";i:512;s:6:"height";i:512;s:4:"file";s:48:"' + year + '/' + month  +  '/' + image_name + ';'

    sizes = [(300, 300), (150, 150), (100, 100)]
    for size in sizes:
        thumbnail = img.copy()
        thumbnail.thumbnail(size)
        thumbnail_name = os.path.splitext(image_name)[0] + f'-{size[0]}x{size[1]}' + os.path.splitext(image_name)[1]
        wp_attachment_metadata += 's:8:"filesize";i:450185;s:5:"sizes";a:3:{s:6:"medium";a:5:{s:4:"file";s:48:"'+ thumbnail_name + '";s:5:"width";i:300;s:6:"height";i:300;s:9:"mime-type";s:9:"image/png";s:8:"filesize";i:162594;}'
        wp_attachment_metadata += 's:9:"thumbnail";a:5:{s:4:"file";s:48:"40face33-c6ad-4a5d-b402-5f7126e8325f-150x150.png";s:5:"width";i:150;s:6:"height";i:150;s:9:"mime-type";s:9:"image/png";s:8:"filesize";i:47200;}'