Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
Dh-_c@sþddlmZmZmZmZmZddlmZddlZddl	Z	ddl
Z
yddlZWnek
r‹ddl
ZnXddlmZmZdfd„ƒYZdfd„ƒYZed	krúeƒZejd
ƒejdƒndS(iÿÿÿÿ(tprintDBGtprintExctGetSubtitlesDirtbyteifyt#IsSubtitlesParserExtensionCanBeUsed(tCParsingHelperN(tremovetpathtIPTVSubtitlesHandlercBsÂeZdddgZed„ƒZd„Zd„Zd„Zd„Zd„Z	d	„Z
d
„Zd„Zd„Z
d
„Zd„Zdd„Zdd„Zd„Zddd„Zd„ZRS(tsrttvtttmplcCsVtdƒtƒrEtdƒddddddd	d
ddd
dgStdƒtjS(NtgetSupportedFormatss getSupportedFormats after importR	R
RtssatsmitrtttxttsubtdkstjsstpsbtttmlsgetSupportedFormats end(RRRtSUPPORTED_FORMATS(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyRs
	
(
cCs)tdƒg|_i|_d|_dS(NsIPTVSubtitlesHandler.__init__i
ièi'(RtsubAtomstpailsOfAtomstCAPACITY(tself((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt__init__&s
		cCstjdd|ƒS(Ns<[^>]*>t(treR(Rttext((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt
_srtClearText,scCs•d}|ddkr?|ddkr,dnd}|d}n|jj|ƒ}td„|jƒƒ\}}}}|d|d|d	||S(
Niis+-t-iÿÿÿÿcSs|dkrdSt|ƒS(Ni(tNonetint(tx((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt<lambda>:sii<iè(tTIMECODE_REtmatchtmaptgroups(RttctsignR&thhtmmtsstms((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt
_srtTc2ms23s
$cCsŠd|kr|jdƒ}n|jdƒ}|d}|djdƒ}t|dƒdt|dƒdt|dƒd	t|ƒS(
Nt,t.iit:ii<iiè(tsplitR"(Rttimet
split_timetminortmajor((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt	_srtTc2ms=s
c	
Cs—g}|jddƒjdƒ}d}xitt|ƒƒD]U}|d7}||jdƒ}t|ƒdkr:yûy t|djƒƒ}d}Wn0tk
rÄd|dkr»d}qÅd}nXt|ƒ|dkráw:n||jdƒ}|ji|j|djƒƒd	6|j|djƒƒd
6|j	dj
d„||dt|ƒ!Dƒƒƒd6ƒWqtk
r‹td
|ƒqXq:q:W|S(Ns
s
s

iiiRs --> tstarttendcss|]}|VqdS(N((t.0tj((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pys	<genexpr>[sRsLine number [%d](treplaceR3trangetlenR"tstript	ExceptiontappendR8RtjoinR(	RtsrtTextRtlinetidxtstttmptiR3((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt_srtToAtomsFs,


	
y
cCsp|jdƒ}xBtt|ƒƒD].}||jdƒr"||d||<q"q"Wtjdddj|ƒƒS(Nt|t/is	\{[^}]*\}Rs
(R3R>R?t
startswithRRRC(RRRF((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt
_mplClearText`s
cCst|ƒdS(Nid(R"(RR4((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt	_mplTc2msgscCs»g}|jddƒjdƒ}tjdƒ}x„|D]|}|j|ƒ}d|kr7|ji|j|jdƒƒd6|j|jdƒƒd6|j	|jdƒƒd	6ƒq7q7W|S(
Ns
s
s!^\[([0-9]+?)\]\[([0-9]+?)\](.+?)$iR9iR:iR(
R=R3RtcompiletsearchR!RBROtgroupRN(RtmplDataRtreObjtsRH((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt_mplToAtomsjs
_c
Csßg}||j}|jj|gƒ}d}g}xK|D]C}|j|}||dkr;||dkr;|j|ƒq;q;W|}	||	krÕx,|D]$}|j|}|j|dƒq›Wdj|ƒ}n|	|fS(NR9R:Rs
(RRtgetR!RRBRC(
Rt
currTimeMSt
prevMarkertsubsTextRHtrettvalidAtomsIdexesRFtitemtmarker((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pytgetSubtitles‡s 


 

cCs<|j|ƒ}yt|ƒWntk
r7tƒnXdS(N(t_getCacheFileNamet	os_removeRAR(RtfilePatht	cacheFile((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pytremoveCacheFile s

cCs!|jdƒd}t|dƒS(NRLiÿÿÿÿs.iptv(R3R(RRbRH((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyR`§ssutf-8cCsÌtdƒt}y|j|ƒ}yotj|d|dƒ%}ttj|jƒƒƒ|_	WdQXt
|j	ƒrt}td||fƒnWntk
r«t
ƒnXWntk
rÇt
ƒnX|S(NsOpenSubOrg._loadFromCachetrR=sEIPTVSubtitlesHandler._loadFromCache orgFilePath[%s] --> cacheFile[%s](RtFalseR`tcodecstopenRtjsontloadstreadRR?tTrueRAR(RtorgFilePathtencodingtstsRbtfp((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt_loadFromCache«s
$

cCs‡tdƒy^|j|ƒ}tj|d|ƒ }|jtj|jƒƒWdQXtd||fƒWntk
r‚t	ƒnXdS(NsOpenSubOrg._saveToCachetwsCIPTVSubtitlesHandler._saveToCache orgFilePath[%s] --> cacheFile[%s](
RR`RgRhtwriteRitdumpsRRAR(RRmRnRbRp((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt_saveToCache¼s

cCsõi|_xått|jƒƒD]Î}|j|d|j}||jkr_|g|j|<n*||j|kr‰|j|j|ƒn|j|d|j}||jkrÃ|g|j|<q||j|kr|j|j|ƒqqWdS(NR9R:(RR>R?RRRB(RRFRH((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt_fillPailsOfAtomsÆs	icCsutd|ƒy<tƒrIyc|dkr|tj|ƒ\}}tj|jƒddƒd}d|kr|t|ƒ}q|nWntk
r—t	ƒnXddl
m}tj
|d|d	ƒ}|jƒjd
ƒ}	WdQX|dkrýtd|ƒ}
nd}
t}d}d
}
t}|j|	|
||||
ƒ}d|krB|d|_yÇtd|jddƒt|jƒr|jdddkrxtt|jƒƒD]g}x^ddgD]P}||j|krÜq½n|j||dkr½|j||cd8<q½q½WqªWnWntk
r3t	ƒnX|jƒtStSnWntk
rdt	ƒnX|j||ƒS(Ns%OpenSubOrg.loadSubtitles filePath[%s]it_s_FPS([0-9.]+)_Riÿÿÿÿ(t
_subparserReR=sutf-8g€„.AiiŠttypetlists+Workaround for subtitles from Das Erste: %sR9iQ%R:(RRtos_pathtsplitextRtgetSearchGroupstuppertfloatRARt0Plugins.Extensions.IPTVPlayer.libs.iptvsubparserRxRgRhRktencodeR"RltparseRR?R>RvRft_loadSubtitles(RRbRntfpstfilenametfile_extensionRHt	subparserRptsubTexttmicrosecperframet
setEndTimetCPStWPMt
removeTagstsubsObjRFtkey((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt
loadSubtitlesÕsR	 

&)


cCsAtd|ƒt}g|_|j|ƒ}|sy¸tj|d|dƒš}|jƒjdƒ}|jdƒr|j	|ƒ|_t}nT|jdƒr¹|j	|ƒ|_t}n*|jdƒrã|j
|ƒ|_t}nWdQXWqtk
rtƒqXnt
}|jƒ|r=t|jƒr=|j|ƒn|S(Ns&OpenSubOrg._loadSubtitles filePath[%s]ReR=sutf-8s.srts.vtts.mpl(RRlRRqRgRhRkRtendswithRJRVRARRfRvR?Ru(RRbRnt	saveCacheRoRpRˆ((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyRƒs0			

(t__name__t
__module__RtstaticmethodRRRR/R8RJRNRORVR_RdR`RqRuRvRRƒ(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyRs$				
									
	7tIPTVEmbeddedSubtitlesHandlercBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs)tdƒg|_i|_d|_dS(Ns%IPTVEmbeddedSubtitlesHandler.__init__i
ièi'(RRRR(R((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyR/s
		cCstjdd|ƒS(Ns<[^>]*>R(RR(RR((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyR5scCsty\t|ƒ}|djdƒ}x6|D].}|j|ƒjƒ}|dkr)t|jƒ}|jji|dd6|dd6|d6ƒ|j|d|j}||jkrÆ|g|j|<n*||j|krð|j|j|ƒn|j|d|j}||jkr*|g|j|<qW||j|krW|j|j|ƒqWq)q)WWnt	k
ronXdS(NRs
RR9R:(
RR3RR@R?RRBRRRA(RtinAtomttextTabRRFRH((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt
addSubAtom<s(
-"
c
Csßg}||j}|jj|gƒ}d}g}xK|D]C}|j|}||dkr;||dkr;|j|ƒq;q;W|}	||	krÕx,|D]$}|j|}|j|dƒq›Wdj|ƒ}n|	|fS(NR9R:Rs
(RRRWR!RRBRC(
RRXRYRZRHR[R\RFR]R^((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyR_Ts 


 

cCsg|_i|_dS(N(RR(R((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pytflushSubtitlesis	(R“R”RRR™R_Rš(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyR–.s
				t__main__s0/hdd/_Back.To.The.Future[1985]DvDrip-aXXo.pl.srti'(t-Plugins.Extensions.IPTVPlayer.tools.iptvtoolsRRRRRt*Plugins.Extensions.IPTVPlayer.libs.pCommonRRRgR4RiRAt
simplejsontosRRaRR{RR–R“tobjRR_(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/tools/iptvsubtitles.pyt<module>s (

ÿ?