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:
ó
Ch-_c@s·ddlmZmZmZddlmZmZddlmZddl	m
Z
ddlmZddl
mZddlZddlZdefd	„ƒYZd
dd„ƒYZdS(
iÿÿÿÿ(tprintDBGtprintExcteConnectCallback(tDMHelpert
DMItemBase(tDownloaderCreator(t
boundFunction(teTimer(tsleepNtDMItemcBseZd„ZRS(cCs)tj|||ƒt|_d|_dS(Niÿÿÿÿ(Rt__init__tFalset	processedtdownloadIdx(tselfturltfileName((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR
s	(t__name__t
__module__R
(((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR	st	IPTVDMApicBseZdddd„Zd„Zed„Zd„Zd„Zd„Z	d„Z
d	„Zd
„Zd„Z
d„Zd
„Zd„Zd„Zgd„Zd„Zd„Zdd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(iicCsŽt|_d|_t|_t|_||_g|_||_g|_g|_	g|_
tƒ|_t
|jj|jƒ|_||_dS(Ni(RtrunningR
tdownloadingtupdateProgresst
sleepDelaytqueueUDtMAX_DOWNLOAD_ITEMtqueueAAtqueueDQt
onlistChangedRt	mainTimerRttimeoutt	processDQtmainTimer_conntfinishNotifyCallback(RtrefreshDelaytparallelDownloadNumR!((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR
$s											cCsRtdƒt|jkr2t|_|jjƒn|jƒd|_d|_dS(Ns%IPTVDMApi.__del__ -------------------(	RtTrueRRRtstoptstopAllDownloadItemtNoneR (R((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyt__del__>s
	
		cCs
||_dS(N(R(Rtupdate((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytsetUpdateProgressHs	cCs|jS(N(R(R((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyt	isRunningLscCsf|j|ƒ}d|krbd|j|jkrb|j|jjƒtdƒ|j|dƒndS(Niÿÿÿÿi(tfindIdxInQueueUDR'Rt
downloadert	terminateRtcmdFinished(RR
t	listUDIdx((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytstopDownloadItemOs
"
cCsTxMt|jƒdkrO|jdj}|jdjjƒ|j|dƒqWdS(Niiÿÿÿÿ(tlenRR
R-R.R/(RR
((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR&YscCsŽtd|ƒt}|j|ƒ}d|krwdt|jƒkrw|j|}|j|=|jjd|ƒt}n|rŠ|jƒndS(Ns)moveToTopDownloadItem for downloadIdx[%d]iÿÿÿÿii(RRtfindIdxInQueueDQR2RtinsertR$tlistChanged(RR
tbRetR0titem((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytmoveToTopDownloadItem_s!

	cCsŸtd|ƒt}|j|ƒ}d|krˆ|j|}ytj|jƒWn"tk
rttd|jƒnX|j|=t}n|r›|j	ƒndS(Ns&deleteDownloadItem for downloadIdx[%d]iÿÿÿÿs*deleteDownloadItem removing file[%s] error(
RRR3RtostremoveRt	ExceptionR$R5(RR
R6R0R7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytdeleteDownloadItemos


	cCsŸtd|ƒt}|j|ƒ}d|krˆ|j|}ytj|jƒWn"tk
rttd|jƒnX|j|=t}n|r›|j	ƒndS(Ns&removeDownloadItem for downloadIdx[%d]iÿÿÿÿs*removeDownloadItem removing file[%s] error(
RRtfindIdxInQueueAARR9R:RR;R$R5(RR
R6R0R7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytremoveDownloadItem‡s


	cCs¦|j|ƒ}d|kr¢|j|}tjj|_d|_d|_d|_d|_	d|_
d|_t|_
tjj|_|jj|ƒ|j|=ndS(Niÿÿÿÿi(R=RRtSTStWAITINGtstatustdownloadedSizetdownloadedProcentttotalFileDurationtdownloadedFileDurationtdownloadedSpeedttimeToFinishRRt
DOWNLOAD_TYPEtCONTINUEttriesRtappend(RR
R0R7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytcontinueDownloadItemœs
							cCs¯|j|ƒ}d|kr«|j|}tjj|_d|_d|_d|_d|_	d|_
d|_d|_t
|_tjj|_|jj|ƒ|j|=ndS(Niÿÿÿÿi(R=RRR?R@RAtfileSizeRBRCRDRERFRGRRRHtRETRYRJRRK(RR
R0R7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytretryDownloadItem±s
								cCs6t|jkr(t|_|jjƒn|jƒdS(s$ Can be called only from main threadN(R$RRRR%R&(R((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytstopWorkThreadÆs	cCs6t|jkr2t|_|jj|jdƒndS(s$ Can be called only from main threadièN(RRR$RtstartR(R((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyt
runWorkThreadÎs	cCs’t}t}x,|jD]!}|j|jkrt}qqWt|kr{|jd7_|j|_|jj|ƒt}n|rŽ|jƒn|S(Ni(RRRR$R
RKR5(RtnewItemR6texistR7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytaddToDQueueÔs
	
cCsƒ|jƒtjjkrCt|jƒ|jkrCttdƒfSntd}}xH|D]@}tj	|ttƒ}|j
|ƒ\}}|rW|}PqWqWW|ryt|jƒ|j
ƒƒ}|jd7_|j|_||_|jƒ|_|j|ƒ|jƒtjjkr\t|j|jƒ|_|jj|jƒ|jj|ƒ|jƒn|jj|ƒ|jƒn||fS(Ns2Max number of parallel downloads has been reached.ti(t	getStatusRR?tDOWNLOADINGR2RRRt_tmakeUnikalFileNametmoveFullFileNameR	tgetUrltgetFullFileNameR
R-RAt
updateItemSTSRR/tcallbacktsubscribeFor_FinishRKRRRR5(RR-tfullFilesPathsR6tmsgtnewFilePathRS((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyt
addBufferItemæs2

	


cCsÞt|jkrdSt}t|jƒ|jkr~dt|jƒkr~|jjdƒ}|jj|ƒt}|j	|ƒndt|jƒkrŸt|_
n	t|_
|r»|jƒn|j
rÚ|jrÚ|j
ƒndS(Ni(RRR2RRRtpopRKR$trunCMDRR5RtupdateDownloadItemsStatus(RtdListChangedR7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR	s 	
cCs1td|jƒtjj|jkrDtj|jttƒ|_ntd|j|j|j	fƒ|j
|jƒ}tjj|j
|_|j|j
|_tj|j	ƒ\}}t|ƒ|j
|_t|j|jƒ|j
|_|j
|jj|j
|jƒ|j
|jj||j|ƒdS(NsrunCMD for downloadIdx[%d]s4Downloading started downloadIdx[%s] File[%s] URL[%s](RR
RRHtINITIALRJRZRRRR,R?RXRRAtgetDownloaderParamFromUrlRR-RR/R_R`RQ(RR7R0RtdownloaderParams((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyRf s !cCsêtd|ƒ|j|ƒ}d|kr-dS|j|ƒt|j|_|j|jj|j|jƒd|j|_d|j|_|j|}td||j
|jfƒ|j|}|jj
|ƒ|j|=|jƒdS(NscmdFinished downloadIdx[%d]iÿÿÿÿs-Downloading finished idx[%s] File[%s] URL[%s](RR,tupdateDownloadedItemStatusR$RRR-tunsubscribeFor_FinishR_R'RRRRKR5(RR
tretvalR0R7((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR/2s
!


cCs>x7tt|jƒƒD] }|j|j|kr|SqWdS(Niÿÿÿÿ(trangeR2RR
(RR
tlistIdx((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR3KscCs>x7tt|jƒƒD] }|j|j|kr|SqWdS(Niÿÿÿÿ(RoR2RR
(RR
Rp((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR,RscCs>x7tt|jƒƒD] }|j|j|kr|SqWdS(Niÿÿÿÿ(RoR2RR
(RR
Rp((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR=YscCsCtd|ƒ|j|j|ƒ|j|}d}|jdkrctjj|j|_d}nJ|jdkr‘tjj	|j|_d}ntjj
|j|_d}yw|j|jjdƒd	}|d
 }t
|ƒt
|ƒkrü|d7}n|d7}|jƒj|t|ƒƒWntk
r>tƒnXdS(
Ns(updateDownloadedItemStatus listUDIdx[%d]tUNKNOWNict
DOWNLOADEDitINTERRUPTEDtFAILEDt/iÿÿÿÿis...t (RR^RRCRR?RrRARBRstERRORRtsplitR2R!t
showNotifyRYR;R(RR0tdItemRARt	shortName((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyRl`s*
		


!
cCsþtd|jƒ|jjƒ|jjƒ|_|jjƒ|_|jjƒ|_	|jj
ƒrŠ|jjƒ|_|jj
ƒ|_n|jdkrÂ|jdkrÂd|j|j|_n8|jdkrú|jdkrúd|j|j|_ntS(NsupdateItemSTS downloadIdx[%d]iid(RR
R-tupdateStatistictgetLocalFileSizeRBtgetRemoteFileSizeRMtgetDownloadSpeedRFthasDurationInfotgetTotalFileDurationRDtgetDownloadedFileDurationRERCR$(RtdownloadItem((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR^~s
cCsft}tdƒx<tt|jƒƒD]%}|j|j|ƒr&t}q&q&W|rb|jƒndS(NRg(RRRoR2RR^R$R5(Rt
stsChangedR0((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyRgs

cCsQg}tdƒg}|j|jƒ|j|jƒ|j|jƒ|}|S(NtgetList(RtextendRRR(RtlistttmpList((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR…šs
cCs&||jkr"|jj|ƒndS(N(RRK(Rtfnc((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytconnectListChanged§scCs&||jkr"|jj|ƒndS(N(RR:(RR‰((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pytdisconnectListChanged«scCs)tdƒx|jD]
}|ƒqWdS(Ns
listChanged()(RR(Rtx((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR5¯s
N( RRR'R
R(R$R*R+R1R&R8R<R>RLRORPRRRURdRRfR/R3R,R=RlR^RgR…RŠR‹R5(((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyR"s8	
		
									#								
	
		((t-Plugins.Extensions.IPTVPlayer.tools.iptvtoolsRRRt+Plugins.Extensions.IPTVPlayer.iptvdm.iptvdhRRt:Plugins.Extensions.IPTVPlayer.iptvdm.iptvdownloadercreatorRtTools.BoundFunctionRtenigmaRttimeRtdatetimeR9R	R(((sI/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/iptvdm/iptvdmapi.pyt<module>s