#!/usr/bin/env python3
# Скачать полностью 1 фото из C2 и C12, сохранить локально для просмотра
import json, os, urllib.request, urllib.parse
from PIL import Image
import pillow_heif
pillow_heif.register_heif_opener()
Image.MAX_IMAGE_PIXELS = None

tok = None
for line in open("/root/site/yandex/.env_hram", encoding="utf-8"):
    if line.startswith("YANDEX2_ACCESS_TOKEN="):
        tok = line.split("=", 1)[1].strip()
H = {"Authorization": f"OAuth {tok}"}

def get_download_url(path):
    url = "https://cloud-api.yandex.net/v1/disk/resources/download?path=" + urllib.parse.quote(path)
    req = urllib.request.Request(url, headers=H)
    with urllib.request.urlopen(req, timeout=60) as r:
        return json.loads(r.read().decode())["href"]

cache = json.load(open("/root/site/video/gps_cache2.json", encoding="utf-8"))
targets = [
    ("/Фото/Фотокамера/2015-06-27 20-21-47.JPG", "C2_krasnogorsk.jpg"),
    ("/Компьютеры/Компьютер BLAGOVESTROY/2023 г/Выставка МЫТиЩИ/Съемка с дрона/DJI_0260.JPG", "C12_drone.jpg"),
]
for path, outname in targets:
    try:
        href = get_download_url(path)
        req = urllib.request.Request(href)
        data = urllib.request.urlopen(req, timeout=180).read()
        print(path, "->", len(data), "байт")
        im = Image.open(io_bytes(data) if False else __import__('io').BytesIO(data)).convert("RGB")
        im.thumbnail((900, 900), Image.LANCZOS)
        out = f"/root/site/video/cluster_previews/{outname}"
        im.save(out, quality=88)
        print("  сохранено", out)
    except Exception as e:
        print(path, "ERR", e)
