
    i                     T    S SK r S SKJrJr  S SKrS SKJrJr  S SKJr   " S S5      r	g)    N)OptionalUnion)rawutils)PeerIdInvalidc                   :    \ rS rSrSSS\\\4   S\S   4S jrSr	g	)
ResolvePeer   selfzpyrogram.Clientpeer_idreturnzraw.base.InputPeerc                 B
  #    U R                   (       d  [        S5      eUc  gUS;   a  [        R                  R	                  5       $ US:X  a  [        R                  R                  5       $ [        U[        5      (       a$   U R                  R                  U5      I Sh  vN $ [        U[4        5      (       Ga7  [6        R8                  " SSU5      nUR;                  5       (       a$   U R                  R=                  U5      I Sh  vN $ SnSnU RF                  RI                  URK                  5       5      nU(       a0   [        RL                  " [        URO                  S5      5      5      nO&[6        R8                  " SSURK                  5       5      nU(       a$   U R                  R                  U5      I Sh  vN $ U(       a$   U R                  RS                  U5      I Sh  vN $ [2        e[2        e GNX! [         Ga    [        R                  " U5      nUS:X  a  U R                  U R                  [        R                  R                   R#                  [        R                  R%                  [        R&                  " U5      SS9/S95      I Sh  vN  5      I Sh  vN    OUS	:X  aU  U R                  [        R                  R(                  R+                  [        R&                  " U5      /S95      I Sh  vN    OpU R                  [        R                  R,                  R/                  [        R                  R1                  [        R&                  " U5      SS
9/S95      I Sh  vN     U R                  R                  U5      I Sh  vN  s $ ! [         a  n[2        UeSnAff = ff = f GN! [         a    U R                  [        R                  R>                  RA                  US95      I Sh  vN  nU R                  R                  [        RB                  " URD                  5      5      I Sh  vN  s $ f = f! [P         a    URO                  S5      n GNf = f GN! [         a  n[2        UeSnAff = f GN! [         a    U R                  [        R                  R>                  RU                  US95      I Sh  vN  nU R                  R                  [        RB                  " URD                  5      5      I Sh  vN  s $ f = f7f)a  Get the InputPeer of a known peer id. Useful whenever an InputPeer type is required.

.. note::

    This is a utility method intended to be used **only** when working with raw
    :obj:`functions <pyrogram.api.functions>` (i.e: a Telegram API method you wish to use which is not
    available yet in the Client class as an easy-to-use method).

.. include:: /_includes/usable-by/users-bots.rst

Parameters:
    peer_id (``int`` | ``str``):
        The peer id you want to extract the InputPeer from.
        Can be a direct id (int), a username (str), a link (str) or a phone number (str).

Returns:
    :obj:`~pyrogram.raw.base.InputPeer`: On success, the resolved peer id is returned in form of an InputPeer object.

Raises:
    KeyError: In case the peer doesn't exist in the internal database.
zClient has not been started yetN)r   meemptyuserr   )user_idaccess_hash)idchat)
channel_idr   z[+()\s-] )phone   z[@+\s])username)+is_connectedConnectionErrorr   typesInputPeerSelfInputPeerEmpty
isinstanceintstorageget_peer_by_idKeyErrorr   get_peer_typefetch_peersinvoke	functionsusersGetUsers	InputUserget_raw_peer_idmessagesGetChatschannelsGetChannelsInputChannelr   strresubisdigitget_peer_by_phone_numbercontactsResolvePhoneget_peer_idpeerCHANNEL_MESSAGE_LINK_REmatchlowerget_channel_idgroup
ValueErrorget_peer_by_usernameResolveUsername)	r   r   	peer_typeer   rr   r   r<   s	            S/app/mltbenv/lib/python3.13/site-packages/pyrogram/methods/advanced/resolve_peer.pyresolve_peerResolvePeer.resolve_peer   sK    2   !"CDD?n$99**,,g99++--gs##'/!\\88AAAN %%FF;G4E}}	X!%!F!Fu!MMM  !
44::7==?K2%*%9%9#ekk!n:M%N
  "vviW]]_EH3%)\\%@%@%LLL 	\%)\\%F%Fx%PPP ('m B %/!//8	&**"kkMM//88$'II$7$7050E0Eg0N45 %8 %&$" 9 	 	 	   &(++..77 % 5 5g >? 8    ++..:: #		 6 6/4/D/DW/M01 !7 !"  ; 	 	 	/!%!<!<W!EEEE /'Q./I%/V N X"kk..;;"' <   A "&!<!<U=N=Nqvv=V!WWWWX" & 2#(;;q>2  M# 3+23  Q# \"&++MM22BB)1 C #   &*\\%@%@ARARSTSYSYAZ%[[[[\s  A>TG: G7 G: #AT(N< N9N< 
5T .Q ..TQ2 ;Q/<Q2 ?TR &R'R *T7G: :BN6J
N6#J&$AN6>L?A0N6/M20N66NNNN6T
N2&N--N22N66T9N< <AQ
?P AQ
QQ
T	Q

TQ,(T+Q,,T/Q2 2
R<RRTR ATSATTTTTT N)
__name__
__module____qualname____firstlineno__r   r!   r2   r   rG   __static_attributes__rI       rF   r	   r	      s3    } } sCx}  
&	'} rO   r	   )
r3   typingr   r   pyrogramr   r   pyrogram.errorsr   r	   rI   rO   rF   <module>rS      s"   & 
 "   )~  ~ rO   