
    i
                         d Z ddlmZ ddlmZ dddddd	d
ZddgZdZdZdZedz   Z	dZ
d Zd Zd Zd ZeeeedZd Zy)Genius    )	urlencode)datetimezhttps://genius.com/Q3419343zhttps://docs.genius.com/TFJSON)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresultsmusiclyrics   zhttps://genius.com/api/z9search/{index}?{query}&page={pageno}&per_page={page_size}z/https://genius.com{api_path}/apple_music_playerc                 b    t         j                  t        d| i      dt        |d         |d<   |S )Nqmultipageno)queryindex	page_sizer   url)
search_urlformatr   r   )r   paramss     %/root/searxng/searx/engines/genius.pyrequestr      s<    %%e%h	 & F5M M    c                 J   d}| d   }|r| d   d   d   }n| d   j                  dd      }| d   d   }| d   d   | d   d	   || d   d
   d}|r&|j                  dt        j                  |      i       | d   j                  d      }|rt        j                  |      |d<   |S )N 
highlightsr   valueresulttitle_with_featuredlyrics_updated_atr   
full_titlesong_art_image_thumbnail_urlr   titlecontent	thumbnailpublishedDateapi_path)r-   
iframe_src)getupdater   fromtimestampmusic_playerr   )hitr*   r!   	timestampr#   r-   s         r   parse_lyricr5   &   s    G\"Jl#A&w/h-##$92>H12I8}U#X|,]#AB	F (>(>y(IJK8}  ,H  ,22H2E|Mr   c                 8    | d   d   | d   d   d| d   d   d}|S )Nr#   r   namer    	image_urlr(    )r3   r#   s     r   parse_artistr:   @   s7    8}U#Xv&];/	F Mr   c                     | d   }|j                  d|j                  dd            }|j                  d      }|r|j                  d      }|r|d|}|d   |d	   |d
   |j                         dS )Nr#   name_with_artistr7   r    release_date_componentsyearz / r   r&   cover_art_url)r   r)   r+   r*   )r/   strip)r3   resr*   xs       r   parse_albumrC   J   s}    
h-Cgg(#''&"*=>G)*AEE&M#$g.G5z\")==?	 r   )lyricsongartistalbumc                     g }| j                         d   d   D ]>  }|d   D ]4  }t        j                  |d         }|s|j                   ||             6 @ |S )Nresponsesectionshitstype)jsonparser/   append)respr   sectionr3   funcs        r   rI   rI   ]   se    G99;z*:6 *6? 	*C99S[)DtCy)	**
 Nr   N)__doc__urllib.parser   r   about
categoriespagingr   r   r   r2   r   r5   r:   rC   rN   rI   r9   r   r   <module>rX      s     "  %"<	 x 
		NN
@4  {lU`ar   