
     i                        d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ e G d
 d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Ze G d d                      Z G d d          Ze G d d                      Ze G d d                      Ze G d  d!                      Ze G d" d#                      Ze G d$ d%                      Ze G d& d'                      Ze G d( d)                      Ze G d* d+                      Ze G d, d-                      Ze G d. d/                      Zd0S )1    )	dataclass)field)List)Optional)Union)	urlencode)urlparse)
urlunparse)UUIDc                   V    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   dS )	
ShareModelsubjecttexthrefimagetwitterhtmlsnapchatN__name__
__module____qualname__str__annotations__     _/root/.openclaw/workspace/.venvs/songid/lib/python3.11/site-packages/shazamio/schemas/models.pyr   r      sO         LLL
III
IIIJJJLLL
IIIMMMMMr   r   c                   8    e Zd ZU eed<   eed<   eed<   eed<   dS )ActionModelnametypeshareuriN)r   r   r   r   r   r   r   r   r   r   r      s7         
III
III	HHHHHr   r   c                   $    e Zd ZU eed<   eed<   dS )SongMetaPagesr   captionNr   r   r   r   r%   r%      s"         JJJLLLLLr   r%   c                   $    e Zd ZU eed<   eed<   dS )SongMetadatatitler   Nr   r   r   r   r(   r(   %   s"         JJJ
IIIIIr   r(   c                   P    e Zd ZU eed<   ee         ed<   eed<   ee         ed<   dS )SongSectionr!   
meta_pagestab_namemetadataN)r   r   r   r   r   r   r%   r(   r   r   r   r+   r+   +   sF         
III]####MMM<      r   r+   c                   $    e Zd ZU eed<   eed<   dS )BaseIdTypeModelr!   idNr   r   r   r   r0   r0   3   s"         
IIIGGGGGr   r0   c                       e Zd ZU eed<   dS )TopTracksModelurlNr   r   r   r   r3   r3   9   s         	HHHHHr   r3   c                   b    e Zd ZU eed<   eed<   eed<   eed<   ee         ed<   eed<   eed<   dS )	ArtistSectionr!   r1   r    verifiedactionsr-   
top_tracksN)	r   r   r   r   r   boolr   r0   r3   r   r   r   r6   r6   >   s\         
IIIGGG
IIINNN/""""MMMr   r6   c                   .    e Zd ZU eed<   eed<   eed<   dS )BeaconDataLyricsSection	lyrics_idprovider_namecommon_track_idNr   r   r   r   r<   r<   I   s3         NNNr   r<   c                   Z    e Zd ZU eed<   ee         ed<   eed<   eed<   ee         ed<   dS )LyricsSectionr!   r   footerr-   beacon_dataN)r   r   r   r   r   r   r   r<   r   r   r   rA   rA   O   sL         
III
s)OOOKKKMMM1222222r   rA   c                   2    e Zd ZU eed<   eed<   dZeed<   dS )VideoSectionr-   youtube_urlVIDEOr!   N)r   r   r   r   r   r!   r   r   r   rE   rE   X   s7         MMMD#r   rE   c                   .    e Zd ZU eed<   eed<   eed<   dS )RelatedSectionr!   r4   r-   Nr   r   r   r   rI   rI   _   s+         
III	HHHMMMMMr   rI   c                   $    e Zd ZU eed<   eed<   dS )DimensionsModelwidthheightN)r   r   r   intr   r   r   r   rK   rK   f   s"         JJJKKKKKr   rK   c                   $    e Zd ZU eed<   eed<   dS )YoutubeImageModel
dimensionsr4   N)r   r   r   rK   r   r   r   r   r   rP   rP   l   s%         	HHHHHr   rP   c                   f    e Zd ZU eed<   eed<   eed<   eed<    ed          Zee         ed<   dS )
MatchModelr1   offset	time_skewfrequency_skewNdefaultchannel)	r   r   r   r   r   floatr   rY   r   r   r   r   rS   rS   r   s]         GGGMMM"U4000GXc]00000r   rS   c                       e Zd ZU eed<   dS )LocationModelaccuracyN)r   r   r   rZ   r   r   r   r   r\   r\   {   s         OOOOOr   r\   c                   `    e Zd ZU eed<   eed<   ee         ed<   dZe	e         ed<   d Z
d ZdS )YoutubeDatar&   r   r8   Nr#   c                 8    |                                  | _        d S N)_YoutubeData__get_youtube_urir#   selfs    r   __post_init__zYoutubeData.__post_init__   s    ))++r   c                 L    | j         r| j         D ]}|j        r	|j        c S d S d S ra   )r8   r#   )rd   actions     r   __get_youtube_urizYoutubeData.__get_youtube_uri   sN    < 	&, & &: &!:%%%&	& 	&& &r   )r   r   r   r   r   rP   r   r   r#   r   re   rb   r   r   r   r_   r_      sn         LLL+C#, , ,& & & & &r   r_   c                      e Zd ZU eed<   eed<   eed<    ed          Zee         ed<   dZ	eed<    edd	          Z
ee         ed
<   dZee         ed<   dZee         ed<   dZee         ed<    ed          Zee         ed<    ed          Zee         ed<   dZee         ed<    ee          Zeeeeeeeef                           ed<   d Zd Zd Zd ZdS )	TrackInfokeyr)   subtitleNrW   	artist_id
shazam_urlF)initrX   	photo_urlspotify_uri_queryapple_music_urlringtonespotify_urlspotify_uriyoutube_linkdefault_factorysectionsc                     d| j          | _        |                                 | _        |                                 | _        |                                 | _        d S )Nzhttps://www.shazam.com/track/)rm   rn   _TrackInfo__apple_music_urlrr   _TrackInfo__short_urirq   _TrackInfo__youtube_linkrv   rc   s    r   re   zTrackInfo.__post_init__   sU    J$.JJ#5577!%!1!1!3!3 //11r   c                     t          t          | j                            }t          i d          |d<   t	          |          }|S )NT)doseq   )listr	   rr   r   r
   )rd   url_parse_listurl_deleted_querys      r   __apple_music_urlzTrackInfo.__apple_music_url   sE    ht';<<==%b555q&~66  r   c                 T    | j         r | j                             d          d         S d S )Nzspotify:search:   )ru   splitrc   s    r   __short_urizTrackInfo.__short_uri   s7     	@#))*;<<Q??	@ 	@r   c                 X    | j         D ]!}t          |          t          u r	|j        c S "d S ra   )ry   r!   rE   rF   )rd   is     r   __youtube_linkzTrackInfo.__youtube_link   sA     	% 	%AAww,&&}$$$ '	% 	%r   )r   r   r   rN   r   r   r   rm   r   rn   rp   rq   rr   rs   rt   ru   rv   r   ry   r   r   r+   rE   rA   rI   r6   re   r{   r|   r}   r   r   r   rj   rj      s        	HHHJJJMMM$uT222Ix}222J$u%>>>Ix}>>>'+x}+++%)OXc])))"Hhsm"""!&t!4!4!4K#444!&t!4!4!4K#444"&L(3-&&& 	d### h		

 
$ 
$ 
$2 2 2! ! !@ @ @% % % % %r   rj   c                   :   e Zd ZU ee         ed<    ed          Zee         ed<    ed          Z	ee
         ed<    ee          Zee         ed<    ed          Zee         ed<    ed          Zee         ed	<    ed          Zee         ed
<   dS )ResponseTracktag_idNrW   retry_mslocationrw   matches	timestamptimezonetrack)r   r   r   r   r   r   r   r   rN   r   r\   r   r   r   rS   r   r   r   r   rj   r   r   r   r   r      s         TN#eD111Hhsm111(-d(;(;(;Hh}%;;; %d ; ; ;GT*;;;$uT222Ix}222#eD111Hhsm111!&t!4!4!4E8I44444r   r   N) dataclassesr   r   typingr   r   r   urllib.parser   r	   r
   uuidr   r   r   r%   r(   r+   r0   r3   r6   r<   rA   rE   rI   rK   rP   rS   r\   r_   rj   r   r   r   r   <module>r      s   ! ! ! ! ! !                         " " " " " " ! ! ! ! ! ! # # # # # #                              
        
 ! ! ! ! ! ! ! !        
                        3 3 3 3 3 3 3 3                        
        
 1 1 1 1 1 1 1 1         & & & & & & & &  ,% ,% ,% ,% ,% ,% ,% ,%^ 5 5 5 5 5 5 5 5 5 5r   