
    KJi	                     B    d Z ddlZddlZ ej        d          ZddZdS )zYParse and select specific information from
JSON data using a subset of Jq-like selectors.    Nz(?:\.([a-zA-Z0-9_]+)|\[(\d*)\])c                 z   t          | t                    r(	 t          j        |           }n# t          $ r |cY S w xY w| }|                                }|dk    r|S |                    d          st          d          t          	                    |          }|st          d          fd ||          S )a0  
    Extract information from a JSON string using a subset of Jq-like selectors.
    Supported selectors:
      - .key
      - .key1.key2
      - .key[]
      - .key[N]
      - .key1.key2[]
      - .key1.key2[N]
      - .[N] (select N-th element from root array)
      - . (returns the whole object)
    .zSelector must start with '.'zInvalid selector syntaxc                 j   s| S d         \  }}|r0t          | t                    r|| vrd S | |         }t                    dk    rd         d         dk    rwd         d         dk    ret          d         d                   }t          |t                    r|dk     s|t          |          k    rd S  ||         dd                    S t                    dk    rJd         d         dk    r8d         d         dk    r&t          |t                    sd S fd|D             S  |dd                    S t          | t                    sd S |dk    rfd| D             S t          |          }|dk     s|t          |           k    rd S  | |         dd                    S )Nr          c                 8    g | ]} |d d                   S )r   N .0item_extractpartss     U/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/imdb/parser/http/jsel.py
<listcomp>z,select.<locals>._extract.<locals>.<listcomp>;   s-    DDDduQRRy11DDD    c                 8    g | ]} |d d                   S )r   Nr
   r   s     r   r   z,select.<locals>._extract.<locals>.<listcomp>B   s-    BBBduQRRy11BBBr   )
isinstancedictlenintlist)objr   keyidx_strvalueidxr   s    `    r   r   zselect.<locals>._extract*   s    	JQxW 	1c4(( CsNNtHE5zzA~~%(1+"3"3ar8I8I%(1+&&!%..  #''SCJJ=N=N4xc
E!""I666UaE!HQK2$5$5%(1+:K:K!%..  4DDDDDeDDDDxuQRRy111c4(( t"}}BBBBBcBBBBg,,CQww#S//t8CHeABBi000r   )
r   strjsonloads	Exceptionstrip
startswith
ValueError_re_selectorfindall)jobjselectordefaultdatar   r   s        @r   selectr+      s     $ 	:d##DD 	 	 	NNN	 ~~H3s## 97888  **E 423331 1 1 1 1: 8D%   s   - <<)N)__doc__r   recompiler%   r+   r
   r   r   <module>r/      sU   2 2  				 rz<==<! <! <! <! <! <!r   