ó
    d£?i‚  ã                   ó´   • S r SSKJrJ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JrJrJrJr  SS
KJr  SSKJr  SSKJrJrJrJrJr   " S S5      rg)zD
Main API client handler for fetching data from the IPinfo service.
é    )ÚIPv4AddressÚIPv6AddressNé   )ÚAPIError)ÚDefaultCache)ÚDetails)ÚRequestQuotaExceededError)ÚLITE_API_URLÚCACHE_MAXSIZEÚ	CACHE_TTLÚREQUEST_TIMEOUT_DEFAULTÚ	cache_key)Úhandler_utils)Úis_bogon)Ú
continentsÚ	countriesÚcountries_currenciesÚeu_countriesÚcountries_flagsc                   ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚHandlerLiteé   zx
Allows client to request data for specified IP address using the Lite API.
Instantiates and maintains access to cache.
Nc                 ó²  • Xl         UR                  S5      =(       d    [        U l        UR                  S5      =(       d    [        U l        UR                  S5      =(       d    [        U l        UR                  S5      =(       d    [
        U l        UR                  S5      =(       d    [        U l        UR                  S0 5      U l        SU R                  ;  a  [        U R                  S'   SU;   a  US   U l	        O@UR                  S	0 5      nS
U;  a	  [        US
'   SU;  a	  [        US'   [        S0 UD6U l	        UR                  SS5      U l        g)zQ
Initialize the Handler object with country name list and the
cache initialized.
r   r   r   r   Ú	continentÚrequest_optionsÚtimeoutÚcacheÚcache_optionsÚmaxsizeÚttlÚheadersN© )Úaccess_tokenÚgetr   r   r   r   r   r   r   r   r   r   r   r!   )Úselfr#   Úkwargsr   s       ÚW/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/ipinfo/handler_lite.pyÚ__init__ÚHandlerLite.__init__%   s&  € ð
 )Ôð  Ÿ™ KÓ0×=´IˆŒð #ŸJ™J ~Ó6×F¼,ˆÔð  &Ÿz™zÐ*;Ó<×OÄˆÔð J‰JÐ-Ó.×FÔ2Fð 	Ô!ð
 !Ÿ*™* [Ó1×?´ZˆŒð  &Ÿz™zÐ*;¸RÓ@ˆÔØ˜D×0Ñ0Ó0Ü.EˆD× Ñ  Ñ+ð fÓØ ™ˆDJà"ŸJ™J ¸Ó;ˆMØ Ó-Ü+8˜iÑ(Ø˜MÓ)Ü'0˜eÑ$Ü%Ñ6¨Ñ6ˆDŒJð —z‘z )¨TÓ2ˆó    c                 ó  • [        U[        5      (       d  [        U[        5      (       a  UR                  nU(       a&  [	        U5      (       a  0 nXS'   SUS'   [        U5      $  U R                  [        U5         n[        U5      $ ! [         a     Of = f0 U R                  EnUb  X%S'   U(       a  [         SU 3O[         S3n[        R                  " U R                  U R                  5      n[        R                   " U4SU0UD6nUR"                  S:X  a
  [%        5       eUR"                  S	:¼  aW  UR"                  n	UR                  R!                  S
5      n
U
S:X  a  UR'                  5       nOSUR(                  0n[+        X›5      eUR'                  5       n[        R,                  " UU R.                  U R0                  U R2                  U R4                  U R6                  5        X0R                  [        U5      '   [        U5      $ )z›
Get details for specified IP address as a Details object.

If `timeout` is not `None`, it will override the client-level timeout
just for this operation.
ÚipTÚbogonr   Ú/z/mer!   i­  i  zContent-Typezapplication/jsonÚerror)Ú
isinstancer   r   Úexplodedr   r   r   r   ÚKeyErrorr   r
   r   Úget_headersr#   r!   Úrequestsr$   Ústatus_coder	   ÚjsonÚtextr   Úformat_detailsr   r   r   r   r   )r%   Ú
ip_addressr   ÚdetailsÚcached_ipaddrÚreq_optsÚurlr!   ÚresponseÚ
error_codeÚcontent_typeÚerror_responses               r'   Ú
getDetailsÚHandlerLite.getDetailsP   s×  € ô j¤+×.Ñ.´*¸ZÌ×2UÑ2UØ#×,Ñ,ˆJö œ( :×.Ñ.ØˆGØ&D‰MØ#ˆGGÑÜ˜7Ó#Ð#ð	Ø ŸJ™J¤y°Ó'<Ñ=ˆMÜ˜=Ó)Ð)øÜó 	Ùð	úð ,d×*Ñ*Ð+ˆØÑØ")YÑö 1;”˜a 
˜|Ñ,Ä<À.ÐPSÐ@TˆÜ×+Ò+¨D×,=Ñ,=¸t¿|¹|ÓLˆÜ—<’< ÑA¨WÐA¸ÑAˆØ×Ñ 3Ó&Ü+Ó-Ð-Ø×Ñ 3Ó&Ø!×-Ñ-ˆJØ#×+Ñ+×/Ñ/°Ó?ˆLØÐ1Ó1Ø!)§¡£‘à")¨8¯=©=Ð!9Ü˜:Ó6Ð6Ø—-‘-“/ˆô 	×$Ò$ØØN‰NØ×ÑØ× Ñ Ø×%Ñ%ØO‰Oô	
ð -4
‰
”9˜ZÓ(Ñ)äwÓÐs   Á%"B Â
BÂB)	r#   r   r   r   r   r   r   r!   r   )N)NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r(   rB   Ú__static_attributes__r"   r*   r'   r   r      s   † ñô
)3÷V; r*   r   )rH   Ú	ipaddressr   r   r4   r/   r   Úcache.defaultr   r:   r   Ú
exceptionsr	   r   r
   r   r   r   r   Ú r-   r   Údatar   r   r   r   r   r   r"   r*   r'   Ú<module>rO      sF   ðñ÷ /ã å Ý 'Ý Ý 1÷õ õ Ý ÷õ ÷l ò l r*   