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@s1ddlmZddlmZmZmZmZddlm	Z	m
Z
mZmZddl
mZddlmZddlmZddlmZddlZddlZddlZyddlZWnek
rçddlZnXdd	lmZd
„Zdefd„ƒYZd
efd„ƒYZ dS(iÿÿÿÿ(tTranslateTXT(t	CHostBasetCBaseHostClasstRetHosttArticleContent(tprintDBGtprintExctbyteifyt
MergeDicts(tstrwithmeta(tgetDirectM3U8Playlist(tph(tloadsN(tdeepcopycCsdS(Nshttps://hdfilme.cx/((((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgettytulst	HDFilmeTVcBsÆeZdZdZedZdZied6dd6dd6ed	ƒd
6edd6ied6dd6dd6ed
ƒd
6edd6ied6dd6dd6edƒd
6edd6ied6dd6edƒd
6ed6ied6dd6edƒd
6gZd„Z	d„Z
d„Zid,d„Z
id,d„Zd„Zd„Zd„Zd„Zd„Zd „Zd!„Zd"„Zd#„Zd$„Zd%„Zd&„Zd'„Zd(„Zd)d*d*d+„ZRS(-siMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36shttps://hdfilme.cx/smovie-searchsŽhttps://raw.githubusercontent.com/StoneOffStones/plugin.video.xstream/c88b2a6953febf6e46cf77f891d550a3c2ee5eea/resources/art/sites/hdfilme.pngticontlist_filterstcategorytgenretfiltertMoviesttitletfilme1turltSeriestserien1tTrailersttrailertsearchtSearchtsearch_itemtsearch_historysSearch historycCsztj|idd6dd6ƒitd6td6td6|jd6|_igd	6gd
6gd6|_i|_i|_dS(Ns  HDFilmeTV.ccthistoryshdfilmenet.cookietcookiet
use_cookietload_cookietsave_cookiet
cookiefileRtcountrytsort(Rt__init__tTruetCOOKIE_FILEt
defaultParamstfiltersCachetseasonCachet
cacheLinks(tself((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyR)*s
(	cCs|jƒrt|ƒSdSdS(Ni(tisdigittint(R0tn((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytc_int1s
cCstj||ƒS(N(Rt
getFullUrl(R0R((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyR57scCs.|ikr|j}n|jj|||ƒS(N(R,tcmtgetPage(R0tbaseUrltparamst	post_data((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyR7:scCs]|ikr|j}nidd6|jd6|jd6|jd6|d<|jj|||ƒS(Ns
hdfilme.cxtdomaintcookie_files
User-Agenttfull_url_handletcloudflare_params(R,R+t
USER_AGENTR5R6tgetPageCFProtection(R0R8R9R:((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyt	getPageCF?s/cCsR|j|ƒ}|dkrdS|jj|jƒ}t|i|d6|jd6ƒS(NttCookies
User-Agent(R5R6tgetCookieHeaderR+R	R?(R0RtcookieHeader((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyt
getIconUrlEs
cCsÓtdƒi}|jjj|ddtƒd}tdƒt|ƒtdƒ|jjj|dƒd}|jjj|d	ƒd}|jjj|d
ƒd}i|d6|d6|d
6}tt|ƒƒ|S(NsHDFilmeTV.getMovieDatainJssvar movieData = {t}is"movie data code: -----------------s-----------------sid : ([0-9]+?),isname : ['"]([^'^"]+?)['"]surl : ['"]([^'^"]+?)['"]tidtnameR(RR6RtgetDataBeetwenMarkerstFalsetgetSearchGroupststr(R0tdatat	movieDatatcodetmovie_idt
movie_namet	movie_url((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgetMovieDatainJSKs
"


cCstdƒd}|jjj|ddtƒd}tdƒt|ƒtdƒ|jjj|dƒd	}|j|jd
|dƒƒ}|S(NsHDFilmeTV.getTrailerUrlinJsRBsfunction load_trailer() {RGis$load_trailer code: -----------------s-----------------s.load\( "(.*?)",is" + movieData.id + "RH(RR6RRJRKRLR5treplace(R0RNROt
trailerUrlRP((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgetTrailerUrlinJS`s

"


cCsÕtdƒigd6gd6gd6|_t|ji|jd6|jd6dd6d	d
6ƒ}tdƒtt|ƒƒ|j|d|ƒ\}}|sœdSxid
d6dd6idd6dd6idd6dd6gD]F}g}tj	|d|dddƒ}g}tj	|dd!dƒ}|j
ƒd}xŠ|D]‚}	|j|	ƒ}
|jjj
|	dƒd}|dkr|q9n||kr9|}|j|dji|
d6||d6ƒq9q9Wt|j|dƒrÖ|ddkrÖ|j|djditdƒd6d|d6ƒqÖqÖWt|jdƒ}x›t|ƒD]}
t|jd|
ƒ}	|jd|
jid|jd|
dd6dd6ƒ|	jid|	dd6d d6ƒ|jdj|	ƒq@WdS("NsHDFilmeTV.fillFiltersCacheRR'R(s
user-agenttreferertgzipsaccept-encodings	text/htmltaccepts^^^^^^^^^^^^^^^^^^^^^^^Rsname="category"tmtkeysname="country"sname="sort"s<select class="orderby" t>s	</select>is<options	</option>RBsvalue=['"]([^'^"]+?)['"]Rs--All--s↓ tdesct	sort_types↑ tasc(s<optionR](RR-RR,R?tMAIN_URLRMRARtfindallR(tcleanHtmlStrR6RLtappendtlentinsertt_trangeR
tupdate(R0tcItemR9tstsRNRt
filterDatatoptionsDatat	old_valuetitemRtvaluetorderLentidx((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytfillFiltersCachets>
4
@!

1':9#cCs¦|jddƒ}td||fƒ|jj|gƒ}t|ƒdkr]|j|ƒn|jj|gƒ}t|ƒ}||d<||d<|j||ƒdS(NRRBs/HDFilmeTV.listFilters filter[%s] nextFilter[%s]iR(tgetRR-ReRstdicttlistsTab(R0RjtnextCategoryt
nextFilterRttabR9((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytlistFilters¤s

cCs_tdƒd}|jddƒ}|d}t|jii|jd6dd6d	d
6dd6d
d6|jd6|d6dd6d6ƒ}i}d|kr°i|dd6|d6}n9i|d6|dd6|dd6|dd6|dd6}|dtj|ƒ7}|j||didd6ƒ\}}	|s/dS|j	j
j|	dd tƒd}
d!j
|dƒ|
krst}
nt}
d"}|j	j
j|	d#d ƒd}	t
j|	d$d%ƒ}	xK|	D]C}|j	j
j|d&ƒd"}
|
d'krõ|d(}
n|j	j
j|d)ƒd"}|d'kr#qºn|j|j	j
j|d*d+ƒdƒ}|d'kr‚|j|j	j
j|d,d-ƒdƒ}n|j|ƒ}t|ƒ}|jitd.6|d6|d/6|j|ƒd6|j|
ƒd(6|d06ƒ|j|ƒ|d7}qºW|
s||kr[t|ƒ}|jitd.6td1ƒd/6|dd6ƒ|j|ƒndS(2NsHDFilmeTV.listItemsi2tpageiRs
User-AgentRYsAccept-Encodings	text/htmltAcceptt14scontent-lengths0application/x-www-form-urlencoded; charset=UTF-8scontent-typetOrigintReferertXMLHttpRequestsx-requested-withtheadertsearch_patternR\RRR'R(R_t?R:s	full-pagetloads<ul class="paginations</ul>sdata-page="{0}"is<ul class="products row">s<li>s</li>sdata-src=['"]([^'^"]+?)['"]RBRshref=['"]([^'^"]+?)['"]s<div class="title-product">s</div>s<h3 s</h3>tgood_for_favRR^s	Next page(RRtRR,R?Raturllibt	urlencodeRAR6RRJRKtformatR*RbRLRcRuRiR5RFtaddDirRgtaddMore(R0RjRwtitemsPerPageR{RR9tqueryRkRNtnextPaget
numOfItemsRoRRR^((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyt	listItems°sN

W9%"	

(+I
,csItdƒtˆjiˆjd6ˆjd6dd6dd6ƒ}ˆj|d|ƒ\}}|sddSˆjjj|d	ƒd
}td|ƒd}d}t	j
d
|t	jƒ}xH|D]@}	d|	dkrÜ|	d
}q¹d|	dkr¹|	d
}q¹q¹W|rÝ|dkrHtdƒˆj|ƒ}
d|
krÚˆj
||
ƒ}td|ƒ|
d|d<ˆj||ƒ\}}|s„dSˆjjj|ddƒd}ˆjjj|dƒd
}t|ƒ}|jitd6d|dtdƒfd6idd6t|jddƒidd6ƒd6dd6gd 6ƒˆj|ƒqÚq݈j|ƒ}t|ƒ}|jitd6d|dtdƒfd6idd6t|jddƒidd6ƒd6dd6gd 6ƒˆj|ƒntd!ƒˆj||ƒ\}}
|s	dSg}i}g}ˆjjj|
d"d#ƒ}x?|D]7}ˆjjj|d$d%ƒ}|r=|j|ƒq=q=Wx6|D].}ˆjˆjjj|d&d'ƒdƒ}tj
|d(d)ƒ}xè|D]à}ˆj|ƒ}ˆjˆjjj|d*ƒd
ƒ}ˆjjj|d+ƒd
}|jd,ƒs4qÉn||krZ|j|ƒg||<ni|d6t|jddƒi|d-6|d.6ƒd6dd6}||j|ƒqÉWqWt	jd/d0t	jƒ}|d}ˆjjj|dd1ƒd
}|dkrNˆjjj|d2d3tƒd
}|dkrN|jd|dƒj ƒ}qNny|j!d4‡fd5†ƒWnt"k
r…t#ƒnXx¼|D]´}|}|dkrÒ|d6d7|j$d8ƒ|j$d8ƒf7}n0t%|ƒdkr|d6d9|j$d8ƒ7}nt|ƒ}|jitd6|d6||d 6ƒˆj|ƒqWdS(:NsHDFilmeTV.exploreItems
user-agentRXRYsaccept-encodings	text/htmlRZRs data-movie-id=['"]([^'^"]+?)['"]ismovieId ------->RBsV<a[^>]*?class="btn btn-xemnow pull-right"[^>]*?href=['"]([^'^"]+?)['"][^>]*?>(.*?)</a>tTraileritSTREAMsjavascript:s:HDFilmeTV.exploreItem. Find trailer url in javascript codeRHstrailerUrl: "%s" s<iframes	</iframe>ssrc=['"]([^'^"]+?)['"]R…s%s [%s]RRRIs&amp;t&tneed_resolveturlssLHDFilmeTV.exploreItem. Find url of page with links - often url + '/deutsch' s<section class="box">s
</section>s<i class="fa fa-chevron-right">s</ul>s<i s</div>s<li>s</li>shref=['"]([^'^"]+?)['"]s"data-episode-id=['"]([^'^"]+?)['"]thttpt	episodeIdtmovieIdsstaffel\s*[0-9]+?$tflagssstaf[f]+?el-([0-9]+?)-sstaffel\s*([0-9]+?)$t
ignoreCaseR\cs
ˆj|ƒS(N(R4(Ro(R0(sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyt<lambda>Nss: ss%se%sise%s(&RRR,R?RaRAR6RRLtreRbtSRTRWRJRuRiRKRgR	RUtaddVideoR5tgetAllItemsBeetwenMarkerstextendRct
startswithRdtcompilet
IGNORECASER*tsubtstripR(t	ExceptionRtzfillRe(R0RjR9RkRNR—RVtlinksPageUrltlinkstlROttrailer_datattmptlinkspage_datatepisodesTabt
episodesLinkstpartstpartt	data_parttservert
serverNamet
serverDatatlinktepisodeNamet
episodeUrlR–tbaseTitleReObjt	baseTitletseasontepisodeR((R0sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytexploreItemës¢
4


jj


(
%

>
 "!

-&cCstd|ƒ|jdgƒS(NsHDFilmeTV.getLinksForVideo [%s]R”(RRt(R0Rj((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgetLinksForVideoYsc
	CsCtd|ƒg}t|tƒr—d|jkrPtd|ƒ|jj|ƒSd|jkro|jd}nd|jkrŽ|jd}q—d}nt|ji|jd6|d6d	d
6dd6ƒ}|j	||ƒ\}}t|ƒ|sôgS|j
jj|d
dt
ƒd}t|ƒdkr?|dkrN|j||dƒ}n|j||d|dƒ}td|ƒ|j||ƒ\}}	|r?|j
jj|	ddt
ƒd}t|idd6|jƒd6|jƒd d6|jd6ƒ}d|jd<|jt|dt
dtddƒƒtd |ƒq?n|S(!NsHDFilmeTV.getVideoLinks [%s]Rs--------> Trailer Url: %sR–R—RBs
user-agentRXRYsaccept-encodings	text/htmlRZs!$( "#play-area-wrapper" ).load( "t"iRƒt/svideo link---->swindow.urlVideo = "s*/*R|RiÿÿÿÿR~s
User-Agenti
tiptv_m3u8_seg_download_retrytcheckExttcheckContenttsortWithMaxBitrateiÿɚ;s------->(Rt
isinstanceR	tmetatuptgetVideoLinkExtRR,R?RAR6RRJRKReR5R7t
getMainUrlRŸR
R*(
R0tvideoUrlturlTabt
episode_idRQR9RkRNRR«((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyt
getVideoLinks]s>	1
"">
%
cCstdƒtj|ƒS(NsHDFilmeTV.getFavouriteData(Rtjsontdumps(R0Rj((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgetFavouriteData–s
cCsWtdƒg}y(ttj|ƒƒ}|j|ƒ}Wntk
rRtƒnX|S(NsHDFilmeTV.getLinksForFavourite(RRRÍRR½R¥R(R0tfav_dataR¨Rj((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgetLinksForFavouritešs

cCsUtdƒyttj|ƒƒ}Wntk
rCi}tƒnX|j|ƒtS(Ns&HDFilmeTV.setInitListFromFavouriteItem(RRRÍRR¥RR‰R*(R0RÐR9((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytsetInitListFromFavouriteItem£s


cCsWtd|||fƒt|ƒ}tj|ƒ|d<|j|d<|j|dƒdS(NsFHDFilmeTV.listSearchResult cItem[%s], searchPattern[%s] searchType[%s]R‚Rtexplore_item(RRuR†tquotet
SEARCH_URLR(R0Rjt
searchPatternt
searchType((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytlistSearchResult­s

cCsÏtd|ƒg}|j|d|jƒ\}}|s=|S|jjj|ddƒd}|j|jjj|dƒdƒ}|dkr¢|jd	dƒ}n|j	|jjj|d
dt
ƒdƒ}|dkræ|d}n|j	|jjj|d
dt
ƒdƒ}|jjj|ddt
ƒd}|jjj|dddt
ƒ}idd6dd6dd6dd6dd6dd6dd 6d!d"6}	i}
x¹|D]±}|jd#ƒ}t
|ƒd$krÌqŸn|j	|dƒjd%dƒjƒ}|j	|dƒ}
xI|	D]A}||kr|	|dkr:|
d&7}
n|
|
|	|<PqqWqŸW|jjj|d'ƒd}|dkr‰||
d(<ni|j	|ƒd6|d)6idd6|j|ƒd6gd*6|
d+6gS(,Ns HDFilmeTV.getArticleContent [%s]Rs<div id="main">s<div class="row">issrc=['"]([^'^"]+?)['"]iRBRs <b class="text-blue title-film">s</b>Rs<div class="caption">s</div>s"<div class="movie-info pull-left">s<ps</p>t
caseSensitiveRtGenretratingtIMDBtratedt	BewertungtyearsVeröffentlichungsjahrtdirectort	RegisseurtactorstSchauspielerR'tStaattdurationtZeits</span>it:s IMDBsAufrufe[^>]*?([0-9]+?)[^0-9]tviewsttexttimagest
other_info(RR7R,R6RRJR5RLRtRcRKRžtsplitReRUR¤RF(R0RjtretTabRkRNRRR^tdescDatat
descTabMapt	otherInfoRoR\tvaltdKeyRè((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pytgetArticleContent´sP%+
+"!


%


iRBcCstdƒtj|||||ƒ|jjddƒ}|jjddƒ}|jjddƒ}|jjddƒ}td||fƒg|_|dkr½|j|jidd6ƒn1|dkr$|d	kräd
}	d}
n'|d
krÿd}	d}
nd}	d}
|j	|j|
|	ƒnÊ|dkrF|j
|jd
ƒn¨|d
kre|j|jƒn‰|dkr±t|jƒ}|j
itd6dd6ƒ|j|||ƒn=|dkrç|jidd6dd6dtdƒƒntƒtj|||ƒdS(NshandleService startRIRBRtmodeRsKhandleService: |||||||||||||||||||||||||||||||||||| name[%s], category[%s] RRR'R(t
list_itemsRÓRtsearch_next_pageRR R!R^sType: (ssearchRö(RRt
handleServicetcurrItemRttcurrListtNoneRvtMAIN_CAT_TABRzRR¼RuRiRKRØtlistsHistoryRgRtendHandleService(R0tindextrefreshRÖR×RIRRôRRxRwRj((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyR÷äs@
			*N(t__name__t
__module__R?RaRÕtDEFAULT_ICONRgR*RûR)R4R5RúR7RARFRTRWRsRzRR¼R½RÌRÏRÑRÒRØRóR÷(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyRs:
000%$							0		;	n		9				
		0tIPTVHostcBseZd„Zdd„ZRS(cCs tj|tƒtdgƒdS(NtfavouriteTypes(RR)RR*(R0((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyR)sicCstj}g}|j|ƒs.t|d|ƒS|jj|}|ddkrv|jddƒdkrvt|d|ƒS|jj|ƒ}x~|D]v}|jddƒ}|jddƒ}|jd	gƒ}	|jd
dƒ}
|jtd|d|d	|	d|
ƒƒqWttj	d|ƒS(NRpttypetvideoRRBRÓRRéRêRëtrichDescParams(
RtERRORtisValidIndexthostRùRtRóRdRtOK(R0tIndextretCodetretlistRjthListRoRRéRêt
othersInfo((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyRós	(
,(RRR)Ró(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyRs	(!t7Plugins.Extensions.IPTVPlayer.components.iptvplayerinitRRgt.Plugins.Extensions.IPTVPlayer.components.ihostRRRRt-Plugins.Extensions.IPTVPlayer.tools.iptvtoolsRRRRt-Plugins.Extensions.IPTVPlayer.tools.iptvtypesR	t2Plugins.Extensions.IPTVPlayer.libs.urlparserhelperR
t"Plugins.Extensions.IPTVPlayer.libsRt*Plugins.Extensions.IPTVPlayer.libs.e2ijsonRt
json_loadsR›R†tbase64RÍR¥t
simplejsontcopyR
RRR(((sL/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/hosthdfilmetv.pyt<module>s$""
	ÿó