
    }DjWO              	          S SK r S SKrS SKJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJrJrJr  \R                   \srr\R&                  \R(                  srrSu	  rrrrrrrrrSrS	rS
r Sr!Sr"Sr#Sr$Sr%Sr&Sr'Sr(Sr)Sr*Sr+Sr,Sr-Sr.Sr/Sr0Sr1Sr2Sr3Sr4Sr5S r6S!r7S"r8S#r9S$r:S%r;S&r<S'r=S(r>S)r?S*r@S+rAS,rBS-rCS.rDS/rES0rFS1rGS2 rHS3 rIS4 rJS5 rKS6 rLSDS7 jrMS8 rNSES9 jrOS: rPS; rQS< rRS= rSS> rTS? rUSFS@ jrVSA rWSB rXSC rYg)G    N)unquoteunquote_plus)
kodi_utils)episodes_meta)date_offset)adjust_premiered_dateget_datetimejsondate_to_datetimesubtract_dates)	      0   H   `         iP  i  z&ultimate_nondebrid.internal_results.%s)z.4khd4k4khdz.uhdultrahdzultra.hdhd21602160hd21602160p216o216op)10801080p1080ihd10801080hdhd1080pm1080pfullhdzfull.hd1o8o1o8op108o108op1o801o80p)720720p720ihd720720hdhd720p72o72op)z.cam.camriphdcamz.hd.camhqcamz.hq.camzcam.ripdvdcam)z.scr.screenerdvdscrzdvd.scrz.r5z.r6)z.tc.z.ts.tsriphdtshdtcz.hd.tcdvdtstelesyncz	tele.synctelecinez	tele.cine)
z.3d.z.sbs.z.hsbs
sidebysidezside.by.sidestereoscopicz.tab.z.htab.topandbottomztop.and.bottom)zdolby.visiondolbyvisionz.dovi.z.dv.)z2160p.bluray.hevc.truehdz2160p.bluray.hevc.dtsz2160p.bluray.hevc.lpcmz2160p.blu.ray.hevc.truehdz2160p.blu.ray.hevc.dtsz2160p.uhd.blurayz2160p.uhd.blu.rayz2160p.us.bluray.hevc.truehdz2160p.us.bluray.hevc.dts.hdr.hdr10hdr.10zuhd.bluray.2160pzuhd.blu.ray.2160p)rB   z.hdr10.rD   )z
.enhanced.z
.upscaled.z	.enhance.z	.upscale.)avch264zh.264x264zx.264)h265zh.265hevcx265zx.265)xvidz.x.vid)divxdiv2div3div4)
z.mpgz.mp2z.mpegz.mpez.mpvz.mp4z.m4pz.m4vmsmpegmpegurl)z.mkvmatroska)remuxbdremux)blurayzblu.raybdripzbd.rip)z.imax.z.(imax).z
.(.imax.).)dvdripzdvd.rip)z.web.webdlzweb.dlzweb-dlwebripzweb.rip)z.hdripz.hd.rip)ztrue.hdtruehd)zdolby.digital.pluszdolbydigital.plusdolbydigitalpluszdd.plus.ddplusz.ddp.ddp2ddp5ddp7eac3z.e.ac3)z.dd.ex.ddexz	dolby.ex.zdolby.digital.ex.zdolbydigital.ex.)zdd2.dd5dd7zdolby.digitaldolbydigitalz.ac3z.ac.3.z.dd.)z.dts.x.dtsx)zhd.mahdma)zdts.hd.dtshd)zch8.z8ch.z7.1chz7.1.)zch7.z7ch.z6.1chz6.1.)zch6.z6ch.z5.1chz5.1.)ch22chz2.0chz2.0.z
audio.2.0.stereo)subita	subfrench
subspanish	subtitulaswesubznl.subssubbed)1xbetbetwin)/z	hindi.engzara.engzces.engzchi.engzcze.engzdan.engzdut.engzell.engzesl.engzesp.engzfin.engzfra.engzfre.engzfrn.engzgai.engzger.engzgle.engzgre.engzgtm.engzheb.engzhin.engzhun.engzind.engziri.engzita.engzjap.engzjpn.engzkor.engzlat.engzlebb.engzlit.engznor.engzpol.engzpor.engzrus.engzsom.engzspa.engzsve.engzswe.engztha.engztur.engzuae.engzukr.engzvie.engzzho.engz
dual.audiomulti)sampleextraextrasdeletedunusedfootageinsideblooperbloopersz	making.offeature
featurettezbehind.the.scenestrailer)Eztamilrockers.comzwww.tamilrockers.comzwww.tamilrockers.wszwww.tamilrockers.plzwww-tamilrockers-clzwww.tamilrockers.clzwww.tamilrockers.lizwww.tamilrockerrs.plzwww.tamilmv.bidzwww.tamilmv.bizzwww.1tamilmv.orgzgktorrent-bzzgktorrent-comzwww.torrenting.comzwww.torrenting.orgzwww-torrenting-comzwww-torrenting-orgzkatmoviehd.pwzkatmoviehd-pwzwww.torrent9.nzzwww-torrent9-unoztorrent9-czztorrent9.czzagusiq-torrents-plzoxtorrent-bzzoxtorrent-comzoxtorrent.comzoxtorrent-shzoxtorrent-vczwww.movcr.tvz	movcr-comzwww.movcr.toz(imax)imaxzxtorrenty.orgznastoletni.wilkoakzwww.scenetime.comzkst-vnzwww.movierulz.vczwww-movierulz-htzwww.2movierulz.aczwww.2movierulz.mszwww.3movierulz.comzwww.3movierulz.tvzwww.3movierulz.wszwww.3movierulz.mszwww.7movierulz.pwzwww.8movierulz.wszmkvcinemas.livezwww.bludv.tvzramin.djawadizextramovies.casazextramovies.wikiz13+z18+ztaht.oyunlarzcrazy4tv.comkaribuz	989pa.comzbest-torrents-netz1-3-3-8.comzssrmovies.clubzva:zzgxybbs-fdns-ukzwww.tamilblasters.mxzwww.1tamilmv.workzwww.xbay.mezcrazy4tv-comz(es))zDOLBY DIGITALDDzDOLBY DIGITAL PLUSDD+zDOLBY DIGITAL EXDD-EXzDOLBY ATMOSATMOSzDOLBY TRUEHDTRUEHDDTSr   zDTS-HD MASTER AUDIO	DTS-HD MADTS-Xr   DTS-HDr   AACr   OPUSr   MP3r   z	8CH AUDIO8CHz	7CH AUDIO7CHz	6CH AUDIO6CHz	2CH AUDIO2CH) )PACKr   )zDOLBY VISION[B]D/VISION[/B])zHIGH DYNAMIC RANGE (HDR)
[B]HDR[/B])IMAXr   )HYBRID[B]HYBRID[/B])AV1
[B]AV1[/B])zHEVC (X265)[B]HEVC[/B])REMUXr   )BLURAYr   )zAI ENHANCED/UPSCALED[B]AI ENHANCED/UPSCALED[/B])SDRr   )3D	[B]3D[/B]r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )z
DVD SOURCEDVD)z
WEB SOURCEWEB)zMULTIPLE LANGUAGES
MULTI-LANG)	SUBTITLESSUBSc                 L    U  Vs/ s H  oS   PM	     nnU$ s  snf !   / n U$ = f)Ntitle )aliasesiresults      X/home/rurouni/addon-audit/build/ultimate-nondebrid/resources/lib/modules/source_utils.pyget_aliases_titlesr   O   s0    $+,Gq'
Gf, -"s      #c           	         / nU R                  S/ 5      nU S   n[        U R                  S/ 5       Vs/ s H  oUR                  SS5      PM     sn5      nU(       a  U Vs/ s H  oUSS.PM	     nnXC;  a  UR                  USS.5        U(       a+  UR	                  U Vs/ s H  oQ< SU< 3SS.PM     sn5        U$ s  snf s  snf s  snf )	Nalternative_titlesoriginal_titlecountry_codesGBUK )r   country )getsetreplaceappendextend)metar   r   r   r   r   r   s          r   make_alias_dictr   T   s    hh3R8'(TXXor5RS5Riid+5RSTHZ"[HZ12#>HZ"[,gnn~bd=e.f7>>[h"i[hVWq-Ab#Q[h"ij	 T"["is   B= CCc                 R    [        [        U -  [        R                  " U5      5        g N)set_propertyint_window_propjsondumps)providersourcess     r   internal_resultsr   ^   s    o($**W*=>    c                    ^ SS K m SR                  U4S jTR                  SU 5       5       5      n [        U 5      $ !   U s $ = f)Nr   r   c              3   V   >#    U  H  nTR                  U5      S :w  d  M  Uv   M      g7f)MnN)category).0cunicodedatas     r   	<genexpr>normalize.<locals>.<genexpr>d   s)     eA[EYEYZ[E\`dEd!!As   )	)NFKD)r   join	normalizestring)r   r   s    @r   r   r   a   s?    
''e[2265Ae
e%	s	   5= Ac                   ^  U S   S   nUS;   a  g[        5       [        5       snm[        X5      nU Vs/ s H  n[        US   U5      S   PM     nnS U;   d  [	        U4S jU 5       5      (       a  gg	s  snf !    g= f)
N
extra_infostatusEndedCanceled)TT	premieredr   c              3   ,   >#    U  H	  oT:  v   M     g 7fr   r   )r   r   current_dates     r   r   $pack_enable_check.<locals>.<genexpr>o   s     $P?O!%5?O   FF)TF)r   r	   r   r   any)	r   seasonepisoder   adjust_hoursepisodes_datar   unaired_episodesr   s	           @r   pack_enable_checkr   h   s    h'&$$Z*}ln,--VcdVcQR+AkNLI!LVcd	$P?O$P!P!PYe e s!   A; $A; A6"A; 6A; ;A?c                 T    SSK Jn  S H	  o!" USS9  M     U (       d  [        S5        g g )Nr   )clear_cache)internal_scrapersexternal_scrapersT)silentSuccess)caches.base_cacher   notification)r   r   items      r   clear_scrapers_cacher  t   s#    *7TTRV9W7Y'r   c                  r    [        5       R                  S5      n U  Vs/ s H  oS;  d  M
  UPM     sn$ s  snf )N|)r   z.zipz.rarz.iso)supported_mediasplit)supported_video_extensionsr   s     r   r  r  y   s6    -/55c:.U.q;T6T.UUUs   	44c                    [        U 5      [        U5      peUR                  S5      UR                  S5      p[        US-   5      [        US-
  5      p[        R                  " SS[	        U5      R                  SS5      5      R                  5       nSnSnS	nS
nSnSnSn/ nUR                  nU" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU
R                  S5      5      R                  SU5      5        U" UR                  SU5      R                  SU5      R                  SU	R                  S5      5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      R                  SU5      5        U" UR                  SU5      5        U" UR                  SU5      5        U" UR                  SU5      5        SR                  U5      n[        R                  " U5      nU(       a8  UR                  [        R                  " UU5      R                  5       S5      S   $ U(       a%  [        R                  " UU5      R                  5       $ [        [        R                  " UU5      5      $ )N      [^A-Za-z0-9-]+.'r   z (s<<S>>[.-]?e[p]?[.-]?<<E>>[.-])zE(season[.-]?<<S>>[.-]?episode[.-]?<<E>>[.-])|([s]?<<S>>[x.]<<E>>[.-])z (s<<S>>e<<E1>>[.-]?e?<<E2>>[.-])z([.-]<<S>>[.-]?<<E>>[.-])z(episode[.-]?<<E>>[.-])z([.-]e[p]?[.-]?<<E>>[.-])z\(^(?=.*\.e?0*<<E>>\.)(?:(?!((?:s|season)[.-]?\d+[.-x]?(?:ep?|episode)[.-]?\d+)|\d+x\d+).)*$)z<<S>>z<<E>>z<<E1>>z<<E2>>r  )r   zfillresubr   r   lowerr   r   compiler  searchgroupbool)r   r   release_titler  return_match
str_seasonstr_episodeseason_fillepisode_fillstr_ep_plus_1str_ep_minus_1string1string2string3string4string5string6string7string_liststring_list_appendfinal_stringreg_patterns                         r   seas_ep_filterr(  }   s/   !&>6'?['--a0+2C2CA2Fl!'	!2F7194E)30F0N0NtUW0XY__a.S.'%'j!((GOOG[9AA'<XYGOOGZ8@@,WXGOOG[9AA';WXGOOGZ8@@+VWGOOG[9AA'<XYGOOGZ8@@,WXGOOG[9AA';WXGOOGZ8@@+VWGOOG[9AA(NL`L`abLcdllmu  xD  E  FGOOG[9AA(LYaabjlyll  AB  mC  D  EGOOG[9AA'<XYGOOGZ8@@,WXGOOG[9:GOOG\:;GOOG\:;%zz,'	-%%bii]&K&Q&Q&SUVWXYZZ;>DDFFRYY{M233r   c                 X   [         R                  " SS[        U 5      R                  SS5      5      R	                  5       n S n/ SQnU HV  n [         R
                  " X05      nU(       a5  [        [        UR                  S5      5      R                  S5      5      n  U$ MX     U$ !    Ma  = f)Nr
  r  r  r   )zs(\d+)zs\.(\d+)z(\d+)xz(\d+)\.xzseason(\d+)zseason\.(\d+)r	  0)
r  r  r   r   r  r  intr   r  lstrip)r  match
regex_listr   s       r   find_season_in_release_titler/     s    )30F0N0NtUW0XY__a	`T99T)5u{{1~&--c23E		   	 $s   AB$$B)c                 .  ^  U /nU(       a  Xb-  n/ nUR                   n[        U5      nU H  n	U" U	R                  5       R                  SS5      R                  SS5      R                  SS5      R                  SS5      R                  SS5      R                  SS5      R                  S	S
5      R                  US5      5        M     [	        T5      R                  S5      R                  S	S
5      R                  SS
5      R                  5       mTR                  n
[         Hm  n	U
" U	5      (       d  M  U	R                  nU" S5      (       d  U" S5      (       a  SU	-  OSU	-  n[        R                  " SU-  STS[        R                  5      mMo     TR                  S5      m[        R                  " SSTS[        R                  5      mTR                  S5      mU(       a  US:X  a  SnO[        XETSS9nOUnU(       a  TR                  UR                  5       5      S   mTR                  US5      R                  SS5      R                  SS5      R                  SS5      R                  S5      R                  S
5      R                  S5      R                  SS5      m[        U4S jU 5       5      (       d/  TR                  S5      S   m[        U4S jU 5       5      (       d  ggTR                  US5      R                  SS5      R                  SS5      R                  SS5      R                  S5      R                  S
5      R                  S5      R                  SS5      m[        U4S  jU 5       5      (       d  gg!    g= f!    g= f)!Nr  r   :!()&andr   r  z/ [+z\%sz%sz^%sr	  z.-:/z^\[.*?]z
.-[](){}:/packT)r  Fr   .--c              3   .   >#    U  H
  nTU:H  v   M     g 7fr   r   r   r   r  s     r   r   check_title.<locals>.<genexpr>   s     9.Qmq .   /c              3   .   >#    U  H
  nTU:H  v   M     g 7fr   r   r=  s     r   r   r>     s     :>a}!>r?  c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r=  s     r   r   r>     s     9.Q= .r   )r   r   r  r   strip_non_ascii_and_unprintabler,  
startswithUNWANTED_TAGSr  r  Ir(  r  rstripr   )r   r  r   yearr   r   
all_titlescleaned_titlescleaned_titles_appendr   releasetitle_startswithi_startswithpatternhdlrs    `            r   check_titlerQ     s   #w*j#j.(//	$aGGIdB''R088bAII#rRZZ[^`bckkloqvw  AD  FI  J  R  R  SW  Y[  \]  2-@GGMUUVY[^_gghkmpqwwy-)44aa  <<L(--c1B1BfqjPQ	GFF6G+R244HM	 
  &&v.-&&R244@-&&|4-rvDQ	 &&tzz|4Q7= ((r2::3CKKCQST\\]`bghooptu||  ~A  B  I  I  JM  N  V  V  WZ  \^  _=
9.9
9
9!'',R0M:>:::5 
 !((r2::3CKKCQST\\]`bghooptu||  ~A  B  I  I  JM  N  V  V  WZ  \^  _=
9.9
9
9%	 5 s9   D.N 5B9N .N	 9C3N .BN 	NN N Nc                      SR                  S U  5       5      nUR                  SSS9R                  SSS9$ !    U $ = f)Nr   c              3   <   #    U  H  o[         ;   d  M  Uv   M     g 7fr   )	printable)r   chars     r   r   2strip_non_ascii_and_unprintable.<locals>.<genexpr>   s     >DDI,=44Ds   	asciiignore)errors)r   encodedecode)textr   s     r   rD  rD     sJ    77>D>>&	wx	0	7	7	7	QQs   58 =c                 ~    [        U 5      n U R                  5       R                  SS5      R                  S5      R	                  S5      n S[
        R                  " SSU 5      R                  SS5      R                  SS5      R                  SS5      R                  S	S5      -  nU$ !   U R                  5       s $ = f)
Nr  r   r  z.%s.z[^a-z0-9-~]+z.-.z-.r:  z--)	url_stripr  r   r,  rH  r  r  )r  r   s     r   release_info_formatr_     s    M*-%%'//R8??DKKCP-
266/3>FFucRZZ[_ademmnrtwx  A  A  BF  HK  L  L%	,				s   B%B( (B<c                     U (       d  g U R                  5       n [        R                  " SSU 5      n [        R                  " SSU 5      n U R                  SS5      R                  SS5      n [        R                  " S	SU 5      n U $ !    U $ = f)
Nz&#(\d+);r   z(&#[0-9]+)([^;^0-9]+)z\1;\2z&quot;"z&amp;r5  u.   \n|([\[({].+?[})\]])|([:;–\-"\',!_.?~$@])|\s)r  r  r  r   )r   s    r   clean_titlerb     s    	
++-%
&&b%
(%
&&)9e
<%
--$
'
/
/
=%
&&BB
N% s   B A:B Bc                 (    [        U 5      n SU ;   a  U R                  S5      S   n U R                  5       R                  SS5      R	                  S5      R                  S5      n [        R                  " SSU 5      nS	U;   a  g US:X  a  g U$ !    g = f)
Nzmagnet:z&dn=r	  r  r   r  z
[^a-z0-9]+r   http)r   r  r  r   r,  rH  r  r  )urlr   s     r   r^  r^     s    S##SYYv.q1s		C$++C077<#
&&S
)%u_T
b[	,s   BB B B Bc                     S nU (       a  U nOU(       a  [        U5      nU(       d  g[        U5      =(       d    Un[        U5      nXE4$ )N)SDr   )r^  get_release_qualityget_info)	name_infore  default_qualityr   qualityinfos         r   get_file_inforn     s>    	yu	9S>5hu%8r   c                 z  ^  [        U 4S j[         5       5      (       a  g[        U 4S j[         5       5      (       a  g[        U 4S j[         5       5      (       a  g[        U 4S j[         5       5      (       a  g[        U 4S	 j[
         5       5      (       a  g
[        U 4S j[         5       5      (       a  gg )Nc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r   r   release_infos     r   r   &get_release_quality.<locals>.<genexpr>       '3a\3r   SCRc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   rq  s     r   r   rs    rt  r   CAMc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   rq  s     r   r   rs    s     (4a\4r   TELEc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   rq  s     r   r   rs    s     +7a\7r   r+   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   rq  s     r   r   rs    s     ,8a\8r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   rq  s     r   r   rs    s     *6a\6r   4K)r   ru  rw  ry  RES_720RES_1080RES_4K)rr  s   `r   rh  rh    sx    '3''''3'''(4(((+7+++F,8,,,W*6***4r   c                   ^ ^ / mTR                   n[        U 4S j[         5       5      (       a  U" S5        ST ;   a	  U" S5        Op[        U 4S j[         5       5      (       a	  U" S5        OI[        U 4S j[         5       5      (       a	  U" S5        O"[        U 4S	 jS
 5       5      (       a  U" S5        ST;   a:  [        U 4S j[         5       5      (       d  ST ;   a  U" S5        ST;   a  U" S5        [        U 4S j[         5       5      (       a	  U" S5        OXST ;   a	  U" S5        OI[        U 4S j[         5       5      (       a	  U" S5        O"[        U4S jS 5       5      (       a  U" S5        [        U 4S j[         5       5      (       a	  U" S5        O&[        U 4S j[         5       5      (       a  U" S5        ST ;   a	  U" S5        OM[        U 4S j[         5       5      (       a	  U" S5        O&[        U 4S j[         5       5      (       a  U" S5        [        U 4S  j[         5       5      (       a  U" S!5        [        U 4S" j[         5       5      (       a	  U" S#5        O[        U 4S$ j[         5       5      (       a	  U" S%5        Ok[        U 4S& j[          5       5      (       a	  U" S'5        ODS(T ;   a	  U" S)5        O5S*T ;   a	  U" S+5        O&[        U 4S, j["         5       5      (       a  U" S-5        S.T ;   a  U" S/5        [        U 4S0 j[$         5       5      (       a  U" S15        [        U 4S2 j[&         5       5      (       a	  U" S35        OM[        U 4S4 j[(         5       5      (       a	  U" S55        O&[        U 4S6 j[*         5       5      (       a  U" S75        S8T ;   a	  U" S95        OBS:T ;   a	  U" S;5        O3S<T ;   a	  U" S=5        O$S>T ;   a  T R-                  S?5      (       d  U" S@5        [        U 4SA j[.         5       5      (       a	  U" SB5        O\[        U 4SC j[0         5       5      (       a	  U" SD5        O5[        U 4SE j[2         5       5      (       a	  U" SF5        OSGT ;   a  U" SH5        [        U 4SI j[4         5       5      (       a	  U" SJ5        Ot[        U 4SK j[6         5       5      (       a	  U" SL5        OM[        U 4SM j[8         5       5      (       a	  U" SN5        O&[        U 4SO j[:         5       5      (       a  U" SP5        SQT ;   a	  U" SR5        O\[        U 4SS j[<         5       5      (       a	  U" ST5        O5SUT ;   a	  U" SV5        O&[        U 4SW j[>         5       5      (       a  U" SX5        [        U 4SY j[@         5       5      (       a  U" SZ5        [        U 4S[ j[B         5       5      (       a  U" S\5        [        U 4S] j[D         5       5      (       a  U" S^5        S_RG                  [I        S T5      5      $ )`Nc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r   r   r   s     r   r   get_info.<locals>.<genexpr>  s     %HqU
Hr   r   z.sdrr   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r         	+lu*lr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r         	"cu*cr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r    s     	10u*0r   )r   rS   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r    s     &XeXr   hybridr   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r         'JqU
Jr   AVCz.av1.r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r         	)ju*jr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   )r   r   rm  s     r   r   r    s     	?>t)>r   )r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r         !DqU
Dr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r    s     	0/u*/r   r   z.atvpzAPPLETV+c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r    r  r   XVIDc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r    r  r   DIVXc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r     s     "EqU
Er   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  !  s     #FqU
Fr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  "  r  r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  #  r  r   r   hdtvHDTVpdtvPDTVc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  &  s     	$eu*er   HDRIPatmosr   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  (  s     )LqU
Lr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  )  s     .-qU
-r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  *  s     	.ou*or   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  +  r  r   r   aacr   mp3r   z.flac.FLACopuszopus.r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  0  r  r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  1  s     	'hu*hr   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  2  s     	%fu*fr   r   z.dtsr   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  4  s     &IqU
Ir   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  5       	(iu*ir   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  6  r  r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  7  r  r   r   z.wmvWMVc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  9  r  r   MPEGz.aviAVIc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  ;  r  r   MKVc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  <  r  r   r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  =  s      CqU
Cr   ADSc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r  s     r   r   r  >  r  r   r   z | )%r   r   VIDEO_3DDOLBY_VISIONHDRallHDR_TRUE
CODEC_H264
CODEC_H265r   ENHANCED_UPSCALED
CODEC_XVID
CODEC_DIVXr   r   r   r   r  DOLBY_TRUEHDDOLBY_DIGITALPLUSDOLBY_DIGITALEXDOLBYDIGITALendswithDTSXDTS_HDMADTS_HD	AUDIO_8CH	AUDIO_7CH	AUDIO_6CH	AUDIO_2CH
CODEC_MPEG	CODEC_MKV
MULTI_LANGr  r   r   filter)r   info_appendrm  s   ` @r   ri  ri    s+   
{{%H%%%K(@
eO['		+l	+++[9J-K		"c	"""K$=		10	111;|3L&X&&&(e*;[=VT;7'J'''U);L1		)j	)));}+E		?>	???]A[!D!!!;v#6		0/	000+>[2\uk*-		)j	)));v+>		)j	)));v+>"E"""K$8#F###[%:		"c	"""K$6		"c	"""K$6o{6*o{6*		$e	$$$k'&:uk'*)L)));x+@.-...E0B		.o	...G0D		+l	+++[->	UNK&unk%(%V,oennW55{67J!D!!!;w#7		'h	'''[)A		%f	%%%{8'<o{5)&I&&&E(:		(i	(((+e*<		(i	(((+e*<		(i	(((+e*<
eO['		)j	)));v+>o{5)		(i	(((+e*<'J'''\)B C   +e"4!D!!!;v#6

6$%&&r   c                     [        5       nU S:X  ar  [        US   SSS9n[        X45      nUS:X  a  [        nOGUS::  a  [        nO:US::  a  [
        nO-US	::  a  [        nO US
::  a  [        nOUS::  a  [        nO[        nSu  pxOSn	US   n
U
S   S;   n[        US   [        5       5      S   n[        X45      n[        U
S   S   SSS9n[        X<5      nU(       a  US::  a  Sn	U(       a  U	(       aW  US:X  a  [        nO US::  a  [        nOUS::  a  [        nO[        nUS   U:X  a  US::  a  [        nO[        nO[        n[        nO[        [        [        pn XgU4$ !   [        [        [        pn N= f)Nmovier   z%Y-%m-%dT)remove_timer               <   )r   r   Fr   r   r   last_episode_to_airair_dater   total_seasons)r	   r
   r   expiry_3hrsexpiry_1dayexpiry_2daysexpiry_3daysexpiry_4daysexpiry_7daysexpiry_14daysr   r   expiry_10daysexpiry_30days)
media_typer   r   r   r   
differencesingle_expiryseason_expiryshow_expiryrecently_endedr   endedr  last_ep_differences                 r   get_cache_expiryr  A  s   !_,7#D$5ztT9|7:Ao{}ab,-b,-b,-b,-& $=+>\":h#885$T+%6FqI9|7:-j9N.OPZ.[]guyz&|I"b(4.
>Q	q+-	q,-&-O&a(='-K5BMS`{{k11 _\<Q^{{s   BE CE E E3)Fr   )NNrg  )Zr  r   urllib.parser   r   modulesr   modules.metadatar   modules.settingsr   modules.utilsr   r	   r
   r   r  strr   r   r   r  r  r  r  r  r  r  r  r  r   r  r  r~  rw  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  EXTRASrF  audio_filter_choicessource_filtersr   r   r   r   r   r  r  r(  r/  rQ  rD  r_  rb  r^  rn  rh  ri  r  r   r   r   <module>r     s   	  .  * ( c c %44c '44j6M6M l Af }[,lLR_anp}:	u W
LV>u I@U *J 6
7

-
c
 		1+A$ ] [`	-	-	-	C	XC

 
n@X A
?
(
V!4F$L		4'l#2r   