#!/usr/bin/env python3
import json, urllib.request, urllib.parse, time

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

def mkdir(path):
    url = "https://cloud-api.yandex.net/v1/disk/resources?path=" + urllib.parse.quote(path)
    req = urllib.request.Request(url, method="PUT", headers=H)
    try:
        with urllib.request.urlopen(req, timeout=60) as r:
            return True
    except urllib.error.HTTPError as e:
        return "already" in e.read().decode(errors="replace")

def move(frm, to):
    url = ("https://cloud-api.yandex.net/v1/disk/resources/move?from=" +
           urllib.parse.quote("disk:" + frm, safe="") + "&path=" + urllib.parse.quote(to))
    req = urllib.request.Request(url, method="POST", headers=H)
    try:
        with urllib.request.urlopen(req, timeout=120) as r:
            return r.status
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode(errors="replace")[:150]

for p in ["/Личное/Недвижимость", "/Личное/Обучение AI", "/Добротный дом/Фото 1210 - 9В"]:
    mkdir(p)

OPS = [
    ("/Загрузки/1210 - 9В", "/Добротный дом/Фото 1210 - 9В"),
    ("/Загрузки/lmarena", "/Личное/Обучение AI/lmarena"),
    ("/Загрузки/2905165.pdf", "/Личное/Здоровье/2905165 - врач диетолог.pdf"),
    ("/Загрузки/6626-gorodnaneve-com.pdf", "/Личное/Недвижимость/6626-gorodnaneve-com.pdf"),
    ("/Загрузки/files-01.pdf", "/Храм Рождества/Духовные книги/Перечень грехов и покаяние.pdf"),
    ("/Загрузки/o40636_instruction.pdf", "/Личное/Здоровье/Инструкция BODYTER.pdf"),
    ("/Загрузки/pdf", "/Храм Рождества/Духовные книги/Полная исповедь.pdf"),
    ("/Добро Пожаловать.pdf", "/Архивы/Добро Пожаловать.pdf"),
    ("/Загрузки/План2.jpg", "/Добротный дом/План2.jpg"),
]
ok, fail = 0, 0
for frm, to in OPS:
    r = move(frm, to)
    if isinstance(r, tuple):
        print(f"FAIL {frm}: {r}"); fail += 1
    else:
        print(f"OK {frm} -> {to}"); ok += 1
    time.sleep(0.2)
print(f"ИТОГО: ок={ok}, fail={fail}")
