Ë
    š„jÁ  ã                   óF   — d dl Z d dlZd dlZd dlZddlmZ  G d„ de«      Zy)é    Né   )ÚFFmpegPostProcessorc            
       ób   — e Zd ZddiZddiZi e¥ddi¥Zddd	d
ddddddœ	e¥Zdd„Zd„ Zd„ Z	d„ Z
y)ÚSponsorBlockPPÚYoutubeÚYouTubeÚpoi_highlightÚ	HighlightÚchapterÚChapterÚSponsorzIntermission/Intro AnimationzEndcards/CreditszUnpaid/Self PromotionzPreview/RecapzFiller TangentzInteraction ReminderzNon-Music SectionzHook/Greetings)	ÚsponsorÚintroÚoutroÚ	selfpromoÚpreviewÚfillerÚinteractionÚmusic_offtopicÚhookNc                 óØ   — t        j                  | |«       t        |xs | j                  j	                  «       «      | _        t        j                  d|«      r|| _        y d|z   | _        y )Nz	https?://zhttps://)	r   Ú__init__ÚtupleÚ
CATEGORIESÚkeysÚ_categoriesÚreÚmatchÚ_API_URL)ÚselfÚ
downloaderÚ
categoriesÚapis       úX/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/postprocessor/sponsorblock.pyr   zSponsorBlockPP.__init__"   sP   € Ü×$Ñ$ T¨:Ô6Ü  Ò!E¨t¯©×/CÑ/CÓ/EÓFˆÔÜ!Ÿx™x¨°SÔ9˜ˆ�¸zÈCÑ?Oˆ�ó    c                 óÊ   — |d   }|| j                   vr| j                  d|› �«       g |fS | j                  d«       | j                  ||j                  d«      «      |d<   g |fS )NÚextractor_keyz"SponsorBlock is not supported for zFetching SponsorBlock segmentsÚdurationÚsponsorblock_chapters)Ú
EXTRACTORSÚ	to_screenÚ_get_sponsor_chaptersÚget)r    ÚinfoÚ	extractors      r$   ÚrunzSponsorBlockPP.run'   sm   € Ø˜Ñ)ˆ	Ø˜DŸO™OÑ+Ø�N‰NÐ?À	¸{ÐKÔLØ�t�8ˆOà�‰Ð7Ô8Ø(,×(BÑ(BÀ4ÈÏÉÐR\ÓI]Ó(^ˆÐ$Ñ%Ø�4ˆxˆr%   c                 óŽ  ‡ ‡— ‰ j                  |d   ‰ j                  |d      «      }ˆˆ fd„}|D �cg c]  } ||«      sŒ|‘Œ }}t        |«      t        |«      k7  r‰ j                  d«       ˆ fd„}|D �cg c]
  } ||«      ‘Œ }}|s‰ j	                  d«       |S ‰ j	                  dt        |«      › d�«       |S c c}w c c}w )	NÚidr'   c                 ó  •— | d   }|dk(  ry|d   dk  rd|d<   | d   ‰j                   v r|dxx   dz  cc<   ‰r‰|d   z
  dk  r‰|d<   | d   rt        ‰| d   z
  «      nd}|dk  xs |dk  xr ||d   |d   z
  z  d	k  S )
NÚsegment)r   r   Fr   r   ÚcategoryÚvideoDurationé   gš™™™™™©?)ÚPOI_CATEGORIESÚabs)ÚsÚ	start_endÚdiffr(   r    s      €€r$   Úduration_filterz=SponsorBlockPP._get_sponsor_chapters.<locals>.duration_filter4   s¸   ø€ Ø˜)™ˆIà˜FÒ"Øà˜‰|˜qÒ Ø �	˜!‘à�‰} × 3Ñ 3Ñ3Ø˜!“ Ñ!“ñ ˜H y°¡|Ñ3°qÒ8Ø'�	˜!‘à9:¸?Ò9K”3�x ! OÑ"4Ñ4Ô5ÐQRˆDØ˜!‘8ÒY  q¡Ò X¨T°Y¸q±\ÀIÈaÁLÑ5PÑ-QÐTXÑ-XÐYr%   zjSome SponsorBlock segments are from a video of different duration, maybe from an old version of this videoc           	      ót   •— | d   | d   c\  }}}|dk(  r| d   n‰j                   |   }||||| d   ||||fgdœS )Nr4   r5   r   ÚdescriptionÚ
actionType)Ú
start_timeÚend_timer5   ÚtitleÚtyper   )r   )r:   ÚstartÚendÚcatrC   r    s        €r$   Ú
to_chapterz8SponsorBlockPP._get_sponsor_chapters.<locals>.to_chapterK   sc   ø€ Ø ! )¡¨a°
©mÐ‰LˆU�C˜#Ø(+¨yÒ(8�A�mÒ$¸d¿o¹oÈcÑ>RˆEà#ØØØØ˜,™Ø!$ e¨S°%Ð 8Ð9ñð r%   z<No matching segments were found in the SponsorBlock databasezFound z& segments in the SponsorBlock database)Ú_get_sponsor_segmentsr*   ÚlenÚreport_warningr+   )	r    r.   r(   Úsegmentsr=   r:   Úduration_matchrH   Úsponsor_chapterss	   ` `      r$   r,   z$SponsorBlockPP._get_sponsor_chapters1   sØ   ù€ Ø×-Ñ-¨d°4©j¸$¿/¹/È$ÈÑJ_Ñ:`Óaˆõ	Zð& &.ÖD ±ÀÕ1Cš!ÐDˆÐDÜˆ~Ó¤# h£-Ò/Ø×Ñð  !Mô  Nô
	ð 4BÖB¨a™J q�MÐBÐÐBÙØ�N‰NÐYÔZð  Ðð �N‰N˜V¤CÐ(8Ó$9Ð#:Ð:`ÐaÔbØÐùò+ Eùò  Cs   ²B=Á B=Á7Cc           	      ó’  — t        j                  |j                  d«      «      j                  «       }| j                  › d|d d › d�t
        j                  j                  |t        j                  | j                  «      t        j                  g d¢«      dœ«      z   }| j                  |«      xs g D ]  }|d   |k(  sŒ|d   c S  g S )	NÚasciiz/api/skipSegments/é   ú?)ÚskipÚpoir   )Úservicer"   ÚactionTypesÚvideoIDrL   )ÚhashlibÚsha256ÚencodeÚ	hexdigestr   ÚurllibÚparseÚ	urlencodeÚjsonÚdumpsr   Ú_download_json)r    Úvideo_idrU   Ú
video_hashÚurlÚds         r$   rI   z$SponsorBlockPP._get_sponsor_segments^   s½   € Ü—^‘^ H§O¡O°GÓ$<Ó=×GÑGÓIˆ
à—‘�Ð1°*¸R¸a°.Ð1AÀÐCÄfÇlÁl×F\ÑF\ØÜŸ*™* T×%5Ñ%5Ó6ÜŸ:™:Ò&@ÓAñ^
ó Gñ ˆð
 ×$Ñ$ SÓ)Ò/¨Rò 	%ˆAØ�‰|˜xÓ'Ø˜‘}Ò$ð	%ð ˆ	r%   )Nzhttps://sponsor.ajay.app)Ú__name__Ú
__module__Ú__qualname__r*   r8   ÚNON_SKIPPABLE_CATEGORIESr   r   r0   r,   rI   © r%   r$   r   r   	   s|   „ ð 	�9ð€Jð 	˜ð€Nð Ø
ð à�9ñ Ðð
 Ø/Ø#Ø,Ø"Ø"Ø-Ø-Ø ñð #ð€JóPò
ò+ óZr%   r   )rX   r_   r   Úurllib.parser\   Úffmpegr   r   rj   r%   r$   ú<module>rm      s#   ðÛ Û Û 	Û å 'ô`Ð(õ `r%   