
    h                     x   d dl m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Z e         ej                  d      Z
 e       Z ej                  e
      Z
 ej                   ee
j                                     Ze
e   Z ee        ej                  d      Zer ej(                  ed           	 ej+                  ee        ej,                   ej.                  dd              ed	       i Zd Zd Zd Zi Z d Z!d Z"d Z#y# e$ r/Zd
 ee      v r	 ed       n ede         e        Y dZ[FdZ[ww xY w)    )BotN)load_dotenvcredentialszconfig/*cookie.json)usernamepassword      zLogin successfulchallenge_requiredz9Challenge required. Please verify your identity manually.zLogin failed: c                     t        d|         	 t        j                  |       }|sy|d   S # t        $ r}t        d|  d|        Y d }~yd }~ww xY w)NzFetching info for user: F
is_privatezError fetching user info for : )printbotget_user_info	Exception)user	user_infoes      9/var/www/html/Telegram-Engagement-Pod-/gina/engagement.pycheck_user_infor   &   sa    	!$()%)	
	<	   
'vRs34	s   - - 	AAAc                    | t         v rt        d|  d       t         |    S d}|dk  rJ	 t        j                  |       }|t         | <   t	        j
                  t        j                  dd             |S g S # t        $ r}}|dz  }t        d|  d	|        d
t        |      v r't        d       t	        j
                  dd|z  z         n)t	        j
                  t        j                  dd             Y d}~nd}~ww xY w|dk  rی)z5Fetch likers for a media ID with caching and retries.z!Using cached likers for media ID .r            r   z#Error fetching likers for media ID r   429z+Rate limit reached. Retrying after delay...<   N)
likers_cacher   r   get_media_likerstimesleeprandomuniformr   str)media_idretrieslikersr   s       r   
get_likersr(   2   s    
+H:Q78	h	{%  *6"<::fnnQ"#
= 	 
 %
a<7.xj1#	>?s1vo	
78JJrQ'\"#JJv~~a#$% {s   AA4 4	C:=A3C55C:c           	      d   t        d| d       g }	 t        j                  |      }t        d| d|        | D ]  }d}|d	k  ri	 t        j                  |      }|s!t        d
|        |j                  d       n0t        |      }t        |       |rt        d| dt	        |              t        j                  |      }	|	d   d   }
t        d|
       ||v rt        d       |j                  d       n|
t	        |      k  rt        d       |j                  d       n_|
dk\  rt        d       |j                  d       n=t        d       |j                  d       n t        d| d       |j                  d       t        j                  t        j                  dd             	 |d	k\  s|t        d| d       |j                  d        t        d|        |S # t        $ r*}t        d| d|        dgt	        |       z  cY d}~S d}~ww xY w# t        $ r}}|dz  }t        d| d|        dt        |      v r't        d       t        j                  dd|z  z         n)t        j                  t        j                  dd	             Y d}~nd}~ww xY w|d	k  ri)z)Check if a user has liked specific posts.zChecking if user z has liked posts...User ID for r   zFailed to fetch user ID for FNr   r   zInvalid media URL: Likers for media ID 
like_counttotal_likeszin ifTzin elifd   zin elsezNo likers found for media ID r   r   r	   Error processing post URL r   zRate limit hit. Backing off...r   r   z"Max retries exceeded for post URL z	Results: )r   r   get_user_id_from_usernamer   lenget_media_id_from_linkappendr(   get_media_infor    r!   r"   r#   r$   )datar   resultuser_idr   post_urlr&   r%   r'   
media_infor-   s              r   has_user_liked_postr:   J   s   	8*$789
))(3',xj7),-
 X'!*&))(3H
 
+,]]5
!F	&M
!(2c&k];<$$X.Za=.[
=%6GnmmD
s6{
"ImmD
s
ImmDImmE *8*A67]]4JJv~~a#$	 \-hZq	9:	==c f 6(q 	 
&xj1#67
3t9	T  &qLG	&xj1#
67A
+,	ZZa7l#$	ZZq!$%&I 	!s=   &G* 6H  D/H *	H3HHH 	J&)A3J!!J&c                 (   | t         v rt        d|  d       t         |    S 	 t        j                  |       }|t         | <   t	        j
                  t        j                  dd             |S # t        $ r}t        d|  d|        g cY d}~S d}~ww xY w)z8Get commenters for a media ID, using cache if available.z#Using cached comments for media ID r   r   r   z'Error fetching commenters for media ID r   N)	comments_cacher   r   get_media_commentersr    r!   r"   r#   r   )r%   
commentersr   s      r   get_commentersr?      s    
-hZq9:		!!''1*'.**V^^Aq!"	 
1(2aSAB	)s   AA+ +	B4BBBc                    t        d       g }	 t        j                  |      }t        d| d|        |sdgt	        |       z  S | D ]  }d}|dk  r	 t        j                  |      }|r5t        j                  |      }t	        |      dk  r.|j                  d       nut        |      r|j                  d       t        |      }	t        d	| d|	        |j                  ||	v        t        j                  t        j                  d
d             	 |dk\  s|j                  d        t        |       |S # t        $ r}t        d| d|        d }Y d }~'d }~ww xY w# t        $ rx}t        d| d|        |d
z  }dt        |      v r!t        d       t        j                  d       n)t        j                  t        j                  dd             Y d }~d }~ww xY w)Nhas_user_commented_postr*   r   #Failed to get user ID for username Fr   r   TCommenters for media ID r   r	   r/   r   +Rate limit reached. Pausing all operations.r   r   )r   r   r0   r   r1   r2   r4   r3   r   r?   r    r!   r"   r#   r$   )
r5   r   r6   r7   r   r8   r&   r%   r9   r>   s
             r   rA   rA      s    !
))(3',xj7),-
 	
3t9	X'!))(3H$$X.ZJmmD		!]]4
  )J	$XJb
=>
MM'Z'(JJv~~a#$	 \	==E H vY 	 
-hZr!=>'<  	&xj1#
67qLGA
89	ZZ^	ZZq!$%s8   &D: AE$A4E$:	E!EE!$	G%-A-G  G%c                    t        d       g }	 t        j                  |      }t        d| d|        |sdgt	        |       z  S | D ]  }d}|dk  r	 t        j                  |      }|r5t        j                  |      }t	        |      dk  r$|j                  d       n|j                  d       n}t        |      }	t        |      }
t        d	| d|	        t        d
| d|
        ||	v xs ||
v }|j                  |       t        j                  t        j                  dd             	 |dk\  s|j                  d        |S # t        $ r}t        d| d|        d }Y d }~6d }~ww xY w# t        $ rx}t        d| d|        |dz  }dt        |      v r!t        d       t        j                  d       n)t        j                  t        j                  dd             Y d }~d }~ww xY w)Nhas_user_interacted_with_postr*   r   rB   Fr   r   Tr+   rC   r   r	   r/   r   rD   r   r   )r   r   r0   r   r1   r2   r4   r3   r(   r?   r    r!   r"   r#   r$   )r5   r   r6   r7   r   r8   r&   r%   r9   r'   r>   
interacteds               r   rF   rF      s   &'
))(3',xj7),-
 	
3t9	X'! ))(3H$$X.ZJmmD]]4
 !F)J	 
"VH
56	$XJb
=> V#?J)>J
MM*JJv~~a#$	 \	==M R 	a 	 
-hZr!=>'D  	&xj1#
67qLGA
89	ZZ^	ZZq!$%s>   &E	 AE3E31A<E3		E0E++E03	G4<A-G//G4)$instabotr   osglobr    r"   dotenvr   astgetenvr   r   literal_evalchoicelistkeysr   r   r   
cookie_delremoveloginr!   r#   r   r   r$   exitr   r   r(   r:   r<   r?   rA   rF        r   <module>rX      sE    	     
 bii&	ec{+6==k..012x  hTYY,-

:a=	Hx0NFNN1a ! 	0@F 3l7q  CF"CD.s   0>D D9
%D44D9