
    Ch8                         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Zd dl	m
Z
 ddlmZ ddZd Zdd	Zddddi fd
Zd Zd Zd Zy)    )unicode_literalsN)uuid4   )configFc                 H   |s?| j                  |       | j                  j                  d      sy| j                  d   d   }|d   dk(  ry|d   dk(  rF|sdj                  |d   d	   |
      ndj                  |      }|d   d   }t        j
                  j                  ||      }t        j
                  j                  |      r:| j                  j                  d       t        j
                  j                  |      S | j                  j                  |d   d   d      }|j                  dk(  ret        |d      5 }d|j                  _        t!        j"                  |j                  |       d d d        t        j
                  j                  |      S y d}	d}
t%        t'        |d               D ],  }|d   |   d   dk7  rd}
|sdj                  |d   d	   ||      ndj                  ||      }|d   |   d   d   }t        j
                  j                  ||      }t        j
                  j                  |      r!t        j
                  j                  |      c S | j                  j                  |d   d   d      }|j                  dk(  sd}	t        |d      5 }d|j                  _        t!        j"                  |j                  |       d d d        / |	rt        j
                  j                        S |
ryy # 1 sw Y   xY w# 1 sw Y   lxY w)NitemsTr   
media_type   r   z{username}_{media_id}.jpguserusername)r   media_idz{fname}.jpgfnameimage_versions2
candidatesz File already esists, skipping...url)stream   wbFcarousel_mediaz{username}_{media_id}_{i}.jpg)r   r   iz{fname}_{i}.jpg)r   r   )
media_info	last_jsongetformatospathjoinexistsloggerinfoabspathsessionstatus_codeopenrawdecode_contentshutilcopyfileobjrangelen)selfr   filenamemediafolderimagesr   responsefsuccessvideo_includedindex
filename_is                a/var/www/html/Telegram-Engagement-Pod-/env/lib/python3.12/site-packages/instabot/api/api_photo.pydownload_photor8      s   !~~!!'*w'*\a	|		!
  (..vz2X /  %%H%5 	 (),7VX.77>>% KK?@77??5))<<##F1Ie$4T#B3&eT"a.2+""8<<3 # 77??5))	 ' 3u%5678E%&u-l;q@!%
   066"6]:6U 7  '--H-F  +,U34EF|TFGGLL4Eww~~e$wwu--||''q	%(8'FH##s*%&!26HLL/&&x||Q7 '&% 9* 77??5)) = #"2 '&s    2L
(2L
LL!	c                     d\  }}| \  }}|dz  |z  dz  }t        dj                  |||             ||cxk  xr |k  S c S )N)g?gF}g?      ?zFOUND: w:{w} h:{h} r:{r}whr)printr   )size	min_ratio	max_ratiowidthheightratios         r7   compatible_aspect_ratiorF   I   sY    1IyME6CK& 3&E	
$
+
+ev
+
GH*****    c                     t        |      \  }}| j                  dd||| j                  |dz  |dz  gddgdd||dd      }| j                  d|      S )	N	Instagram   r:   g        )crop_original_sizecrop_center	crop_zoom)source_widthsource_height)media_foldersource_typecaption	upload_iddeviceeditsextrazmedia/configure/?)get_image_size	json_datadevice_settingssend_request)r,   rS   photorR   rC   rD   datas          r7   configure_photor]   Q   sw    "5)ME6>>'"**',s{FSL&A #Sz 
 ',fE	
D 0$77rG   c                    t        dddfi |xs i }|)t        t        t        j                         dz              }|syt	        t        |            s*| j                  j                  d       |rt        |      }nyt        t                     }dj                  |t        j                  dd	      
      }ddd|t        j                  dddd      d}	t        |d      j!                         }
t        t#        |
            }| j$                  j&                  j)                  dt        j                  |	      |dd||d|dd
       | j$                  j+                  dj                  t,        j.                  |      |
      }|j0                  dk7  r+| j                  j                  dj                  |             y|ry|j3                  d      }t5        d      D ]  }|rt        j6                  |       | j9                  |||      s.| j:                  j3                  d       }| j=                          |j3                  d!      r&t?        j@                  |d"j                  |#             |c S  y)$a  Upload photo to Instagram

    @param photo         Path to photo file (String)
    @param caption       Media description (String)
    @param upload_id     Unique upload_id (String). When None, then generate
                         automatically
    @param from_video    A flag that signals whether the photo is loaded from
                         the video or by itself
                         (Boolean, DEPRECATED: not used)
    @param force_resize  Force photo resize (Boolean)
    @param options       Object with difference options, e.g.
                         configure_timeout, rename (Dict)
                         Designed to reduce the number of function arguments!
                         This is the simplest request object.

    @return Boolean
       T)configure_timeoutrenamei  Fz4Photo does not have a compatible photo aspect ratio.z{upload_id}_0_{rand}i ʚ;l   c(	 )rS   randzD{"num_step_auto_retry":0,"num_reupload":0,"num_step_manual_retry":0}1z[]mozz3.1.m80)lib_namelib_versionquality)retry_contextr	   xsharing_user_idsrS   image_compressionrbgzipz
image/jpeg0zapplication/octet-stream)
Accept-EncodingzX-Instagram-Rupload-ParamsX_FB_PHOTO_WATERFALL_IDzX-Entity-TypeOffsetzX-Entity-NamezX-Entity-LengthzContent-TypezContent-Lengthro   z'https://{domain}/rupload_igphoto/{name})domainname)r\   r   z3Photo Upload failed with the following response: {}r`   rJ   r.   ra   z{fname}.REMOVE_MEr   )!dictstrinttimerF   rW   r    errorresize_imager   r   randomrandintjsondumpsr%   readr+   r#   headersupdatepostr   
API_DOMAINr$   r   r*   sleepr]   r   exposer   ra   )r,   r[   rR   rS   
from_videoforce_resizeoptionswaterfall_idupload_namerupload_params
photo_data	photo_lenr1   r`   attemptr.   s                   r7   upload_photor   e   s@   4 t<PBPGDIIK$./0	">%#89PQ 'Euw<L(//&..Z"H 0 K `!!ZZw4H
N eT"'')JC
O$ILL%*.**^*D'3)((6'%	
 ||  188$$; 	9 	
 	 ! H s"AHHR	
 $788JJ()	5':NN&&w/EKKM{{8$		%!4!;!;%!;!HIL  rG   c                    t        | d      5 }|j                  d      }t        |      dk7  rt        d      t	        j
                  |       dk(  rJt        j                  d|dd       d   }|d	k7  rt        d
      t        j                  d|dd       \  }}nLt	        j
                  |       dk(  rt        j                  d|dd       \  }}nt	        j
                  |       dk(  r|j                  d       d}d}d|cxk  rdk  sn |j                  |d       |j                  d      }t        |      dk(  r |j                  d      }t        |      dk(  r t        |      }t        j                  d|j                  d            d   dz
  }d|cxk  rdk  sn |j                  dd       t        j                  d|j                  d            \  }}nt        d      ||fcd d d        S # 1 sw Y   y xY w)Nrl      zInvalid Headerpngz>irJ      r   i

zPNG: Invalid checkz>ii   gifz<HH   
   jpegr
         r      z>Hz>HHzUnsupported format)
r%   r~   r+   RuntimeErrorimghdrwhatstructunpackseekord)	r   fhandleheadcheckrC   rD   r@   ftypebytes	            r7   rW   rW      s   	eT	g||Bt9?/00;;u&MM$Qq	215E
""#788"MM%b=ME6[[5("MM%a<ME6[[6)LLODEe+t+T1%||A$i4'"<<?D $i4'D	}}T7<<?;A>B e+t+ LLA"MM%aAMFE344f}9 
		s   EG3AG3AG33G<c                 
   ddl m} 	 ddlm}m} t        dj                  | 	             d
dd}ddd}|j                  |       }|j                  \  }}	d}
	 |j                  j                         D ]  }|j                  |   dk(  s n t        |j                         j                               }|   }|dk(  rd}
|dk(  rd}
|dk(  rd}
|
dk7  r=t        dj                  |
             |j                  |
d      }|j                  \  }}	|j'                  d      }|dz  |	z  dz  }t        dj                  ||	|             ||	kD  rt        d       ||d    |d!   z  kD  r]t        d"       t)         |||	|d    z  |d!   z  z
  d#z              }|}||z
  }d}|	}|j+                  ||||f      }|j                  \  }}	|d$kD  r=t        d%       d$}t)         |d&|	z  |z              }|j-                  ||f|j.                        }n||	k  rt        d'       ||d    |d!   z  k  r]t        d"       t)         ||	||d!   z  |d    z  z
  d#z              }d}|}|}|	|z
  }|j+                  ||||f      }|j                  \  }}	|	d$kD  rzt        d%       t)         |d&|z  |	z              }d$}|j-                  ||f|j.                        }n7t        d(       |d$kD  r't        d%       |j-                  d)|j.                        }|j                  \  }}	d*j                  | 	      }t        d+j                  ||	|,             |j1                  d-|j                  d.      }|j3                  |dd||	f|       |j5                  |d/0       |S # t
        $ r0}t        dj                  |             t        d       Y d }~yd }~ww xY w# t         t"        t$        f$ r&}t        dj                  |             Y d }~d }~ww xY w)1Nr   )ceil)ImageExifTagsERROR: {err}errORequired module `PIL` not installed
Install with `pip install Pillow` and retryFzAnalizing `{fname}`r   g     V@g     G@)r<   r=   g      @g      @Orientation      r   i  r   Z   zRotating by {d} degrees)dT)expandzNo exif info found (ERR: {err})RGBAr:   zFOUND w:{w}, h:{h}, ratio={r}r;   zHorizontal imager<   r=   zCropping imager
   8  zResizing imageg     @zVertical imagezSquare image)r   r   z{fname}.CONVERTED.jpg%Saving new image w:{w} h:{h} to `{f}`r<   r=   r2   RGBr   r   r   _   )rh   )mathr   PILr   r   ImportErrorr?   r   r%   r@   TAGSkeysrt   _getexifr   rotateAttributeErrorKeyError
IndexErrorconvertrv   cropresize	ANTIALIASnewpastesave)r   r   r   r   eh_limv_limimgr<   r=   degorientationexiforE   cutleftrighttopbottomnwnh	new_fnamer   s                           r7   ry   ry      s   ' 


&
&U
&
34T"EC E
**U
CXXFQ
C#==--/K}}[)]: 0 CLLN((*+6C6C6C!8+22S29:**S*.CXXFQ ++f
CGaK#E	
)
0
01U
0
CD1u !E#Js+,"#dAE#Js ;;q@ABCDGECF((D#uf56CXXFQt8"#BT&1*q.)*B**b"Xu7C	
QE#Js+,"#dAE#Js ;;q@ABCDECWF((D#uf56CXXFQt8"#T&1*q.)*BB**b"Xu7Cnt8"#**\5??;CXXFQ'..U.;I	
1
8
81Y
8
OP
))E388_
5CIIcAq!Q<%HHYH#]  n###*+:	
 : Hj1 /6616=>s6   N /O BO 	O&O  OPO==Pc           
      "   	 ddl m}m} |j                  |       }|j                  d   |j                  d   fd	k(  rt	        d
       dj                  |       }|j                  d|j                  d   |j                  d   fd      }|j                  |dd|j                  d   |j                  d   f       |j                  |       |S d}d}|j                  d   dk7  rg|t        |j                  d         z  }	t        t        |j                  d         t        |	      z        }
|j                  |
|f|j                        }n	 |j                  d   dk  rg|t        |j                  d         z  }t        t        |j                  d         t        |      z        }|j                  ||f|j                        }n	 |j                  t        |j                  d   dz
  dz        t        |j                  d   dz
  dz        t        d|j                  d   dz
  dz  z         t        d|j                  d   dz
  dz  z         f      j!                  |j#                  d            }|j                  d   |j                  d   kD  r\|t        |j                  d         z  }	t        t        |j                  d         t        |	      z        }
|j                  |
|f|j                        }|j                  d   dkD  r|t        |j                  d         z  }t        t        |j                  d         t        |      z        }|j                  ||f|j                        }|j                  |t        d|j                  d   dz  z
        t        d|j                  d   dz  z
        f       n|j                  |t        d|j                  d   dz  z
        df       n|t        |j                  d         z  }t        t        |j                  d         t        |      z        }|j                  ||f|j                        }|j                  |t        d|j                  d   dz  z
        t        d|j                  d   dz  z
        f       dj                  |       }t	        dj                  |j                  d   |j                  d   |             |j                  d|j                  d   |j                  d   fd      }|j                  |dd|j                  d   |j                  d   f       |j                  |       |S # t        $ r0}t	        dj                  |             t	        d       Y d}~yd}~ww xY w)ax  
    Find out the size of the uploaded image. Processing is not needed if the
    image is already 1080x1920 pixels. Otherwise, the image height should be
    1920 pixels. Substrate formation: Crop the image under 1080x1920 pixels
    and apply a Gaussian Blur filter. Centering the image depending on its
    aspect ratio and paste it onto the substrate. Save the image.
    r   )r   ImageFilterr   r   r   NFr   )r     z2Image is already 1080x1920. Just converting image.z{fname}.STORIES.jpgr   r   r   r   r   r
   d   i  i  r   r   )r   r   r   r   r?   r   r%   r@   r   r   r   floatrv   r   r   r   filterGaussianBlur)r   r   r   r   r   r   r   	min_width
min_heightheight_percent
width_sizewidth_percentheight_sizeimg_bgs                 r7   stories_shaperr   :  s   * **U
CSXXa[!\1BC)00u0=	iiSXXa[9?K		#1chhqk388A;78	
88A;$'%*<<NU388A;/%2GGHJ**j*5uGC88A;%chhqk(::MeCHHQK053GGHKZZK 8%//JFSXXa[4'1,-SXXa[4'1,-DSXXa[4/1456DSXXa[4/1456	
 &))#.
/ 	 88A;!$'%*<<NU388A;/%2GGHJ**j*5uGCxx{T! )E#((1+,> >!%"4u]7K"KLjj)[!95??K#cCHHQK!O34c#a:O6PQ S3sSXXa[1_'<#=q"AB%chhqk(::MeCHHQK053GGHK**i5uGCLLs3!q#893sSXXa[ST_?T;UVW)00u0=	3::++a.FKKNi ; 	

 iiAA?Q		&1aQQ@AC  n###*+:	
 s   U 	V&V		V)Fphotos) )
__future__r   r   r   r(   r   r|   rw   rz   uuidr   r   r   r8   rF   r]   r   rW   ry   r    rG   r7   <module>r      s`    '  	       6r+8. \~@SlKrG   