# -*- coding: utf-8 -*-
"""Обложка: YouTube снёс 130+ тысяч каналов. Брендбук: Бумага/Тушь/Реактив/Пыль/Стоп."""
from PIL import Image, ImageDraw, ImageFont

PAPER=(244,241,234); INK=(14,14,14); BLUE=(42,111,219)
DUST=(200,194,182); STOP=(230,51,34); GREY=(122,116,104); GHOST=(230,226,218)

MONO_B="/workspace/canvas-fonts/JetBrainsMono-Bold.ttf"
MONO_R="/workspace/canvas-fonts/JetBrainsMono-Regular.ttf"
ONEST ="/workspace/vc_covers/fonts/Onest.ttf"

W,H=1200,675
img=Image.new("RGB",(W,H),PAPER); d=ImageDraw.Draw(img)
def f(p,s): return ImageFont.truetype(p,s)
def tracked(xy,t,font,fill,tr=0,stroke=0,sfill=None):
    x,y=xy
    for ch in t:
        d.text((x,y),ch,font=font,fill=fill,stroke_width=stroke,stroke_fill=sfill or fill)
        x+=d.textlength(ch,font=font)+tr
    return x-tr
def wtr(t,font,tr=0): return sum(d.textlength(c,font=font) for c in t)+tr*(len(t)-1)

LX=96

# фоновый шёпот — сетка приглушённых «канал» по полю (текстура «сетка точек» в текстовом виде)
gf=f(MONO_R,20)
for gx,gy in [(700,60),(980,120),(60,470),(330,600),(760,600),(1040,470),(1080,250)]:
    d.text((gx,gy),"канал",font=gf,fill=GHOST)

# кикер
tracked((LX,58),"YOUTUBE · ЧИСТКА КАНАЛОВ",f(ONEST,20),DUST,tr=3)

# лейбл над цифрой
tracked((LX+4,146),"удалено за полгода",f(ONEST,30),GREY,tr=0)

# ГЕРОЙ
big=f(MONO_B,150)
end_x=tracked((LX,186),"130 000+",big,BLUE,tr=-4)

# «каналов» тушью
truth=f(ONEST,62)
tracked((LX+4,372),"каналов",truth,INK,tr=-1,stroke=1,sfill=INK)

# красная черта — «нельзя» по смыслу (баны)
d.rectangle([LX+4,470,LX+4+300,476],fill=STOP)

# подзаголовок
tracked((LX+4,516),"Причина не в нейросетях. Причина — в одинаковости",f(ONEST,27),GREY,tr=0)

# mono-строка снизу-слева
tracked((LX+4,H-62),"алгоритмы ищут не ИИ, а конвейер",f(MONO_R,19),DUST,tr=0)

# логотип
logo=f(ONEST,27); word="сафронов"; dot="."
ww=d.textlength(word,font=logo); dw=d.textlength(dot,font=logo)
lx=W-LX-ww-dw; ly=H-64
d.text((lx,ly),word,font=logo,fill=INK)
d.text((lx+ww,ly),dot,font=logo,fill=BLUE)

out="/workspace/cover_yt.png"; img.save(out,"PNG"); print("OK",out)
