
    hje                        S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr	   SSK
Jr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKJr  SSKJr  SSKJ r J!r!J"r"  SSK#J$r$  SSK%J&r&J'r'  SSK(J)r)  SSK*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6  SSK7J8r8  SSK9J:r:  SSKJ;r;J<r<JrJ=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrK  SrLSrM0 rN\K" SSS9S 5       rO\K" SS9S 5       rP\K" SS9S  5       rQ\K" S!S9S"\R                  4S# j5       rS\K" S$SSS%9S& 5       rQ\K" S'SS(9S) 5       rQ\K" S*SS+9S, 5       rQ\K" S-S9S. 5       rT\K" S/S9S0 5       rU\K" S1S9S2 5       rQ\K" S3SS(9S4 5       rV\K" S5S9S6 5       rW\K" S7S9S8 5       rX\" S9S9S: 5       rY\K" S9S9S; 5       rZS< r[\K" S=S9S> 5       r\S? r]S@ r^\K" SAS9SB 5       r_g! \ a    Sr GNf = f)CuV  
✘ Commands Available -

• `{i}kickme` : Leaves the group.

• `{i}date` : Show Calender.

• `{i}listreserved`
    List all usernames (channels/groups) you own.

• `{i}stats` : See your profile stats.

• `{i}paste` - `Include long text / Reply to text file.`

• `{i}info <username/userid/chatid>`
    Reply to someone's msg.

• `{i}invite <username/userid>`
    Add user to the chat.

• `{i}rmbg <reply to pic>`
    Remove background from that picture.

• `{i}telegraph <reply to media/text>`
    Upload media/text to telegraph.

• `{i}json <reply to msg>`
    Get the json encoding of the message.

• `{i}suggest <reply to message> or <poll title>`
    Create a Yes/No poll for the replied suggestion.

• `{i}ipinfo <ipAddress>` : Get info about that IP address.

• `{i}cpy <reply to message>`
   Copy the replied message, with formatting. Expires in 24hrs.
• `{i}pst`
   Paste the copied message, with formatting.

• `{i}thumb <reply file>` : Download the thumbnail of the replied file.

• `{i}getmsg <message link>`
  Get messages from chats with forward/copy restrictions.
    N)datetime)Image)asst_cmd)
is_gbanned)get_chat_and_msgid   )upload_file)ChatForwardsRestrictedErrorUserBotError)MessageTooLongError)
NewMessage)Dialog)GetAdminedPublicChannelsRequestInviteToChannelRequestLeaveChannelRequest)GetBlockedRequest)AddChatUserRequestGetAllStickersRequest)GetFullUserRequest)ChannelChatInputMediaPollPoll
PollAnswerTLObjectUserUserStatusOfflineUserStatusOnlineMessageMediaPhotoMessageMediaDocumentDocumentAttributeVideo)get_peer_id)get_chat_info)HNDLRLOGSr   ReTrieveFile	Telegraphasstasync_searcherbashcheck_filenameeodeor	get_paste
get_stringinline_mentionjson_parser	mediainfoudBultroid_cmdzresources/downloads/   zkickme$T)patternfullsudoc                    #    U R                  SU R                  R                  R                   S35      I S h  vN   U R                  [	        U R
                  5      5      I S h  vN   g  N1 N7f)N`z has left this group, bye!!.`)r-   clientme
first_namer   chat_id)ults    &/root/TeamUltroid/plugins/utilities.pyleaver@      sU     
''Acjjmm..//LM
NNN
**(5
666 O6s!   7A/A++A/%A-&A/-A/zdate$)r6   c                 @  #    [         R                  " 5       R                  n[         R                  " 5       R                  n[         R                  " 5       R	                  S5      n[
        R                  " X!5      nU R                  SU SU S35      I S h  vN   g  N7f)NzDate - %B %d, %Y
Time- %H:%M:%Sr9   

)dtnowmonthyearstrftimecalendarr-   )eventmydks        r?   daterN      sj      	A
A
<=AqA
))as$qcO
$$$s   BBBBzlistreserved$c                 "  #    U R                  [        5       5      I S h  vN nUR                  (       d  U R                  S5      I S h  vN $ SR	                  S UR                  5       5      nU R                  U5      I S h  vN   g  Ni NA N	7f)Nz`No username Reserved` c              3   \   #    U  H"  nS UR                    SUR                   S3v   M$     g7f)z- z @ 
N)titleusername).0channel_objs     r?   	<genexpr>_.<locals>.<genexpr>   s4      'K [r+"6"6!7s;'s   *,)r:   r   chatsr-   join)rI   result
output_strs      r?   _r]      sw      << ? ABBF<<YY7888 !<< J ))J
 C8
  s3   BB	)B	B
9BBBBBzstats$rI   c                   #    U R                  S5      I S h  vN n[        R                  " 5       nSnSnSnSnSnSnSn	Sn
SnSnU R                  R                  5         S h  vN nUR                  n[        U[        5      (       aT  UR                  (       aC  US-  nUR                  (       d  UR                  (       a  U	S-  n	UR                  (       a  U
S-  n
O[        U[        5      (       a  UR                  (       d  [        U[        5      (       aC  US-  nUR                  (       d  UR                  (       a  US-  nUR                  (       a  US-  nO0[        U[        5      (       a  US-  nUR                  (       a  US-  nXR                  -  nXR                  -  nGMK   GN GNJ
 [        R                  " 5       U-
  n U R                  [!        SS5      5      I S h  vN  R"                  nO! [$         a    Sn Of = f U R                  ['        S5      5      I S h  vN  n[)        UR*                  5      nO! [,         a    Sn Of = fU R                  R.                  n[1        U5      nUR2                  (       a  SUR2                   SUR2                   S3OSUR4                   S3nS	U S
U S3nUSU S3-  nUSX4-
   S3-  nUSU S3-  nUSU S3-  nUSU S3-  nUSU S3-  nUSU S3-  nUSXx-
   S3-  nUSU	 S3-  nUSU
 S3-  nUSX-
   S3-  nUSU S3-  nUSU S3-  nUSU S3-  nUSU S3-  nUSUS S3-  nUR7                  U5      I S h  vN    g 7f) Nz`Collecting stats...`r   r   z (`@z` | [Profile](https://t.me/z))z (`ID: z`)u   🔸 **Stats for z**rB   z**Private Chats:** rR   u   **  •• **`Users: z` 
u   **  •• **`Bots: z**Groups:** z**Channels:** z**Admin in Groups:** u   **  •• **`Creator: u   **  •• **`Admin Rights: z**Admin in Channels:** z**Unread:** z**Unread Mentions:** z**Blocked Users:** 
z%**Total Stickers Pack Installed :** `z`

z**__It Took:__** z.02fzs 
)r-   timer:   iter_dialogsentity
isinstancer   	broadcastcreatoradmin_rights	megagroupr   r   botunread_mentions_countunread_countr   countAttributeErrorr   lensetsBaseExceptionr;   r0   rT   idedit)rI   ok
start_timeprivate_chatsbotsgroupsbroadcast_channelsadmin_in_groupscreator_in_groupsadmin_in_broadcast_channelscreator_in_channelsunread_mentionsunreaddialogrb   	stop_timectspsp_countr;   	full_nameusername_lineresponses                          r?   statsr      s     yy01	1BJMDFO"#OF113 &ffg&&6+;+;!#~~!4!4+q0+~~#q(#))f.>.>:DD
 D
 aKF~~!4!41$~~!Q&!%%QMzz	777%%%K 
2&32 		j(ILL!21a!8999@@ << 5a 8999rww< 	Br"I ;; r{{m6r{{m2FruugR  
 #9+RdCH%m_C88H'(<'=TBBH&tfD11H,vhc**H.!3 4C88H''8<<H)*;)<DAAH./R.SSWXXH)*E)FcJJH)*=)>dCCH./J/`.aaeffH,vhc**H''8<<H%bT,,H7zGGH#Id#3488H
''(
s   M1F*AM1F0#F-$F0'EM1-F00M1
G9 (G+)G9 8M19HM1HM1I )H,*I M1IM1IDM1*M-+M1zpaste( (.*)|$))r6   manager	allow_allc                 d  #     U R                   R                  SS9S   nU R                  S5      I S h  vN nS nU(       a  UnOU R                  (       a  U R                  5       I S h  vN nUR                  (       a`  U R                  R                  US5      I S h  vN n[        US5       nUR                  5       nS S S 5        [        R                  " U5        OUR                  nOS nW(       d  UR                  SSS9I S h  vN $ [        U5      I S h  vN u  pxU(       d2  UR                  S	5      (       a  UR                  US	   5      I S h  vN $ S
US    SUS    S3n	 U R                  R                   (       a  UR                  U	5      I S h  vN $ U R                  R#                  [$        R&                  R(                  SUS    35      I S h  vN n
U
S   R+                  U R,                  U R                  SS9I S h  vN   UR/                  5       I S h  vN   g ! [         a    S n GNf = f GN	 GN GN! , (       d  f       GN= f GNP GN@ GN N N NX NB! [0         a:  n[2        R4                  " U5        UR7                  U	5      I S h  vN     S nAg S nAff = f7f)Nr   maxsplitu   ` 《 Pasting... 》 `z./resources/downloadsrz4`Reply to a Message/Document or Give me Some Text !`   r`   erroru%   • **Pasted to SpaceBin :** [Space](linku   )
• **Raw Url :** : [Raw](raw)zpasta-r   T)reply_tohide_via)textsplit
IndexErrorr-   reply_to_msg_idget_reply_messagemediar:   download_mediaopenreadosremovemessager.   get_botinline_queryr(   r;   rT   clickr=   deletero   r%   	exceptionrq   )rI   	input_strxxdownloaded_file_namer   previous_messagefddonedata
reply_textrr   es               r?   r]   r]      sE    JJ$$a$03	 yy12	2B			!&!8!8!::!!).)D)D '* $  *C0B'') 1II*+&..GVVB  
 
 	
 !))JDDHHW%%VVDM***
/V~=Z[_`e[fZgghi "<<
+++<<,,TWW-=-=V~?VWWekk%--%2G2GRVkWWWiikG  		2
 ;$ 10
 ** ,WW "qggj!!!"s(  J0H* J0H=4J0)I *4J0IJ0/I AJ0I	J0I:J0IJ0+/I) I!I) J0=I) I#/I) I%I) $I'%I) )J0*H:6J09H::J0 J0J0
I	J0J0J0!I) #I) %I) 'I) )
J-3*J(J J(#J0(J--J0zinfo( (.*)|$))r6   r   c                 "	  #    U R                   R                  S5      R                  5       =n(       a%   U R                  R	                  U5      I S h  vN nOBU R                  (       a%  U R                  5       I S h  vN nUR                  nOU R                  nU R                  [        S5      5      I S h  vN n U R                  R                  U5      I S h  vN n[        U[         5      (       d   [#        U5      n[%        X`5      I S h  vN u  p['        U5      (       a  U	S-  n	U(       d  UR                  U	SS9I S h  vN $ U R                  R)                  U R                  U	S S USS9I S h  vN   UR+                  5       I S h  vN   g  U R                  [-        U5      5      I S h  vN R.                  n
UnU R                  R1                  UR2                  SS9I S h  vN R4                  =(       d    SnUR2                  n[6        R8                  " UR:                  5      nUb  UR=                  SS5      nUR>                  nU(       a  UR=                  SS5      OSnU
R@                  nUb   [6        R8                  " U
R@                  5      nU
RB                  nURD                  (       a  URD                  RF                  nOSnSRI                  UUUUUUUURJ                  URL                  URN                  URP                  U5      n['        U5      =n(       a	  USU S3-  nU R                  R)                  U R                  UU RR                  SU
RT                  SSS9I S h  vN   UR+                  5       I S h  vN   g  GN:! [
         a-  nU R                  [        U5      5      I S h  vN  s S nA$ S nAff = f GNM GN GN! [
         a'  nUR                  SU 35      I S h  vN  s S nA$ S nAff = f GN GN GN GN! [
         a0  nU R                  S	[        U5      -   5      I S h  vN     S nAg S nAff = f GN! [
         a'  nUR                  S
U 35      I S h  vN  s S nA$ S nAff = f GN GN GN7f)Nr   com_1z**ERROR :** u)   
•<b> Is Gbanned:</b> <code>True</code>html)
parse_moder5   )filer   z**ERROR ON CHATINFO**
zERROR : r   )limitNaNu   ⁠rP   zLast Name not foundz$Need a Profile Picture to check thisu)  <b>Extracted Data From Telegram's Database</b>
<b>• Telegram ID</b>: <code>{}</code>
<b>• Permanent Link</b>: <a href='tg://user?id={}'>Click Here</a>
<b>• First Name</b>: <code>{}</code>
<b>• Last Name</b>: <code>{}</code>
<b>• Bio</b>: <code>{}</code>
<b>• DC ID</b>: <code>{}</code>
<b>• Number of Profile Pictures</b>: <code>{}</code>
<b>• Is Restricted</b>: <code>{}</code>
<b>• Verified</b>: <code>{}</code>
<b>• Is Premium</b>: <code>{}</code>
<b>• Is A Bot</b>: <code>{}</code>
<b>• Groups In Common</b>: <code>{}</code>
uc   <b>••Gʟᴏʙᴀʟʟʏ Bᴀɴɴᴇᴅ</b>: <code>True</code>
<b>••Rᴇᴀsᴏɴ</b>: <code>z</code>HTMLFT)r   r   r   force_documentsilent)+pattern_matchgroupstripr:   parse_id	Exceptionr-   stris_replyr   	sender_idr=   r/   
get_entityrq   rc   r   r"   r#   r   send_messager   r   	full_userget_profile_photosrp   totalr   escaper<   replace	last_nameaboutcommon_chats_countphotodc_idformat
restrictedverifiedpremiumrh   r   profile_photo)rI   matchusererrplr   r]   peerr   captr   user_photosuser_idr<   r   user_biocommon_chatsr   captionchks                       r?   r]   r]   !  s    
 ##))!,2244u4	,..u55D 
++--}}}}yyG,-	-B2,,))$// a	Aq>D -a 77KE$DDVVDVV<<<,,++tET{6 ,    ))+ 	. <<(:4(@AALL	 Dll--dggQ-??e  ggGT__-J''"5
I+4	(B';P  H;;y///Lzz

  6 F 6 !!s! ##&%w2 	2
,,
#
#&&$$ $    ))+w 6 	,3r7++++	, . 
./ 2WW|B4011112
 8 =  	A))5B?@@@	A B .WWxt_----. 	@` s  1RN NN %R<O	=:R7O8R=O OO  R6P P5P P	P 	R
,P 6P7P PP RQ 2Q3Q )R*R+FR.R	/RRRN 
OO6N97O;O<RORRO 
PO>3O64O>8P9R>PRP 	P P P 
Q Q<P?=QRQRQ 
RQ>3Q64Q>8R9R>RR	RRzinvite( (.*)|$))r6   groups_onlyc           	        #    U R                  [        S5      5      I S h  vN nU R                  R                  S5      R	                  5       nU R
                  (       d  U R                  (       a  UR                  S5       H{  n U R                  [        U R                  U R                  R                  U5      I S h  vN SS95      I S h  vN   UR                  SU SU R                   S35      I S h  vN   M}     g UR                  S5       H{  n U R                  [        U R                  U R                  R                  U5      I S h  vN /S	95      I S h  vN   UR                  SU SU R                   S35      I S h  vN   M}     g  GNr N N N! [         a/  nUR                  [        U5      5      I S h  vN     S nAGMN  S nAff = f N Nz NR! [          a)    UR                  S
["         SU S35      I S h  vN     M  [         a/  nUR                  [        U5      5      I S h  vN     S nAGM0  S nAff = f7f)Nr   r    i@B )r=   r   	fwd_limitzSuccessfully invited `z` to `r9   )channelusersz9Bots can only be added as Admins in Channel.
Better Use `zpromote )r-   r/   r   r   r   
is_channelis_groupr   r:   r   r=   r   rq   r   r   r   r   r$   )r>   r   to_add_usersr   r   s        r?   r]   r]     s    
 wwz'*+	+B$$**1-335L>>cll#))#.G
&jj& #&)jj&9&9'&B B")   gg 6wivckk]RSTUUU / $))#.G&jj* #%(ZZ%8%8%AAB   gg 6wivckk]RSTUUU /! 
, !C V &ggc!fo%%%&  B V ggPQVPWW_`g_hhij    &ggc!fo%%%&s   I
FA#I
9F>F?FF)F7F8F<I
9GGGG)GG	GI
FFF
G%GGGI
GI
GGG)IH	II
	II5H86I;I
II
zrmbg($| (.*))c                   #    [         R                  " S5      nU(       d  U R                  S5      I S h  vN $ U R                  R	                  S5      R                  5       nU R                  5       I S h  vN nU(       a'  [        R                  R                  U5      (       a  UnOU(       an  UR                  (       a]  UR                  (       a3  UR                  R                  (       a  UR                  SS9I S h  vN nO5UR                  5       I S h  vN nO[        U S[         S35      I S h  vN $ U(       a  UR!                  S5      (       d8  [        R"                  " U5        U R                  [%        S	5      5      I S h  vN $ UR!                  S
5      (       aB  U S3n[&        R(                  " U5      R+                  U5        [        R"                  " U5        UnU R                  S5      I S h  vN n[-        U5      I S h  vN u  px[        R"                  " U5        U(       d=  US   S   n	U	R/                  SS5      n
UR1                  SU	S    SU
 S35      I S h  vN $ [&        R(                  " U5      nUR2                  S:w  a  UR5                  S5        [7        S5      nUR+                  US
5        U R8                  R;                  U R<                  USUS9I S h  vN   U R8                  R;                  U R<                  XS9I S h  vN   [        R"                  " U5        [        R"                  " U5        UR?                  5       I S h  vN   g  GN- GN GNi GNS GN9 GN GNy GNi GN N Nf N$7f)NRMBG_APIzMGet your API key from [here](https://www.remove.bg/) for this plugin to work.r   thumbUse `z1rmbg` as reply to a pic to remove its background.)webpjpgpngjpegcom_4r   .pngz`Sending to remove.bg`errorsr   detailrP   z**ERROR ~** `rS   z`,
`r9   RGBzult-rmbg.webpT)r   r   )r   ) r3   get_keyr-   r   r   r   r   r   pathexistsr   documentthumbsr   r,   r$   endswithr   r/   r   r   saver&   r   rq   modeconvertr+   r:   	send_filer=   r   )rI   r   r   replydlr   r   dnoutdrdezzwbns                r?   abs_rmbgr	    s     {{:&HYY[
 
 	
 %%a(..0E))++E&&	5;;>>enn33++"+55B++--BU5'!RS
 
 	
 2;;=>>
		"YYz'2333	{{6T{

2D!
		"yy12	2B $$GBIIbM]1VVHb!WWBwK=bT3
 
 	
 
CB	ww%


5

)CGGC
,,
 
 	 !    ,,
 
 
 
DDDIIcNIIcN
))+_
 ,
 6-

 4 
3$

 E s   2NM!A N5M$6BN>M'?NM*N4M-5AN	M0
A0N:M3;NM6AN)M9*BN+M<,+NM>ANN N$N'N*N-N0N3N6N9N<N>N Nztelegraph( (.*)|$)c                   #    U R                  [        S5      5      I S h  vN nU R                  R                  S5      R	                  5       =(       d    SnU R                  5       I S h  vN nU(       d  UR                  S5      I S h  vN $ UR                  (       d  UR                  (       a  UR                  nGOCUR                  5       I S h  vN n[        UR                  5      nUS:X  aC  U S3n[        R                  " U5      R                  U5        [        R                  " U5        UnOLUR                  S5      (       a6  U S3n[!        S	U S
U 35      I S h  vN   [        R                  " U5        UnSU;  aA   [#        U5      nSU S3n	[        R                  " U5        UR                  U	5      I S h  vN $ [&        R(                  " U5      R+                  5       n[        R                  " U5        [,        R.                  " X$/S9nUR                  SUS    S3SS9I S h  vN   g  GN GN GN GNn N! [$         a  n
SU
 3n	 S n
A
NS n
A
ff = f N N17f)Nr   r   Ultroidz`Reply to Message.`stickerr   animatedz.gifzlottie_convert.py 'z' r   zUploaded to [Telegraph](z) !zError : )rS   contentz"Pasted to Telegraph : [Telegraph](urlr   F)link_preview)r-   r/   r   r   r   r   r   r   r   r2   r   r   r   r   r   r   r*   ufr   pathlibPath	read_textr'   create_page)rI   r   r   r  r  getitdarr   nnamsgr   makeits               r?   telegraphcmdr    s      yyG,-	-B%%a(..0=IE))++EVV1222;;5==--**,,$)WD>DJJu""4(IIeE\\*%%WD>D,UG2dV<===IIeES &Y1"S9 IIe%%,,u%//1
		%""	BF
&&
,VE]O1=E    ? 
.+2 - >  &!!~& &s   I%H7A	I%*H:+I%
H=AI%I BI%$I%"I%I *I%I!A-I%1I#2I%:I%=I% I%I%
III%II%#I%zjson( (.*)|$)c           	        #    S nU R                   R                  S5      R                  5       nU R                  (       a%  U R	                  5       I S h  vN nU R                  nOU nU R
                  R                  nU(       a  [        X2R                  5       S   5      (       a  [        X2R                  5       S   5      n [        US5      (       a  UR                  SSS9nOA[        US5      (       a  [        UR                  5       SS9nO[        R                  " U5      n [!        U5      nO[        UR                  5       SS9nSU;   aB   [        U5      n[        UR#                  5       Vs0 s H  oTU   (       d  M  XTU   _M     snSS9n[%        U5      S	:  a  [&        R(                  " [         R+                  U5      5       nS
Ul        U R.                  R1                  U R2                  USSUS9I S h  vN   U R5                  5       I S h  vN   S S S 5        g U R7                  SU=(       d    S  S35      I S h  vN   g  GN! [         a     GN3f = fs  snf ! [         a     Nf = f Nu N_! , (       d  f       g = f NC7f)Nr   r   to_jsonF)ensure_asciiindentto_dict)r  z-ti   zjson-ult.txtT)r   allow_cacher   z```)r   r   r   r   r   r   rp   hasattrr   getattrr  r1   r   r   	stringifyr   r   keysrm   ioBytesIOencodenamer:   r   r=   r   r-   )rI   reply_to_idr   msgr   keyout_files          r?   r]   r]     s&    K%%a(..0E++--++mm&&kkmA.//c;;=+,	sI&&kkuQk?i((!#++-:((- #h#++-2u}	s#D+/99;D;Cs)3i;DQC
 3x$ZZ

3(H*HM,,((#!$ )    ,,.   )( ii#ckT]#.///O .  		 E 		
 ! )( 	0s   AJIA-J!I
 "J#)I
 JI
 #+J!I  0I	I
I  8J2I4:I0;I4I2I4*JJJ

IJIJI   
I-*J,I--J0I42I44
J>Jzsuggest( (.*)|$)c                 6  #    U R                   R                  SS9n US   nU R                  (       d  U(       d  [	        U S5      I S h  vN $ U R                  (       aX  U(       dQ  U R                  5       I S h  vN nUR                   (       a&  [        UR                   5      S:  a  UR                   nOSnU R                  (       a  U R                  OU R                  n U R                  R                  U R                  [        [        SU[        SS5      [        S	S
5      /S9S9US9I S h  vN   U R!                  5       I S h  vN   g ! [         a    S n GN:f = f GN N N5! [         a#  n[	        U SU S35      I S h  vN  s S nA$ S nAff = f NO7f)Nr   r   z6`Please reply to a message to make a suggestion poll!`#   z$Do you Agree to Replied Suggestion ?i90  Yes   1No   2)rp   questionanswers)poll)r   r   z#`Oops, you can't send polls here!

r9   )r   r   r   r   r,   r   rm   r   rp   r:   r   r=   r   r   r   r   r   )rI   sllr   r  r   r   s         r?   suggr8  ;  sm    
**

A

&C1v NNdD
 
 	
 ~~d--//::#ejj/B.::D9D(-u$$EHHHNll$$MM!'t4jt6LM  % 

 
	
 
	
 ,,.9  

 0
	
  N"Gs! LMMMMNs   FE 'F	E 
/F9E#:A&F!AE' /E%0E' 4FFFEFEF#F%E' '
F1FFF	F
FFFzipinfo( (.*)|$)c                   #    U R                   R                  5       nSn SUS    3n[        SU S3SS9I S h  vN n US   nUS	   nUS
   nUS   nUS   n US   nUS   n	[        U SR                  UUUUUUU	5      5      I S h  vN   g ! [         a    Sn Nsf = f Ne! [         a    Sn NQf = f N+! [         a2    US   S   n
US   S   nU R                  SU
 SU 3SS9I S h  vN     g f = f7f)NrP   /r   zhttps://ipinfo.ioz/geoT)re_jsonipcityregioncountrylocpostalNonetimezonez
**IP Details Fetched.**

**IP:** `{}`
**City:** `{}`
**Region:** `{}`
**Country:** `{}`
**Co-ordinates:** `{}`
**Postal Code:** `{}`
**Time Zone:** `{}`
r   rS   r   zERROR:
r_   r   r   )r   r   r   r)   KeyErrorr-   r   ro   )rI   r<  ipaddrdetr=  r>  r?  cordzipctzerrr+  s               r?   ipinforK  _  sT    				BFRUG !26($?N
NC$9Y6{Xi.5z	x=D _
 F
 	
 	
  
N  	D		
,  9'l7#'l9%ii(3%r#/ai8889s   C4B C4BC4B5 B! )B5 B3B5 C4BC4BC4!B0-B5 /B00B5 53C1(C+)C1.C40C11C4zcpy$c                    #    U R                  5       I S h  vN nU(       d   U R                  S[         S3SS9I S h  vN $ U[        S'   U R                  S[         S3SS9I S h  vN   g  NU N0 N	7f)	Nr   zcpy` as reply to a message!r   r   	CLIPBOARDzCopied. Use `zpst` to paste!
   )r   r-   r$   _copied_msg)rI   r+  s     r?   copprP    sp      '')
)CYYug-HIPQYRRR"K
))mE7.9)
CCC	 *RCs1   A2A,&A2A.(A2&A0'A2.A20A2zpst$c                 6   #    [        U 5      I S h  vN   g  N7fN
toothpasterI   s    r?   	pepsodentrV    s     
U
   c                 6   #    [        U 5      I S h  vN   g  N7frR  rS  rU  s    r?   colgaterY    s      U
rW  c                 H  #     U R                  [        S   5      I S h  vN   U R                  5       I S h  vN   g  N! [         a     [        U S[         S35      I S h  vN  s $ [
         a,  nU R                  [        U5      SS9I S h  vN  s S nA$ S nAff = f Nh7f)NrM  zNothing was copied! Use `z!cpy` as reply to a message first!r   r   )	respondrO  rD  r,   r$   r   r-   r   r   )rI   exs     r?   rT  rT    s     0mmK4555 ,,. 	6 
'w.OP
 
 
 	
  0YYs2wQY////0sk   B"? =? B"B B"? !B A#!B&B"(	B1BBBBB"BB"zthumb$c                 @  #    U R                  5       I S h  vN nU(       a  UR                  (       d  [        U [        S5      SS9I S h  vN $ UR                  R                  R
                  (       d  [        U [        S5      5      I S h  vN $ U R                  [        S5      5      I S h  vN   U R                  5       I S h  vN nUR                  SS9I S h  vN nU R                  US9I S h  vN   [        R                  " U5        g  N N N Ng NQ N< N'7f)	Nth_1r   r   th_2r   r   r   )r   )r   r   r,   r/   r   r   r-   r   r  r   r   )rI   r  xrJ   s       r?   thumb_dlra    s     ))++Eejj
6 2;;;::""
6 2333
))Jw'
(((%%''AR((A
++1+
IIaL ,;3('(s|   DD3D
DADD!D.D/DDDDD4D5DDDDDDDc                   #    SSSSSSSU /n [         R                  " U[         R                  R                  [         R                  R                  S.6I S h  vN nUR	                  5       I S h  vN u  p4[        UR                  5       R                  5       5      nU$  NG N1! [         a  n[        S	U5         S nAg S nAff = f7f)
Nffprobez-vr   z-show_entrieszformat=durationz-ofz"default=noprint_wrappers=1:nokey=1stdoutstderrzError running ffprobe:)
asynciocreate_subprocess_exec
subprocessPIPEcommunicatefloatdecoder   r   print)	file_pathcmdr[   re  rf  durationr   s          r?   get_video_durationrr    s     ,	C	55++009K9K9P9P
 
  &1133..01
 4  &*sS   CA
B$ B B$ 0B"1.B$ C B$ "B$ $
C.B?:C?CCc                   #     [         R                  " SSU SSSSU[         R                  R                  [         R                  R                  S9
I S h  vN   g  N! [         a  n[        SU 35         S nAg S nAff = f7f)	Nffmpegz-iz-ssz00:00:04z-vframes1rd  zError extracting thumbnail: )rg  rh  ri  rj  r   rn  )ro  thumbnail_pathr   s      r?   get_thumbnailrw    sy     2,,):%%**%%**
 	
 	
  2,QC0112sA   BAA AA BA 
A>&A94B9A>>Bzgetmsg( ?(.*)|$)c                 	  #    U R                   R                  S5      R                  5       nU(       d  U R                  SSS9I S h  vN   g U R                  S5      I S h  vN n[	        U5      u  p4U(       a  U(       d  U R                  S5      I S h  vN $  U R
                  R                  U5      I S h  vN nU R
                  R                  XTS9I S h  vN nU(       d  U R                  S
5      I S h  vN $  U R
                  R                  U R                  U5      I S h  vN   UR                  5       I S h  vN   g  N N N N Nt! [         a(  nU R                  SU S	35      I S h  vN  s S nA$ S nAff = f N N^ NH! [         a     Of = fUR                  (       Ga,  [        UR                  [        [         45      (       Ga  U R
                  R#                  UR$                  SU['        S5      S9I S h  vN  u  pUR(                  =(       d    Sn
/ nUR*                  (       a  [-        UR.                  5      I S h  vN  nSu  pUR$                  R0                   H2  n[        U[2        5      (       d  M  UR4                  nUR6                  n  O   UR.                  S-   n[9        UR.                  U5      I S h  vN    UR;                  [3        U(       a  [=        U5      OSUUSS95        UR?                  ['        S5      5      I S h  vN    U R
                  RA                  UR.                  USSS9I S h  vN  u  p U R
                  RC                  U R                  UU
SUR*                  (       a  SOSUR*                  (       a  WOS UR*                  (       a  UOS S9I S h  vN    O! [D         a    [G        U
5      [H        :  a  U
S [H         S-   n
U R
                  RC                  U R                  UU
SUR*                  (       a  SOSUR*                  (       a  WOS UR*                  (       a  UOS S9I S h  vN     Of = fUR*                  (       a:  [J        RL                  RO                  W5      (       a  [J        RP                  " U5        UR                  5       I S h  vN    g U R                  S5      I S h  vN    g U R                  S5      I S h  vN    g 7f)Nr   z`Please provide a link!`r   r   z`Loading...`zInvalid link!
Examples:
`https://t.me/TeamUltroid/3`
`https://t.me/c/1313492028/3`
`tg://openmessage?user_id=1234567890&message_id=1`)idsz**ERROR**
`r9   z%`Message not found or may not exist.`Tcom_5)show_progressrI   r   rP   )r   r   z
_thumb.jpgr   )rq  whsupports_streamingcom_6)rI   r{  	to_deleteF)r   r   r~  r   
attributesz...z$`Cannot process this type of media.`z `No media found in the message.`))r   r   r   r-   r   r:   get_input_entityget_messagesro   r   r=   
try_deleter
   r   rc   r   r    fast_downloaderr   r/   r   videorr  r)  r  r!   r|  r}  rw  appendintrq   fast_uploaderr   r   rm   CAPTION_LIMITr   r   r   r   )rI   r   r   chatr+  input_entityr   r   
media_pathr]   r   r  rq  widthheight	attribute
thumb_paths                    r?   get_restricted_msgr    s	    %%a(..0Eii2i;;;yy(	(B"5)IDSYYA
 
 	
5"\\::4@@11,1HH YYFGGGll''w???mmo3 	< 
)
 AH 5YYbT344445 H 	@&  }}}gmm&79M%NOO"',,">">w?O?O_ckm  xB  CJ  xK">  #L  L  LMJll(bGJ}}!3JOO!DDD $!(!1!1!<!<I!)-CDD )!*	 "= (__|;
#JOOZ@@@!!*2:X +/	 ''*W-..."',,"<"<Z__TVfjvz"<"{{{MJll,,MM##(/6}}t%(/*4-4]]z -    ' w<-/%n}5=Gll,,MM##(/6}}t%(/*4-4]]z -    }}
!;!;		*%--/!!))BCCCii:;;;s  AS4ES4 E!3S4E
S4E 8E9 E EE S49F:S4?)F (F)F  F	F S4S4
S4E E 
FE=2E53E=7F8S4=FS4F 	F 
FS4FA-S4HAS4I5S4AS4KAS4L.S4
MS4A%N? 8N;9N? >S4?BQQQS4QA!S47R:8S4SS4-S0.S4)`__doc__rg  rH   r   r&  r   r  r`   r   rC   PILr   ImportErrorpyUltroid._misc._assistantr   pyUltroid.dB.gban_mute_dbr   pyUltroid.fns.toolsr   rP   r	   r  telethon.errors.rpcerrorlistr
   r   telethon.errorsr   telethon.eventsr   telethon.tl.customr   telethon.tl.functions.channelsr   r   r   telethon.tl.functions.contactsr   telethon.tl.functions.messagesr   r   telethon.tl.functions.usersr   telethon.tl.typesr   r   r   r   r   r   r   r   r   r   r    r!   telethon.utilsr"   pyUltroid.fns.infor#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   TMP_DOWNLOAD_DIRECTORYr  rO  r@   rN   r]   Eventr   r	  r  r8  rK  rP  rV  rY  rT  ra  rr  rw  r       r?   <module>r     s  +Z    	 	   # 0 0 2  R / & % 
 = T :    ' ,    . 0  Y.7 /7
 %%    KKK\ %ttD)" E)"X ^	^B &	&D 22j  ""J _%+0 &+0\ '6  7 F &',9 (,9^ DD 
&  
 X
 
,2 '(\< )\<O  Es   F< <GG