
    hj'                        S r SSKrSSKr \R                  " 5       rSSKJr  \b  \R                  " \5        SSK	J
r
JrJrJrJr  SqSrS r\" SS	9S
 5       r\" SS	9S 5       r\" SS	9S 5       r\" SS	9S 5       rg! \ a    Sr Nkf = f)u)  
✘ Commands Available -

• `{i}tw <tweet text>`
    Tweet the text.

• `{i}twr <tweet id/link>`
    Get tweet details with reply/quote/comment count.

• `{i}twuser <username>`
    Get user details of the Twitter account.

• `{i}twl <tweet link>`
    Upload the tweet media to telegram.

    N)Client   )LOGSeor
get_stringudBultroid_cmdz#resources/auth/twitter_cookies.jsonc                    #    [         (       a  [         $ [        S S5       5      (       d  [        S5      e[        R                  " [        R
                  R                  [        5      SS9  [        5       n U R                  [        R                  " S5      [        R                  " S5      [        R                  " S5      [        S	9I S h  vN   U q U $  N7f)
Nc              3   N   #    U  H  n[         R                  " U5      v   M     g 7f)N)r   get_key).0keys     $/root/TeamUltroid/plugins/twitter.py	<genexpr>get_client.<locals>.<genexpr>7   s     e+dCs{{3+ds   #%)TWITTER_USERNAMETWITTER_EMAILTWITTER_PASSWORDzGSet TWITTER_USERNAME, TWITTER_EMAIL and TWITTER_PASSWORD in vars first!T)exist_okr   r   r   )auth_info_1auth_info_2passwordcookies_file)twitter_clientall	ExceptionosmakedirspathdirnameCOOKIES_FILEr   loginr   r   )clients    r   
get_clientr$   2   s     ~e+deeeabb KK-=XF
,,KK 23KK0/0!	     NMs   CC
C	Cztw( (.*)|$))patternc                 .  #    U R                   R                  S5      R                  5       nU(       d  U R                  S5      I Sh  vN $ U R                  S5      I Sh  vN n [	        5       I Sh  vN nUR                  US9I Sh  vN nUR                  SUR                  R                   SUR                   35      I Sh  vN   g N Nn N] NH N! [         a1  nUR                  S[        U5       S	35      I Sh  vN     SnAgSnAff = f7f)
zPost a tweetr   u   🚫 `Give some text to tweet!`Nu   🕊 `Tweeting...`)textu1   ✨ **Successfully Posted!**

🔗 https://x.com/z/status/   ❌ **Error:**
``)pattern_matchgroupstripr   r$   create_tweetedituserscreen_nameidr   str)eventr'   msgr#   tweetes         r   	tweet_cmdr7   I   s      $$Q'--/DYY@AAA		./
/C6!|#))t)44hhLUZZMcMcLddlmrmumulvwxxx B
/#4x 6hh*3q6(!45556s   ADCD C!D&C 3C4C 
C<C CC DDC C C 
D!!DDDDDDztwdetail( (.*)|$)c                   #    U R                   R                  S5      R                  5       nU(       d  U R                  S5      I Sh  vN $ U R                  S5      I Sh  vN n [	        5       I Sh  vN nSSKJn  U" U5      nUR                  S;   a1  UR                  R                  S5      S	   R                  S
5      S   nOUnUR                  U5      I Sh  vN nSnUSUR                   S3-  n[        US5      (       at  USUR                  R                   S3-  nUSUR                  R                   S3-  nUSUR                  R                    S3-  nUSUR                  R"                   S3-  nUR%                  U5      I Sh  vN   g GNO GN9 GN) N N! [&         a1  n	UR%                  S[)        U	5       S35      I Sh  vN     Sn	A	gSn	A	ff = f7f)zGet tweet detailsr   u)   🚫 `Give tweet ID/link to get details!`Nu   🔍 `Getting tweet details...`r   )urlparse)twitter.comx.com/?u   🐦 **Tweet Details**

u   📝 **Content:** ``

metricsu   ❤️ **Likes:** ``
u   🔄 **Retweets:** `u   💬 **Replies:** `u   👁 **Views:** `r(   r)   )r*   r+   r,   r   r$   urllib.parser9   hostnamer   splitget_tweet_by_idr'   hasattrr@   likesretweetsrepliesviewsr.   r   r2   )
r3   matchr4   r#   r9   
parsed_urltweet_idr5   r'   r6   s
             r   twitter_detailsrN   Y   s     %%a(..0EYYJKKK		;<
<C6!|#)e_
"::!,,S1"5;;C@CHH,,X66+%ejj\775)$$)%--*=*=)>cBBD*5==+A+A*B#FFD)%--*?*?)@DDD'(;(;'<C@@Dhhtn+ L
<# 7 	 6hh*3q6(!45556s   AG!FG! F!G!&F# 3F4A)F# FB2F# F!F# G!G!F# F# !F# #
G-!GGGG!GG!ztwuser( (.*)|$)c                 (  #    U R                   R                  S5      R                  5       nU(       d  U R                  S5      I Sh  vN $ U R                  S5      I Sh  vN n [	        5       I Sh  vN nUR                  U5      I Sh  vN nSnUSUR                   S3-  nUSUR                   S3-  nUS	UR                   S
3-  nUSUR                   S3-  nUSUR                   S3-  nUSUR                   S3-  nUSUR                  =(       d    S S3-  nUSUR                   S3-  nUR                  (       ac  UR                  R                  SS5      nU R                   R#                  U R$                  UUSS9I Sh  vN   UR'                  5       I Sh  vN   gUR)                  U5      I Sh  vN   g GN{ GNe GNU GN? NC N- N! [*         a1  nUR)                  S[-        U5       S35      I Sh  vN     SnAgSnAff = f7f)zGet user detailsr   u$   🚫 `Give username to get details!`Nu   🔍 `Getting user details...`u   👤 **Twitter User Details**

u   📛 **Name:** `rA   u   🔖 **Username:** `@u   📝 **Bio:** `r?   u   👥 **Followers:** `u   👣 **Following:** `u   🐦 **Total Tweets:** `u   📍 **Location:** `zNot Setu   ✅ **Verified:** `z_normal..F)filecaptionforce_documentr(   r)   )r*   r+   r,   r   r$   get_user_by_screen_namenamer0   descriptionfollowers_countfollowing_countstatuses_countlocationverifiedprofile_image_urlreplacer#   	send_filechat_iddeleter.   r   r2   )r3   rK   r4   r#   r/   r'   	image_urlr6   s           r   twitter_userrb   x   s     %%a(..0EYYEFFF		:;
;C6!|#33E::2"499+S11'(8(8'9==/$"2"2!3599'(<(<'=SAA'(<(<'=SAA*4+>+>*?sCC&t}}'A	&B#FF%dmm_C88!!..66z3GI,,(($	 )    **,((4.  5 G
;#:   6hh*3q6(!45556s   AHGH G!H&G 3G4G GC=G 
GG "G#G 'H(G <G=G HHG G G G G 
H!H
?H H
H
HHztwl( (.*)|$)c                 F  #    U R                   R                  S5      R                  5       nU(       d  U R                  S5      I Sh  vN $ U R                  S5      I Sh  vN n [	        5       I Sh  vN nSU;   d  SU;   a'  UR                  S5      S   R                  S	5      S
   nOUnUR                  U5      I Sh  vN n[        US5      (       d  UR                  S5      I Sh  vN $ SUR                  R                   S3nXeR                   S3-  n[        US5      (       aK  USUR                  R                   SUR                  R                   SUR                  R                   S3-  nS
nUR                    GHd  nUR"                  S:X  aF  U R$                  R'                  U R(                  UR*                  US
:X  a  UOSS9I Sh  vN   US-  nMZ  UR"                  S:X  d  Ml  [        US5      (       d  M  [-        UR.                  [0        5      (       d  M  UR.                  R3                  S/ 5      n	U	V
s/ s H$  n
U
R3                  S5      S:X  d  M  SU
;   d  M"  U
PM&     nn
U(       d  M  [5        US S9nUS
:X  a  UOSnU(       a  US US   S!-  S" S#3-  nOS$US   S!-  S" S#3nU R$                  R'                  U R(                  US%   US9I Sh  vN   US-  nGMg     US
:  a6  UR                  S&U S'35      I Sh  vN   UR7                  5       I Sh  vN   gUR                  S(5      I Sh  vN   g GN GN GN GN GNe GNs  sn
f  N{ NP N: N"! [8         a1  nUR                  S)[;        U5       S35      I Sh  vN     SnAgSnAff = f7f)*zDownload tweet mediar   u)   🚫 `Give tweet link to download media!`Nu   📥 `Downloading media...`r:   r;   r<   r=   r>   r   mediau   😕 `No media found in tweet!`u   🐦 **Tweet by @z**

z

r@   u   ❤️ `u   ` 🔄 `u   ` 💬 `r)   photo)rR   video
video_infovariantscontent_typez	video/mp4bitratec                     U S   $ )Nrj    )xs    r   <lambda>twitter_media.<locals>.<lambda>   s    Qy\    )r    u   
🎥 Video Quality: i  z.0fkbpsu   🎥 Video Quality: urlu   ✅ Successfully downloaded z media items!u$   😕 `No media could be downloaded!`r(   )r*   r+   r,   r   r$   rD   rE   rF   r.   r/   r0   r'   r@   rG   rH   rI   rd   typer#   r^   r_   rs   
isinstancerg   dictgetmaxr`   r   r2   )r3   rK   r4   r#   rM   r5   rR   media_countrd   rh   vmp4_variants
best_videovideo_captionr6   s                  r   twitter_mediar~      s~     %%a(..0EYYJKKK		78
8C76!|#E!W%5{{3'+11#6q9HH,,X66ug&&"CDDD &ejj&<&<%=VDjj\&&5)$$%--"5"5!6hu}}?U?U>VV^_d_l_l_t_t^uuvwwG[[EzzW$ll,,MMII'2a'7GT -   
 q w&5,//Ju?O?OQU4V4V$//33JCH#+$#+a550K? DMQRN 8 ! $ $|%(;Q%R
3>!3C()/EjQZF[\`F`adEeei-jjM.B:iCXY]C]^aBbbf,gM#ll44!MM&u-$1 5   
 $q(9 !< ?((9+mTUUU**,((ABBBq L
8# 7 E$ VB 6hh*3q6(!45556s5  AN!MN! M!N!&M# 3M
4AM# M)M# +M,M# /N!0C#M# MM# 1M# M# %M# M!M)M/M# :A%M# M ,M# MM# $M%M# )N!*M# >M!?M# N!N!
M# M# M# M# M# M# M# !M# #
N-!NNNN!NN!)__doc__asyncior   get_event_loop_current_loopRuntimeErrortwikitr   set_event_looprq   r   r   r   r   r	   r   r!   r$   r7   rN   rb   r~   rl   rp   r   <module>r      s   "  	**,M 
 =) 5 5  5. ]#6 $6 ()6 *6< &'!6 (!6H ^$>6 %>6A  Ms   A> >B	B	