
    ^j1                         d dl m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	 dZ
e
rddlmZ 	 	 	 	 	 d
dd	 	 	 	 	 	 	 	 	 	 	 	 	 ddZdd	Zy)    )annotationsN   )ImageF)ImageWin)
scale_downc          
     `	   |t         j                  dk(  r%t        j                  d      \  }}t	        j
                  |       dg}||dt        |      gz  }n!| r| \  }	}
}}|d|	 d|
 d||	z
   d||
z
   gz  }|d|gz  }t        j                  |      }|rt        j                  ||      t        j                  |      }|j                          t	        j                  |       | rN|t        j                  d      \  }}t	        j
                  |       ddt        |      dd|g}t        j                  |      }|rt        j                  ||      t        j                  |      5 }|j                  |j                  z
  d	kD  }d d d        t	        j                  |       r?| \  }	}
}}|rd
nd}|j                  ||	z
  |z  ||
z
  |z  ft!        d | D                    }n|j#                  |       }|j                          |S |r+|j                  	z
  
z
  f      }|j                          |S |S t         j                  dk(  r|d}t        j$                  j'                  |||t)        |      nd      \  }}}t        j*                  d||dd|d   dz  dz   dz  d      }| r-|\  }}| \  }	}
}}|j#                  |	|z
  |
|z
  ||z
  ||z
  f      }|S |}	 t        j$                  j,                  sd}t/        |      t        j$                  j1                  |      \  }}t        j*                  d||dd|d   dz  d
      }| r|j#                  |       }|S # 1 sw Y   xY w# t.        $ r6 |1t         j                  dvrt3        j4                  d      rddg}n4t3        j4                  d      rdg}nt3        j4                  d      rg d}n t        j                  d      \  }}t	        j
                  |       |j7                  |       t        j                  |      }|rt        j                  ||      t        j                  |      }|j                          t	        j                  |       | r%|j#                  |       }|j                          |cY S |cY S  w xY w)Ndarwinz.pngscreencapturez-lz-R,z-x-od   r      c              3  &   K   | ]	  }|d z    yw)r   N ).0coords     X/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/PIL/ImageGrab.py	<genexpr>zgrab.<locals>.<genexpr>R   s     %BEeai%Bs   )boxwin32r   RGBrawBGR   z$Pillow was built without XCB supportBGRX   )r	   r   zgnome-screenshot-fgrim	spectacle)r!   z-nz-br   r   )sysplatformtempfilemkstemposclosestr
subprocesscallCalledProcessErrorr   openloadunlinkwidthresizetuplecropcoregrabscreen_win32int	frombytesHAVE_XCBOSErrorgrabscreen_x11shutilwhichappend)bboxinclude_layered_windowsall_screensxdisplaywindowr   fhfilepathargslefttoprightbottomretcodeimim_no_shadowretinascale
im_cropped
im_resizedoffsetsizedatax0y0display_namemsgs                              r   grabrW   !   sx    <<8##++F3LBHHRL#$D!s6{+++/(c5&$qQuTzl!F3J<HIIT8$$D ood+G 33GTBBH%BGGIIIh% $,#3#3F#;LBHHRL+T3v;dHUD(ood3G(;;GTJJH- E!#L,>,>!>!DEIIh' 370c5&%/Q%'YY#dle3fsle5KL %%BT%B B &/ &

 &(WWT]
HHJ%%!#EDL&3,+G!HJHHJ%%I\\W$! !&!<!<'%1Fq"FD$
 a1qB&	B B+/(c5&WWdRir52:v{KLI'L#zz""8C#,ZZ..|<
d8 __UD$vtAw{ANB	eE Eh  CLL8K$K||./*D1f%xk*<#++F3LBHHRLKK! ood+G 33GTBBH%BGGIIIhWWT]

!!I3s&   0M !A	M-  M*-D8R-'R-+R-c                    t         j                  dk(  rst        j                  g dd      } | j                  dk7  ry dd l}t        j                  |j                  | j                  dd             }t        j                  |      S t         j                  dk(  r t        j                  j                         \  }}|d	k(  r|dd l}|j                  d
|      d   }|d   dk(  r$||d  j!                  d      j#                  d      }n#||d  j!                  d      j#                  d      }|d |j%                  d       S t'        |t(              rMt        j                  |      }|dk(  rddlm} |j/                  |      S |dk(  rddlm} |j3                  |      S y t5        j6                  d      rd}	nt5        j6                  d      rd}	nd }	t9        j:                  d      r	|	dv rg d}
n+t9        j:                  d      r	|	dv rg d}
nd}t=        |      t        j                  |
d      } | j                  dk7  rR| j>                  }d D ]  }||v s y  |
d    d!}|r$|d"|jA                         j!                          z  }tC        |      t        j                  | j                        }t        j                  |      }|jE                          |S )#Nr	   )	osascriptz-eu#   get the clipboard as «class PNGf»T)capture_outputr      r   fileI   mbcs zutf-16le pngr   )PngImagePluginDIB)BmpImagePluginWAYLAND_DISPLAYwaylandDISPLAYx11wl-paste)rh   N)rk   -timagexclip)rj   N)rn   z
-selection	clipboardrl   z	image/pngr   zDwl-paste or xclip is required for ImageGrab.grabclipboard() on Linux)s   Nothing is copieds   No selections"   No suitable type of content copieds    not availables   cannot convert s(   xclip: Error: There is no owner for the z errorz: )#r"   r#   r)   run
returncodebinasciiioBytesIO	unhexlifystdoutr   r,   r3   grabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesrb   rd   PngImageFilerf   DibImageFiler&   getenvr:   r;   NotImplementedErrorstderrstripChildProcessErrorr-   )prr   rR   fmtrx   ofilesrd   rf   session_typerD   rV   errsilent_errorrJ   s                  r   grabclipboardr      sv   
||xNNF
 <<1zz(,,QXXb_=>zz$		 JJ224	T&=""3-a0ABx1}QR/55d;QR
399$?*5;;r?++dE"::d#De|,%22488,%2248899&'$LYYy! LL<<
#8I(I.D\\'"|}'DPDXC%c**NN45<<1((C!    3&   !WIV$CCIIK..0122#C((zz!((#ZZ
		    )NFFNN)r=   z tuple[int, int, int, int] | Noner>   boolr?   r   r@   z
str | NonerA   zint | ImageWin.HWND | Noner   r   returnzImage.Image)r   zImage.Image | list[str] | None)
__future__r   rs   r&   r:   r)   r"   r$   rb   r   TYPE_CHECKINGr   rW   r   r   r   r   <module>r      s   " # 	 	   
   .2$))-x x
*x!x x 	x
 'x x xvNr   