
    i                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 d dlZ ej        d          Zedz  Ze                    dd            ej        d          Z ej        e                                                                          Ze j                            d          Zesej                                        d	z  Ze                                                                D ]XZe                    d
          rAe                    dd          d                                                             d          ZYes e d          ddddg ddddddg ddgZ!d Z"d Z#d Z$e!D ]Z e$e           dS )    N)Image	ImageDraw	ImageFontz/home/ubuntu/lobbytrackerzpublic/cards/generatedT)parentsexist_okz5/home/ubuntu/.hermes/image_cache/img_184c12b449fc.jpgOPENROUTER_API_KEYz.hermes/.envzOPENROUTER_API_KEY==   "zmissing OPENROUTER_API_KEYzMyriam Bregmanzmyriam-bregmanzFhttps://lobbytracker.vercel.app/p/69be50fb-489f-4dc8-a148-b7dc178ffc5az'SIN PLATA / SIN CONEXIONES COOPERATIVAS)0 CONTRATOS DOCUMENTADOS0 VIAJES A ISRAEL ENCONTRADOS$0 REUNIONES COOPERATIVAS ENCONTRADAS0 PROCUREMENT / SEGURIDADz!MENCIONES DAIA/OSA: ADVERSARIALES    POSICIÓN PÚBLICA PRO-PALESTINA)nameslugqrsubtitlebulletsu   Nicolás del Cañoznicolas-del-canozFhttps://lobbytracker.vercel.app/p/63976f74-2d23-4c4b-8434-76cc0d551315)r   r   r   r   u   DISCURSOS CRÍTICOS DE ISRAELr   c                    t          j        |                               d          }|j        \  }}t	          j        t          j        j        dd          }|                    |           |	                    d           |
                    dd	                              d          }t          |d
z            }|                    ||ft           j        j                  }t          |dz            }||z
  |z
  }	||z
  t          |dz            z
  }
t          j        |          }|                    |	dz
  |
dz
  |	|z   dz   |
|z   dz   gdd           |                    ||	|
f           t'          j        dt          |dz                      }n# t*          $ r d }Y nw xY w|                    |	|dz  z   |
|z   dz   fdd|d           |                    | d           d S )NRGB
      )error_correctionbox_sizeborderT)fitblackwhite)
fill_color
back_colorg(\?gI+?gQ?      )   r$      )radiusfillz=/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf   ESCANEAR)r   r   r   ma)r'   fontanchor_   )quality)r   openconvertsizeqrcodeQRCode	constantsERROR_CORRECT_Hadd_datamake
make_imageintresize
ResamplingNEARESTr   Drawrounded_rectanglepaster   truetype	Exceptiontextsave)pathqr_urlimWHr   qr1   padxydr+   s                $scripts/generate_green_zero_cards.py
overlay_qrrO       s   z$&&BBG!}f&6&FQS\]^^^BKKT***mmw7m;;CCEJJA	QuWD4+u/?/GHHqAeGC$s
aafS5\\&9AnRA1QqS4!D&)4RmTTTHHQ!u !`befghmfmbnbnoo4dddFFAd1fHQtVAXzwDFMMMGGD"Gs   2%F F'&F'c           	          d                     d | d         D                       }d| d          d| d                                          d| d          d	| d
	S )N
c              3   "   K   | ]
}d | d V  dS )r   N ).0bs     rN   	<genexpr>zprompt.<locals>.<genexpr>0   s*      551h!hhh555555    r   u7  Usá la imagen adjunta como benchmark de calidad/composición, pero crear una versión VERDE, limpia y contrastante para un político sin conexiones documentadas.

Pieza vertical 4:5 hiperrealista, calidad OpenAI GPT Image 2, estilo póster/carta coleccionable investigativa. Misma energía cinematográfica que la referencia: tormenta, rayos, humo, Buenos Aires/Obelisco de fondo, documentación sobre una mesa, pero en paleta verde esmeralda/negro en vez de rojo. Debe sentirse como "clean/verified/no lobby", no como placa barata.

Figura central fotorrealista de r   u`   en traje/ropa formal, iluminación verde cinematográfica, alto contraste, glossy magazine cover, editorial político argentino. Agregar símbolos de verificación: sello "0", tilde/check, documentos auditados, luz verde, pero sin logos reales de medios.

Texto exacto y jerarquía:
Arriba pequeño: "LOBBY TRACKER ARGENTINA 🇦🇷"
Nombre grande: "z""
Headline gigante: "$0"
Debajo: "r   z\"
Etiqueta: "SIN ISRAEL LOBBY TOTAL"
Bullets abajo, blancos/verdes, condensados y legibles:
u  
Footer izquierda: "MAY 2026"
Footer centro: "LOBBYTRACKER.AR"
Abajo derecha: dejar espacio para QR con label "ESCANEAR"

No inventar datos. No agregar acusaciones. No poner textos extra. No Canva, no vector, no cartoon. Hiperrealista, caro, potente, estilo cover de investigación.)joinupper)pr   s     rN   promptr[   /   s    II55)55555Gd "#6	d d 6""d d J-d d 	d d d drW   c           	         t           | d          dz  }dddgdddd	dt          |           d
dddt          z   idgdgd}t          d| d         d           t	          j        ddt          z   dd|d          }t          j        d| d          d          	                    |j
                   t          d|j        t          |j
                  d           |                                 |                                                    di g          d                             d i                               d!          pg }|s+t          |j
        d d"                    t!          d#          |d         d         d                             d$d%          d%         }|                    t'          j        |                     t+          || d&                    t          |           d S )'Nr   z-green-gpt-image2-v1.pngzopenai/gpt-5.4-image-2imagerB   z4:51K)aspect_ratio
image_sizeuser)typerB   	image_urlurlzdata:image/jpeg;base64,)rb   rc   )rolecontent)model
modalitiesimage_configmessagesGENERATEr   T)flushz-https://openrouter.ai/api/v1/chat/completionszBearer zapplication/json)AuthorizationzContent-Typei,  )headersjsontimeoutz/tmp/z_green_response.jsonstatuschoicesr   messageimagesi  r   ,r
   r   )OUTr[   ref_b64printrequestspostKEYpathlibPath
write_textrB   status_codelenraise_for_statusro   get
SystemExitsplitwrite_bytesbase64	b64decoderO   )rZ   outpayloadrimgsdatas         rN   genr   E   sn   qy2222C-GF;Kkp  C  \D  \D  Y_  sy  AG  HI  AJ  AJ  kK  kK  T_  mr  sL  MT  sT  lU  LV  LV  jW  QX  QX  PY  Z  ZG	*QvYT****mC]fgj]j  {M  MN  MN  T[  dg  h  h  hAL8688899DDQVLLL	(1=QV48888	
i	%	%a	(	,	,Yr	:	:	>	>x	H	H	NBD:qvete}%%%Z]]':	a	e	$	*	*3q	1	1!	4DOOF$T**+++s1T7	#JJJJJrW   )%osr   r|   ry   ro   resysPILr   r   r   r2   r}   ROOTrv   mkdirREF	b64encode
read_bytesdecoderw   environr   r{   homerZ   	read_text
splitlinesline
startswithr   stripr   peoplerO   r[   r   rS   rW   rN   <module>r      sU   3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + + + + + + + + + + W\-..	!! 		$	 & & &GLHII))**1133JNN'((
 8l.(A((** 8 8??011 	8

3q!!!$**,,22377C
 :**9::: #3  :B8 U  U  U   '9  @H8 Q  Q  Q   d d d,   
  AQ  rW   