
    Chy                     0   d 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lmZ ddlmZ dd	lmZmZmZ dd
lmZmZmZmZmZ ddlmZmZ ddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZh ddlimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZu ddlvmwZwmxZxmyZy ddlzm{Z{ ddl|m}Z}m~Z~mZ ddlmZmZmZmZ ddlmZmZmZmZ ddlmZmZmZmZmZ ddlmZmZ ej&                  j)                   ej*                               Z G d de      Zy)z0.117.0    N)utils   )API   )BotState)BotCache)archivearchive_mediasunarchive_medias)block
block_botsblock_usersunblockunblock_users)load_checkpointsave_checkpoint)commentcomment_geotagcomment_hashtagcomment_mediascomment_usercomment_usersis_commentedreply_to_comment)delete_commentdelete_mediadelete_medias)	approve_pending_thread_requestssend_hashtag	send_like
send_mediasend_mediassend_messagesend_messages
send_photosend_profile)check_mediacheck_not_bot
check_userfilter_medias)approve_pending_follow_requestsfollowfollow_followersfollow_followingfollow_usersreject_pending_follow_requests)(convert_to_user_idget_archived_mediasget_commentget_comment_likersget_geotag_mediasget_geotag_usersget_hashtag_mediasget_hashtag_usersget_last_user_mediasget_link_from_media_idget_locations_from_coordinatesget_media_commentersget_media_commentsget_media_comments_allget_media_id_from_linkget_media_infoget_media_likersget_media_ownerget_messagesget_pending_follow_requestsget_pending_thread_requestsget_popular_mediasget_self_story_viewersget_timeline_mediasget_timeline_usersget_total_hashtag_mediasget_total_user_mediasget_user_followersget_user_followingget_user_id_from_usernameget_user_infoget_user_likersget_user_mediasget_user_reelget_user_storiesget_user_tags_mediasget_username_from_user_idget_your_mediassearch_usersget_muted_friends)likelike_commentlike_followerslike_followinglike_geotaglike_hashtaglike_location_feedlike_media_commentslike_mediaslike_timeline	like_user
like_users)download_photodownload_photosupload_photosave_user_stats)download_storiesupload_story_photowatch_users_reels)check_if_file_existsconsole_printextract_urlsread_list_from_file)unfollowunfollow_everyoneunfollow_non_followersunfollow_users)unlikeunlike_commentunlike_media_commentsunlike_mediasunlike_user)download_videoupload_videoc            5       	   e Zd Zedz   dddddddd	 ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d       ej
                  d
d      dddddddddddddd ej
                  dd       ej
                  dd       ej
                  dd       ej
                  dd       ej
                  dd       ej
                  dd       ej
                  dd       ej
                  dd      dg ddd ej
                  dd      dd	dd	ej                  ej                  df5dZ	e
d        Ze
d        Ze
d        Ze
d        Ze
d        Ze
d        Ze
d        Ze
d         Ze
d!        Zej(                  d"        Ze
d#        Zej(                  d$        Ze
d%        Zej(                  d&        Ze
d'        Zej(                  d(        Ze
d)        Zej(                  d*        Ze
d+        Zej(                  d,        Ze
d-        Zej(                  d.        Ze
d/        Zej(                  d0        Ze
d1        Zej(                  d2        Zed3        Zd4 Zd5 Z d6 Z!d7 Z"d8 Z#d9 Z$d: Z%d; Z&d< Z'd= Z(d> Z)d? Z*d@ Z+dA Z,dB Z-ddCZ.ddDZ/dE Z0dF Z1ddGZ2dH Z3dI Z4ddJZ5ddKZ6ddLZ7dM Z8dN Z9dO Z:dP Z;dQ Z<dR Z=dS Z>dT Z?ddUZ@ddVZAddWZBdX ZCdY ZDddZZEdd[ZFd\ ZGd] ZHd^ ZIdd_ZJd` ZKda ZLdb ZMdc ZNdddZOde ZPdf ZQ	 	 	 	 	 	 	 	 	 ddgZRdh ZS	 	 	 	 	 	 	 	 ddiZTddjZUdk ZVddlZWddmZXddnZYddoZZdp Z[ddqZ\ddrZ]ds Z^dt Z_du Z`dv Zadw Zbdx ZcddyZdddzZe	 dd{Zfdd|Zgd	d	di fd}Zhd~d	i fdZi	 ddZjddZkddZlddZmddZnd Zod ZpddZqd Zrd Zsd ZtddZud ZvddZwddZxddZyddZzddZ{ddZ|d Z}d Z~d Zd ZddZd Zd Zd Zd Zd ZddZd ZddZddZd Zd Zd Zd Zd Zd Zd Z	 ddZd ZddZd ZddZd Zd ZddZddZy	)Botz/config/zwhitelist.txtzblacklist.txtzcomments.txtzfollowed.txtzunfollowed.txtzskipped.txtzfriends.txtN2   d   Fi  
   i        i,  iX  )shopstorefree)z#shopz#storez#freeTi  c6           	         t        |0||1|2|3|4      | _        |5| _        || _        t	               | _        |"|#|$|%|&|'|(|)d| _        || _        || _        || _	        || _
        || _        || _        |
|||||||d| _        |,| _        |-| _        |.| _        || _        || _        || _        || _        || _        || _        || _        || _        | | _        |*| _        |+| _        |!| _        t;               | _        t>        j@                  jC                  ||      }t>        j@                  jC                  ||      }t>        j@                  jC                  ||      }t>        j@                  jC                  ||      }t>        j@                  jC                  ||      }t>        j@                  jC                  ||      }t>        j@                  jC                  ||      }tE        jF                  |      | _$        tE        jF                  |      | _%        tE        jF                  |      | _&        tE        jF                  |      | _'        tE        jF                  |      | _(        tE        jF                  |      | _)        tE        jF                  |      | _*        |	| _+        |/| _,        | j                  jZ                  | _-        | jZ                  j]                  dt^        z   dz          | jZ                  ja                  djc                  td                     y )N)device	base_pathsave_logfilelog_filenameloglevel_fileloglevel_stream)rY   ru   r,   rq   r   r   r   message)likesunlikesfollows	unfollowscommentsblocksunblocksmessageszInstabot version: z StartedzBot imported from {})3r   apilog_follow_unfollowr   r   statedelaysfilter_usersfilter_private_users"filter_users_without_profile_photofilter_business_accountsfilter_verified_accountsfilter_previously_followedmax_per_dayblocked_actions_protectionblocked_actions_sleepblocked_actions_sleep_delaymax_likes_to_likemin_likes_to_likemax_followers_to_followmin_followers_to_followmax_following_to_followmin_following_to_follow max_followers_to_following_ratio max_following_to_followers_ratiomin_media_count_to_follow
stop_wordsblacklist_hashtagsmax_following_to_blockr   cacheospathjoinr   filefollowed_fileunfollowed_fileskipped_filefriends_filecomments_fileblacklist_filewhitelist_fileproxy	verbosityloggerinfoversiondebugformat__file__)6selfr   r   r   r   r   r   r   r   r   max_likes_per_daymax_unlikes_per_daymax_follows_per_daymax_unfollows_per_daymax_comments_per_daymax_blocks_per_daymax_unblocks_per_dayr   r   max_messages_per_dayr   r   r   r   r   r   r   r   r   r   r   r   r   r   
like_delayunlike_delayfollow_delayunfollow_delaycomment_delayblock_delayunblock_delaymessage_delayr   r   r   r   r   r   r   r   r   r   r   r   s6                                                         [/var/www/html/Telegram-Engagement-Pod-/env/lib/python3.12/site-packages/instabot/bot/bot.py__init__zBot.__init__   s   p %%'+
 $7 "Z
 ""&$ $$	
 )$8!2T/(@%(@%*D' '**.,(,,	
 +E'%:"+F(!2!2'>$'>$'>$'>$0P-0P-)B&$"4 '=# Z
 Y>'',,y/Bww||I|<ww||I|<Y>i@i@ #ZZ6$zz/:!JJ|4!JJ|4"ZZ6#jj8#jj8
"hhoo-7*DE077AB    c                 .    | j                   j                  S N)r   user_idr   s    r   r   zBot.user_id  s     xxr   c                 .    | j                   j                  S r   )r   usernamer   s    r   r   zBot.username       xx   r   c                 .    | j                   j                  S r   )r   passwordr   s    r   r   zBot.password$  r   r   c                 .    | j                   j                  S r   )r   	last_jsonr   s    r   r   zBot.last_json)  s     xx!!!r   c                 v    | j                   j                  D cg c]  }|| j                  |       c}S c c}w r   )r   listr1   r   is     r   	blacklistzBot.blacklist.  E     ((--
-} ##A&-
 	
 
   6c                 v    | j                   j                  D cg c]  }|| j                  |       c}S c c}w r   )r   r   r1   r   s     r   	whitelistzBot.whitelist8  r   r   c                 $   t        j                          }| j                  j                  d|      }| j                  ||z
  dkD  rA| j	                  dd       | j                  | j                        | _        || j                  d<   | j                  S )Nupdated_following   z(`bot.following` is empty, will download.green)timelastget
_followingrn   rM   r   r   nowr   s      r   	followingzBot.followingB  w    iikyy}}0#6??"sTzT&9I7S"55dllCDO-0DII)*r   c                 $   t        j                          }| j                  j                  d|      }| j                  ||z
  dkD  rA| j	                  dd       | j                  | j                        | _        || j                  d<   | j                  S )Nupdated_followersr   z(`bot.followers` is empty, will download.r   )r   r   r   
_followersrn   rL   r   r   s      r   	followerszBot.followersL  r   r   c                 .    | j                   j                  S r   r   
start_timer   s    r   r   zBot.start_timeV      zz$$$r   c                 &    || j                   _        y r   r   r   values     r   r   zBot.start_timeZ       %

r   c                 .    | j                   j                  S r   r   totalr   s    r   r  z	Bot.total^  s    zzr   c                 &    || j                   _        y r   r  r  s     r   r  z	Bot.totalb  s     

r   c                 .    | j                   j                  S r   r   sleeping_actionsr   s    r   r
  zBot.sleeping_actionsf  s    zz***r   c                 &    || j                   _        y r   r	  r  s     r   r
  zBot.sleeping_actionsj  s    &+

#r   c                 .    | j                   j                  S r   r   blocked_actionsr   s    r   r  zBot.blocked_actionsn  s    zz)))r   c                 &    || j                   _        y r   r  r  s     r   r  zBot.blocked_actionsr  s    %*

"r   c                 .    | j                   j                  S r   r   r   r   s    r   r   zBot.lastv  s    zzr   c                 &    || j                   _        y r   r  r  s     r   r   zBot.lastz  s    

r   c                 .    | j                   j                  S r   r   r   r   s    r   r   zBot._following~      zz###r   c                 &    || j                   _        y r   r  r  s     r   r   zBot._following      $

r   c                 .    | j                   j                  S r   r   r   r   s    r   r   zBot._followers  r  r   c                 &    || j                   _        y r   r  r  s     r   r   zBot._followers  r  r   c                 .    | j                   j                  S r   r   
user_infosr   s    r   _user_infoszBot._user_infos  r   r   c                 &    || j                   _        y r   r  r  s     r   r  zBot._user_infos  r  r   c                 .    | j                   j                  S r   r   	usernamesr   s    r   
_usernameszBot._usernames  r  r   c                 &    || j                   _        y r   r!  r  s     r   r#  zBot._usernames  r  r   c                  p    	 ddl m}  t        d | j                  D        d      S # t        $ r dd l} Y ,w xY w)Nr   pkg_resourcesc              3   n   K   | ]-  }|j                   j                         d k(  r|j                   / yw)instabotN)project_namelowerr   ).0ps     r   	<genexpr>zBot.version.<locals>.<genexpr>  s1      2A>>'')Z7 		2s   35zNo match)pip._vendorr'  ImportErrornextworking_setr&  s    r   r   zBot.version  sE    	!1 &22
 
 	
  	! 	!s   % 55c                     | j                   j                          | j                  j                  dt        j                  j                         | j                  z
         | j                          y )NzBot stopped. Worked: %s)r   logoutr   r   datetimer   r   print_counters)r   argskwargss      r   r4  z
Bot.logout  sM    ((*;*;*?*?*ADOO*S	
 	r   c                 F   | j                   r| j                   |d<    | j                  j                  di |du ry| j                          t	        j
                  | j                         d|v r|d   ryt        j                  t        j                  | j                         y)zif login function is run threaded, for example in scheduled job,
        signal will fail because it 'only works in main thread'.
        In this case, you may want to call login(is_threaded=True).
        r   Fis_threadedT )	r   r   loginprepareatexitregisterr6  signalSIGTERM)r   r7  s     r   r<  z	Bot.login  s~    
 :: JJDM488>>!D!U*++,D M"fnnd&9&9:r   c                     t        |       }|H|\  }| _        | j                  _        | _        |j                         D ]  \  }}|| j                  |<    y y r   )r   r  r   total_requestsr   itemsr  )r   storager  kvs        r   r=  zBot.prepare  s\    !$' $' 1 !

1 & r   c                 H   t        |        | j                  j                         D ]m  \  }}|dkD  s| j                  j	                  dj                  ||| j                  j                  |      rdt        | j                  |         z   nd             o | j                  j                         D ]2  \  }}|s	| j                  j	                  dj                  |             4 | j                  j	                  dj                  | j                  j                               y )Nr   zTotal {}: {}{}/ z
Blocked {}zTotal requests: {})r   r  rD  r   r   r   r   r   strr  r   rC  )r   r7  r8  keyvals        r   r6  zBot.print_counters  s    

((*HCQw  $++++//4 c$"2"23"788 + ,,224HC  !4!4S!9: 5 	-44TXX5L5LMNr   c                    | j                   |   | j                  |   }}t        j                         |z
  }||k  r1||z
  }t        j                  |t	        j
                  dd      z         t        j                         | j                   |<   y)z`
        Sleep only if elapsed time since
        `self.last[key]` < `self.delay[key]`.
        g      ?g      ?N)r   r   r   sleeprandomuniform)r   rL  last_actiontarget_delayelapsed_timet_remainings         r   delayz	Bot.delay  so    
 %)IIcNDKK4D\yy{[0,&&5KJJ{V^^D$%??@		#r   c                 .    t        j                  d       y )Nr   )r   rO  r   s    r   error_delayzBot.error_delay  s    

2r   c                 V    t        j                  t        j                  dd             y )Ng      ?g      @r   rO  rP  rQ  r   s    r   small_delayzBot.small_delay  s    

6>>$-.r   c                 V    t        j                  t        j                  dd             y )Ngffffff?g      ?rZ  r   s    r   very_small_delayzBot.very_small_delay  s    

6>>%/0r   c                    t         j                   j                         }|j                         | j                  j                         z
  j                  }|dkD  r| j                          | j                  |   | j                  |   z
  dk  S )Nr   )r5  r   dater   daysreset_countersr   r  )r   rL  current_datepassed_dayss       r   reached_limitzBot.reached_limit  sr    ((,,.#((*T__-A-A-CCII?!$tzz#6!;;r   c                     | j                   D ]  }d| j                   |<    | j                  D ]  }d| j                  |<    t        j                  j                         | _        y )Nr   F)r  r  r5  r   r   )r   rF  s     r   ra  zBot.reset_counters   sS    ADJJqM %%A&+D  # &"++//1r   c                 <    d | _         d | _        i | _        i | _        y r   )r   r   r  r#  r   s    r   reset_cachezBot.reset_cache  s    r   c                     t        | |      S )z0
        Returns array of stories links
        )rS   r   r   s     r   rS   zBot.get_user_stories  s      g..r   c                     t        | |      S r   )rR   ri  s     r   rR   zBot.get_user_reel  s    T7++r   c                     t        | |      S r   )rG   )r   story_ids     r   rG   zBot.get_self_story_viewers  s    %dH55r   c                     t        |       S r   )rD   r   s    r   rD   zBot.get_pending_follow_requests      *400r   c                     t        | |      S )z
        Returns your media ids. With parameter
        as_dict=True returns media as dict.
        :type as_dict: bool
        )rV   r   as_dicts     r   rV   zBot.get_your_medias  s     tW--r   c                     t        | |      S )z
        Returns your archived media ids. With parameter
        as_dict=True returns media as dict.
        :type as_dict: bool
        )r2   rp  s     r   r2   zBot.get_archived_medias%  s     #411r   c                     t        |       S r   )rH   r   s    r   rH   zBot.get_timeline_medias-  s    "4((r   c                     t        |       S r   )rF   r   s    r   rF   zBot.get_popular_medias0      !$''r   c                     t        | |||      S r   )rQ   )r   r   
filtration
is_comments       r   rQ   zBot.get_user_medias3  s    tWj*EEr   c                     t        | |      S r   )rK   ri  s     r   rK   zBot.get_total_user_medias6  s    $T733r   c                     t        | ||      S )z
        Returns the last number of posts specified in count in media ids array.
        :type count: int
        :param count: Count of posts
        :return: array
        )r9   )r   r   counts      r   r9   zBot.get_last_user_medias9  s     $D'599r   c                     t        | ||      S r   )r7   )r   hashtagrw  s      r   r7   zBot.get_hashtag_mediasB  s    !$<<r   c                     t        | |||      S r   )rJ   )r   r}  amountrw  s       r   rJ   zBot.get_total_hashtag_mediasE  s    'gvzJJr   c                     t        | ||      S r   )r5   )r   geotagrw  s      r   r5   zBot.get_geotag_mediasH  s     vz::r   c                     t        | ||      S r   )r;   )r   latitude	longitudes      r   r;   z"Bot.get_locations_from_coordinatesK  s    -dHiHHr   c                     t        | |      S r   )r@   r   media_ids     r   r@   zBot.get_media_infoN      dH--r   c                     t        |       S r   )rI   r   s    r   rI   zBot.get_timeline_usersQ  ru  r   c                     t        | |      S r   )r8   )r   r}  s     r   r8   zBot.get_hashtag_usersT  s     w//r   c                     t        | |      S r   )r6   r   r  s     r   r6   zBot.get_geotag_usersW      f--r   c                     t        | |      S r   )rN   r   r   s     r   rN   zBot.get_user_id_from_usernameZ  s    (x88r   c                     t        | |      S r   )rT   ri  s     r   rT   zBot.get_user_tags_medias]  s    #D'22r   c                     t        | |      S r   )rU   ri  s     r   rU   zBot.get_username_from_user_id`  s    (w77r   c                     t        | ||      S r   )rO   )r   r   	use_caches      r   rO   zBot.get_user_infoc  s    T7I66r   c                     t        | ||      S r   )rL   r   r   nfollowss      r   rL   zBot.get_user_followersf      !$::r   c                     t        | ||      S r   )rM   r  s      r   rM   zBot.get_user_followingi  r  r   c                     t        | |      S r   )r4   r   
comment_ids     r   r4   zBot.get_comment_likersl  s    !$
33r   c                     t        | |      S r   )rA   r  s     r   rA   zBot.get_media_likerso      h//r   c                     t        | ||      S r   )r=   )r   r  	only_texts      r   r=   zBot.get_media_commentsr  s    !$)<<r   c                     t        | |||      S r   )r>   )r   r  r  r{  s       r   r>   zBot.get_media_comments_allu  s    %dHiGGr   c                     t        |       S r   )r3   r   s    r   r3   zBot.get_commentx  s    4  r   c                     t        | |      S r   )r<   r  s     r   r<   zBot.get_media_commenters{  s    #D(33r   c                     t        | |      S r   )rB   r   medias     r   rB   zBot.get_media_owner~  s    tU++r   c                     t        | ||      S r   )rP   )r   r   media_counts      r   rP   zBot.get_user_likers  s    tWk::r   c                     t        | |      S r   )r?   r   links     r   r?   zBot.get_media_id_from_link      %dD11r   c                     t        | |      S r   )r:   r  s     r   r:   zBot.get_link_from_media_id  r  r   c                     t        |       S r   )rC   r   s    r   rC   zBot.get_messages      D!!r   c                     t        | |      S r   )rW   )r   querys     r   rW   zBot.search_users  s    D%((r   c                     t        | |      S r   )rX   )r   muted_contents     r   rX   zBot.get_muted_friends  s     }55r   c                     t        | |      S r   )r1   )r   r"  s     r   r1   zBot.convert_to_user_id  s    !$	22r   c                     t        |       S r   )rE   r   s    r   rE   zBot.get_pending_thread_requests  rn  r   c                 .    t        | |||||||||	|
      S )N)container_modulefeed_positionr   r   hashtag_name
hashtag_identity_page_nameentity_page_id)rY   )r   r  r'   r  r  r   r   r  r  r  r  s              r   rY   zBot.like  s2     -'%!-)
 	
r   c                     t        | |      S r   )rZ   r  s     r   rZ   zBot.like_comment  s    D*--r   c
                 ,    t        | |||||||||	
      S )N)r  r   r   r  r  r  r  )ra   )
r   	media_idsr'   r  r   r   r  r  r  r  s
             r   ra   zBot.like_medias  s/     -%!-)
 	
r   c                     t        | |      S r   )rb   )r   r  s     r   rb   zBot.like_timeline      T6**r   c                     t        | |      S r   )r`   r  s     r   r`   zBot.like_media_comments  s    "422r   c                     t        | |||      S r   )rc   )r   r   r  rw  s       r   rc   zBot.like_user  s    w
;;r   c                     t        | ||      S r   )r^   r   r}  r  s      r   r^   zBot.like_hashtag      D'622r   c                     t        | ||      S r   )r]   )r   r  r  s      r   r]   zBot.like_geotag  s    400r   c                     t        | |||      S r   )rd   )r   user_idsnlikesrw  s       r   rd   zBot.like_users  s    $&*==r   c                     t        | ||      S r   )r_   )r   placer  s      r   r_   zBot.like_location_feed  s    !$v66r   c                     t        | |||      S r   )r[   r   r   r  r  s       r   r[   zBot.like_followers      dGVX>>r   c                     t        | |||      S r   )r\   r  s       r   r\   zBot.like_following  r  r   c                     t        | |      S r   )ru   r  s     r   ru   z
Bot.unlike  s    dH%%r   c                     t        | |      S r   )rv   r  s     r   rv   zBot.unlike_comment  s    dJ//r   c                     t        | |      S r   )rw   r  s     r   rw   zBot.unlike_media_comments  s    $T844r   c                     t        | |      S r   )rx   )r   r  s     r   rx   zBot.unlike_medias  s    T9--r   c                     t        | |      S r   )ry   r   users     r   ry   zBot.unlike_user  s    4&&r   c                     t        | |      S r   )rj   r  s     r   rj   zBot.download_stories  r  r   c                     t        | ||      S r   )rk   )r   photo	upload_ids      r   rk   zBot.upload_story_photo  s    !$y99r   c                     t        | ||      S )N)	max_users)rl   )r   r  r  s      r   rl   zBot.watch_users_reels  s     x9EEr   c                      t        | ||||      S r   )re   r   r  folderfilenamesave_descriptions        r   re   zBot.download_photo       dHfh@PQQr   c                     t        | |||      S r   )rf   )r   mediasr  r  s       r   rf   zBot.download_photos  s    tVV5EFFr   c                 "    t        | |||||      S )aK  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 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             Object with state of uploading to
                            Instagram (or False)
        )rg   )r   r  captionr  
from_videooptionss         r   rg   zBot.upload_photo  s    & D%)ZQQr   rJ  c                      t        | ||||      S )aA  Upload video to Instagram

        @param video      Path to video file (String)
        @param caption    Media description (String)
        @param thumbnail  Path to thumbnail for video (String). When None,
                          then thumbnail is generated automatically
        @param options    Object with difference options, e.g.
                          configure_timeout, rename_thumbnail, rename (Dict)
                          Designed to reduce the number of function arguments!

        @return           Object with Instagram upload state (or False)
        )r{   )r   videor  	thumbnailr  s        r   r{   zBot.upload_video)  s     D%)WEEr   c                      t        | ||||      S r   )rz   r  s        r   rz   zBot.download_video8  r  r   c                     t        | ||      S r   )r,   )r   r   r)   s      r   r,   z
Bot.follow>  s    dGZ00r   c                     t        | ||      S r   )r/   )r   r  r  s      r   r/   zBot.follow_usersA  s    D(H55r   c                     t        | ||      S r   )r-   r  s      r   r-   zBot.follow_followersD      gx88r   c                     t        | ||      S r   )r.   r  s      r   r.   zBot.follow_followingG  r  r   c                     t        | |      S r   )rq   ri  s     r   rq   zBot.unfollowK  s    g&&r   c                     t        | |      S r   )rt   r   r  s     r   rt   zBot.unfollow_usersN  r  r   c                     t        | |      S r   )rs   )r   n_to_unfollowss     r   rs   zBot.unfollow_non_followersQ  s    %dN;;r   c                     t        |       S r   )rr   r   s    r   rr   zBot.unfollow_everyoneT  s     &&r   c                     t        |       S r   )r+   r   s    r   r+   z#Bot.approve_pending_follow_requestsW      .t44r   c                     t        |       S r   )r0   r   s    r   r0   z"Bot.reject_pending_follow_requestsZ  s    -d33r   c                     t        | |||      S r   )r#   )r   textr  	thread_ids       r   r#   zBot.send_message^  s    D$)<<r   c                     t        | ||      S r   )r$   )r   r  r  s      r   r$   zBot.send_messagesa  s    T422r   c                      t        | ||||      S r   )r!   )r   r  r  r  r  s        r   r!   zBot.send_mediad  s    $(D)DDr   c                     t        | |||      S r   )r"   )r   r  r  r  s       r   r"   zBot.send_mediasg  s    48T::r   c                      t        | ||||      S r   )r   )r   r}  r  r  r  s        r   r   zBot.send_hashtagj  s    D'8T9EEr   c                      t        | ||||      S r   )r&   )r   profile_user_idr  r  r  s        r   r&   zBot.send_profilem  s    D/8T9MMr   c                     t        | ||      S r   )r    )r   r  r  s      r   r    zBot.send_likep  s    x33r   c                     t        | |||      S r   )r%   )r   r  filepathr  s       r   r%   zBot.send_photos  s    $(I>>r   c                     t        |       S r   )r   r   s    r   r   z#Bot.approve_pending_thread_requestsv  r  r   c                     t        | |      S r   )r   r  s     r   r   zBot.delete_mediaz      D(++r   c                     t        | |      S r   )r   r   r  s     r   r   zBot.delete_medias}  r  r   c                     t        | ||      S r   )r   )r   r  r  s      r   r   zBot.delete_comment  s    dHj99r   c                     t        | ||      S r   r	   )r   r  undos      r   r	   zBot.archive      tXt,,r   c                     t        | |d      S NTr  r  s     r   	unarchivezBot.unarchive  r  r   c                     t        | |      S r   )r
   r  s     r   r
   zBot.archive_medias      dF++r   c                     t        | |      S r   )r   r  s     r   r   zBot.unarchive_medias  r  r   c                     t        | ||      S r   )r   )r   r  comment_texts      r   r   zBot.comment  s    tX|44r   c                     t        | |||      S r   )r   )r   r  r  parent_comment_ids       r   r   zBot.reply_to_comment  s    h>OPPr   c                     t        | ||      S r   )r   r  s      r   r   zBot.comment_hashtag  s    tWf55r   c                     t        | |      S r   )r   r  s     r   r   zBot.comment_medias  r  r   c                     t        | ||      S r   )r   )r   r   r  s      r   r   zBot.comment_user  r  r   c                     t        | ||      S r   )r   )r   r  	ncommentss      r   r   zBot.comment_users  s    T8Y77r   c                     t        | |      S r   )r   r  s     r   r   zBot.comment_geotag  r  r   c                     t        | |      S r   )r   r  s     r   r   zBot.is_commented  r	  r   c                     t        | |      S r   )r   ri  s     r   r   z	Bot.block  s    T7##r   c                     t        | |      S r   )r   ri  s     r   r   zBot.unblock  s    tW%%r   c                     t        | |      S r   )r   r  s     r   r   zBot.block_users  s    4**r   c                     t        | |      S r   )r   r  s     r   r   zBot.unblock_users  s    T8,,r   c                     t        |       S r   )r   r   s    r   r   zBot.block_bots  s    $r   c                      t        | ||||      S r   )r*   )r   media_itemsrw  quietrx  s        r   r*   zBot.filter_medias  s     T;
E:NNr   c                     t        | |      S r   )r'   r  s     r   r'   zBot.check_media  s    4''r   c                     t        | ||      S r   )r)   )r   r  unfollowings      r   r)   zBot.check_user  s    $k22r   c                     t        | |      S r   )r(   r  s     r   r(   zBot.check_not_bot  s    T4((r   c                     t        ||      S r   )rm   )r   	file_pathr)  s      r   rm   zBot.check_if_file_exists  s    #Iu55r   c                     t        |      S r   )ro   )r   r  s     r   ro   zBot.extract_urls  r  r   c                     t        |      S r   )rp   )r   r/  s     r   rp   zBot.read_list_from_file  s    "9--r   c                     t        | ||      S r   )rn   )r   r  colors      r   rn   zBot.console_print  s    T4//r   c                     t        | ||      S )N)r   rh   )r   r   r   s      r   ri   zBot.save_user_stats  s    tXD99r   )F)TF)T)r   Fr   )FF)r   )stories)	Tfeed_short_urlr   NNNNNN)Tfeed_timelineNNNNNNr  )NN)r   )photosNF)r8  F)videosNF)rJ  N)TFF)rJ  )__name__
__module____qualname__current_pathrP  randintloggingDEBUGINFOr   propertyr   r   r   r   r   r   r   r   r   setterr  r
  r  r   r   r   r  r#  staticmethodr   r4  r<  r=  r6  rV  rX  r[  r]  rd  ra  rg  rS   rR   rG   rD   rV   r2   rH   rF   rQ   rK   r9   r7   rJ   r5   r;   r@   rI   r8   r6   rN   rT   rU   rO   rL   rM   r4   rA   r=   r>   r3   r<   rB   rP   r?   r:   rC   rW   rX   r1   rE   rY   rZ   ra   rb   r`   rc   r^   r]   rd   r_   r[   r\   ru   rv   rw   rx   ry   rj   rk   rl   re   rf   rg   r{   rz   r,   r/   r-   r.   rq   rt   rs   rr   r+   r0   r#   r$   r!   r"   r   r&   r    r%   r   r   r   r   r	   r  r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r'   r)   r(   rm   ro   rp   rn   ri   r;  r   r   r}   r}      s    +&&$$(""(&..S1*FNN2s3*FNN2s3,fnnR5+V^^B4)6>>"c2+V^^B4(&..S1(&..S1+V^^B4"+0#(!&!& $ " $ ")+)+"##!6>>#s+#V^^C-#V^^C-%v~~c3/$fnnS#."FNN3,$fnnS#.$fnnS#.,7#'"$2FNN3$=mm mQCf     ! ! ! ! " " 
 
 
 
     % % & &     \\! ! + + , , * * + +   
[[    $ $ % % $ $ % % % % & & $ $ % % 
 
""O$
%/1<2/,61.2)(F4:=K;I.(0.9387;;40=H!4,;22")631 )
8. (
4+3<31>7??
&05.'0:F
 JOR
G "TeRR, +-b F  JOR1699'.<'54=3E;FN4?5,+:--,.5Q6,38,,$&+- 
 EJO
(3)6".0:r   r}   )r   r>  r5  r?  r   rP  r@  r   r)  r   r   r   state.bot_stater   state.bot_cacher   bot_archiver	   r
   r   	bot_blockr   r   r   r   r   bot_checkpointr   r   bot_commentr   r   r   r   r   r   r   r   
bot_deleter   r   r   
bot_directr   r   r    r!   r"   r#   r$   r%   r&   
bot_filterr'   r(   r)   r*   
bot_followr+   r,   r-   r.   r/   r0   bot_getr1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   bot_likerY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   	bot_photore   rf   rg   	bot_statsri   	bot_storyrj   rk   rl   bot_supportrm   rn   ro   rp   bot_unfollowrq   rr   rs   rt   
bot_unlikeru   rv   rw   rx   ry   	bot_videorz   r{   r   abspathgetcwdr=  objectr}   r;  r   r   <module>r[     s  
    	      % % B B M M <	 	 	 D C
 
 
 N M ) ) ) ) ) ) ) ) ) ) )T    E D & N N    4wwyryy{+Q:& Q:r   