
    i              	       ,   d Z ddlZddlmZmZ ddlmZmZ ddddddd	d
Z	dgZ
dZdZdZdZdedeeej"                  f   deeej"                  f   fdZdefdZdeeej"                  f   dedz  fdZdeeej"                  f   dededz  dee   fdZy)zSensCritique (movies)    N)dumpsloads)EngineResults
MainResultzhttps://www.senscritique.com/	Q16676060FJSONfr)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresultslanguagemoviesT   z https://apollo.senscritique.com/ac  query SearchProductExplorer($query: String, $offset: Int, $limit: Int,
                    $sortBy: SearchProductExplorerSort) {
  searchProductExplorer(
    query: $query
    filters: []
    sortBy: $sortBy
    offset: $offset
    limit: $limit
  ) {
    items {
      category
      dateRelease
      duration
      id
      originalTitle
      rating
      title
      url
      yearOfProduction
      medias {
        picture
      }
      countries {
        name
      }
      genresInfos {
        label
      }
      directors {
        name
      }
      stats {
        ratingCount
      }
    }
  }
}queryparamsreturnc                     |d   dz
  t         z  }d|t         | ddt        d}t        |d<   d|d	<   d
|d   d<   t        |      |d<   |S )Npageno   SearchProductExplorer	RELEVANCE)offsetlimitr   sortBy)operationName	variablesr   urlPOSTmethodzapplication/jsonheaderszContent-Typedata)	page_sizegraphql_querygraphql_urlr   )r   r   r   r$   s       +/root/searxng/searx/engines/senscritique.pyrequestr)   ?   sh    X"i/F 1 &UVabD  F5MF8(:F9n%4[F6NM    c                     t               }t        | j                        }|j                  di       j                  di       j                  dg       }|s|S |D ]"  }t	        |      }|s|j                  |       $ |S )Nr$   searchProductExploreritems)result)r   r   textget
parse_itemadd)respresresponse_datar-   itemr.   s         r(   responser7   P   s    
/C$))$Mfb)--.ErJNNwXZ[E
 D!v	 Jr*   r6   c                 L   | j                  dd      }|sy| j                  d      }| j                  d      }d}| j                  di       r| d   j                  d      r| d   d   }t        | ||      }d| d	    }t        |||rd
| dndz   dj                  |      |      S )z6Parse a single item from the SensCritique API responsetitle NyearOfProductionoriginalTitlemediaspicturezhttps://www.senscritique.comr    z ()z | )r    r9   content	thumbnail)r0   build_content_partsr   join)r6   r9   yearoriginal_titlerA   content_partsr    s          r(   r1   r1   a   s    HHWb!E88&'DXXo.NIxx"$x."4"4Y"?N9-	'e^DM(e
6CtD6|4

=)	 r*   r9   rE   c                 j   g }| j                  d      r|j                  | d          |r||k7  r|j                  d|        | j                  d      r8| d   D cg c]  }|d   	 }}|j                  ddj                  |              | j                  d      r8| d   D cg c]  }|d   	 }}|j                  ddj                  |              | j                  d	      r8| d	   D cg c]  }|d
   	 }	}|j                  ddj                  |	              | j                  d      r"| d   dz  }
|
dkD  r|j                  d|
 d       | j                  d      rB| j                  di       j                  d      r!|j                  d| d    d| d   d    d       |S c c}w c c}w c c}w )z#Build the content parts for an itemcategoryzOriginal title: 	directorsnamezDirector(s): z, 	countriesz	Country: genresInfoslabelz
Genre(s): duration<   r   z
Duration: z minratingstatsratingCountzRating: z/10 (z votes))r0   appendrC   )r6   r9   rE   rF   directorrI   countryrK   genregenresminutess              r(   rB   rB   x   s   Mxx
T*-..E1//?@Axx6:;6GH(Xf%H	H}TYYy-A,BCDxx484EFWV_F	Fy9)=(>?@xx.2=.ABU%.BBz$))F*;)<=>xx
z"b(Q;  :gYd!;<xxdhhw377FxX'7uT']==Y<ZZabc' I G Cs   F&$F+-F0)__doc__typingtjsonr   r   searx.result_typesr   r   about
categoriespagingr%   r'   r&   strdictAnyr)   r7   r1   listrB    r*   r(   <module>rf      s       8 /"&	 Z
		0$N3 S!%%Z 0 T#quu*5E "m "T#quu*% *t*; .d3:. s CRVJ [_`c[d r*   