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íddlmZmZddlmZmZddlmZm	Z	m
Z
ddlmZddl
mZddlmZddlmZddlZdd	lmZdd
lmZd„Zdefd
„ƒYZdefd„ƒYZdS(iÿÿÿÿ(tTranslateTXTtSetIPTVPlayerLastHostError(t	CHostBasetCBaseHostClass(tprintDBGtprintExct
MergeDicts(tgetDirectM3U8Playlist(tstrwithmeta(tph(tloadsN(tsha1(t	timedeltacCsdS(Nshttps://7tv.de/((((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytgettytulstC7tvDecBsÔeZd„Zidd„Zdd„Zd„Zd„Zd„Zd„Z	d„Z
d„Zd	„Zd
„Z
d„Zd„Zd
„Zd„Zd„Zdd„Zed„Zd„Zdddd„ZRS(cCsÈtj|idd6dd6ƒ|jjddƒ|_i|jd6td6td	6td
6|jd6|_d|_d
|_	i|_
iidd6dd6dd6d6idd6dd6dd6d6|_dS(Ns7tv.dethistorys
7tv.de.cookietcookietbrowsertchrometheadert
use_cookietload_cookietsave_cookiet
cookiefileshttps://www.7tv.de/s5https://s.p7s1.io/xfiles/7tv/android-icon-192x192.pngskabel eins Dokut
kabel1dokut	ProSiebentpro7t	Kabeleinstkabel1ttitlesi
iitorder(Rt__init__tcmtgetDefaultHeadertHTTP_HEADERtTruetCOOKIE_FILEt
defaultParamstMAIN_URLtDEFAULT_ICON_URLt
cacheLinkstchannelsMap(tself((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRs2			cCs4|ikrt|jƒ}n|jj|||ƒS(N(tdictR%R tgetPage(R*tbaseUrlt	addParamst	post_data((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyR,'scCstj||jddƒ|ƒS(Nt s%20(Rt
getFullUrltreplace(R*turltcurUrl((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyR1+scCsõtdƒ|j|jƒƒ\}}|s/dS|j|jjdƒidd6dd6|jdƒd6idd6d	d6|jd
ƒd6idd6dd6|jƒd6id
d6tdƒd6td6idd6tdƒd6g}|j	||ƒdS(NsC7tvDe.listMainR3tprogramstcategorys
Sendungen A-Zttitles/sendungen-a-ztmissedsSendung verpassts/sendung-verpassttchannelstSendertsearchtSearchtsearch_itemtsearch_historysSearch history(
RR,t
getMainUrlt
setMainUrlR tmetaR1t_R#tlistsTab(R*tcItemtnextCategorytststdatatMAIN_CAT_TAB((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistMain.s
!!cCstdƒ|j|dƒ\}}|s-dS|j|jjdƒtj|ddddƒd	}tj|ddddƒ}xjt|d	ƒD]Y\}}tj	|dƒj
d
d	ƒd}tj|ƒ|jd|<||jd|<qŽWtj|ddddƒd	}tj|ddddƒ}xc|D][}tj|ƒ}	|j
tj	|dƒƒ}
|jt|i|d6|
d6|	d6ƒƒq,WdS(NsC7tvDe.listMissedR3s<ult>ssite-nav-submenus</ul>tflagsiis<lis</li>threft/iÿÿÿÿRRstab-lists	data-hrefR6R7(s<ulRJssite-nav-submenu(s<liRJ(s<ulRJstab-list(s<liRJ(RR,R@R RAR	tfindtfindallt	enumeratetgetattrtrsplitt
clean_htmlR)R1taddDirR(R*RDRERFRGttmptidxtitemtchannelR7R3((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyt
listMissed;s"
"
cCsïtdƒ|j|dƒ\}}|s-dS|j|jjdƒtj|ddddƒd	}tj|ddddƒ}xj|D]b}tj|ƒ}|j	tj
|tjƒd	ƒ}|jt
|i|d6|d6|d
6ƒƒq…WdS(NsC7tvDe.listChannelsR3s<ulRJt	brandgrids</ul>RKiis<lis</li>R6R7(s<ulRJRZ(s<liRJ(RR,R@R RAR	RNRORSR1R;tARTR(R*RDRERFRGRWR7R3((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistChannelsOs

"cCsÌtdƒ|j|dƒ\}}|s-dS|j|jjdƒtj|ddddƒd	}|jd
ƒd }xO|D]G}g}tjtj|dd
ddƒd	ƒ}tj	|dddtj
ƒ}x®td	t|ƒdƒD]”}	|j
tj||	d	dƒƒ}
tj||	ƒ}|
rX|jt|i|
d6|d6|d6ƒƒqè|jt|i|d6|d6ƒƒqèW|s™|jj|ƒq}|jt|idd6|d6|d6ƒƒq}WdS(NsC7tvDe.listProgramsMenuR3s<navRJs
tvshow-navs</nav>RKiis</ul>iÿÿÿÿs<h3s</h3>s<as</a>is	data-hrefR7R6t	sub_items(s<navRJs
tvshow-nav(s<h3RJ(s<aRJ(RR,R@R RAR	RNtsplitRSROtSTART_StrangetlenR1RQtappendRtcurrListtextendRT(R*RDt
nextCategory1t
nextCategory2RFRGtsDatatsubItemstsTitleRVR3R7((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistProgramsMenu\s(

(#.(c
Cstdƒ|j|dƒ\}}|s-dS|jjd}y»t|ƒ}x’|djƒD]€\}}|dkr~d}n|r]d|jƒ|f}|d|}	|jt|i|d6|	d6|d	6|d
6ƒƒq]q]W|j	j
dd„ƒWntk
rtƒnXdS(
NsC7tvDe.listABCR3tfacett#s0-9s%s (%s)s/(letter)/%sR6R7tlettertkeycSs|djdƒS(NRmsutf-8(tdecode(tk((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyt<lambda>}s(
RR,R RAt
json_loadst	iteritemstupperRTRRctsortt	ExceptionR(
R*RDRERFRGtcUrlRmtvalueR7R3((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistABCps"
	9
c
CsKtdƒ|j|dƒ\}}|s-dS|jjd}yït|ƒ}xÜ|dD]Ð}|ddkrv|}n|}y|j|dddƒ}Wntk
r´d}nXd	j|jd
gƒƒ}	|j	t
|itd6|d6|j|dƒd6|d
6t
|dƒd6|	d6ƒƒqWWWntk
rFtƒnXdS(NsC7tvDe.listABCItemsR3tentriesttypettvShowtimagesits | trelatedProviderstgood_for_favR6ticonR7tdesc(RR,R RARrtgetFullIconUrlRvtjointgetRTRR#R1tstrR(
R*RDRERFRGRwRWR6RR‚((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistABCItemss&
	

_
csStdƒi}ˆj|dƒ\}}|s3dSˆjjd}yñt|ƒ}t|djƒƒ}|jd‡fd†ƒx¯|D]§}|d|}	ˆjdj	||ƒ}
g}x7|	D]/}|d|dg}
y(|
j
ttd	|d
dƒƒƒWnt
k
rnX|dd
kr=d|dd}n||d7}ˆj|ddƒ}ˆj|dƒ}t|itd6|d6|d6|d6dj|
ƒd6ƒ}|ddkrÚd|d<|j
|ƒqÂ||d<|j
|ƒqÂWt|ƒrˆˆjt|idd6|d6|
d6ƒƒqˆqˆWWnt
k
rNtƒnXdS(NsC7tvDe.listMissedItemsR3RzRncsˆjdj|dƒS(NRi(R)R…(Rp(R*(sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRqsRR7tairtimetsecondstdurationiètsubTypetepisodes%s: tmetadatattvShowTitles?fake=need_resolve.jpegR€Rs | R‚R{tvideoR6R](RR,R RARrtlisttkeysRuR)R…RbR†RRvRƒR1RR#R„RaRTR(R*RDREt	titlesMapRFRGRwR9RXtcDataRiRhRWR‚R7RR3tparams((R*sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistMissedItems’sF


(
;

6
cCstdƒ|d|_dS(NsC7tvDe.listSubItemsR](RRc(R*RD((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistSubItems¹s
cCs`tdƒ|j|dƒ\}}|s-dS|j|jjdƒ|j|||ƒ|_dS(NsC7tvDe.listItemsR3(RR,R@R RAtgetItemsRc(R*RDRERFRG((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyt	listItems½s
c
	Cs7g}tjtj|d%dddƒdƒ}tj|d&d
dtjƒ}xätdt|ƒdƒD]Ê}||}tj|tjƒd}|j	tj
|dƒƒ}	tjtj|d'dddƒdƒ}
tjtj|d(dddƒdƒ}|dkrB|jddƒdjddƒj
dƒjƒjdƒ}n|
rQ|
gng}
|
jtjtj|d)dddƒdƒƒ|rŸd||f}nt|itd6|d6|j|ƒd6|	d6dj|
ƒd 6ƒ}d!||dkr|jid"d#6ƒn|ji|d$6ƒ|j|ƒqeW|S(*Ns<spanRJsformat-header_titles</span>RKiis<articletteasers
</article>isdata-srcs<divtcaptions</div>s<h5R7s</h5>R~RMiÿÿÿÿt-R0sutf-8s<ps</p>s%s: %sR€R3Rs[/br]R‚s
class-clipRR{R6(s<spanRJsformat-header_title(s<articleRJR™(s<divRJRš(s<h5RJstitle(s<pRJ(R	RSRNROR_R`RaR;R[RƒRQRRR2RoR7tencodeRbRR#R1R„tupdate(
R*RDRERGtretListRiRVRWR3RR‚R7R”((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyR—Äs*(
((=/DcCsòtdƒ|j|dƒ\}}|s-dS|j|jjdƒtj|ddddƒd}yÿtd|ƒ}xè|D]à}|j|j	d	d
ƒƒ}g}y$|j
ttd|dƒƒƒWnt
k
râtƒnXy|j
|d
dƒWnt
k
rtƒnX|jt|itd6|dd6|d6|d6dj|ƒd6ƒƒq}WWnt
k
r}tƒgSX|j	dƒsîtj|d%ƒd}|s­dStj|d&dddƒd}tj|d'ddtjƒ}x°tdt|ƒdƒD]–}	|jtj||	ddƒƒ}
d |jj|
tƒkrMqn|j||	ƒ}|jt|itd6td6|d!6|d6|
d6ƒƒqWt|jƒdkrî|jdd"d#krî|jjƒ}|j|d$ƒqîndS((NsC7tvDe.exploreItemR3svar contentResources = [s];RKiis[%s]tposterR~R‰RŠR™tdescriptionR€R7t	item_dataRs[/br]R‚t
sub_menu_items<articleRJs
class-clips<ulsformat-nav-lists</ul>s<as</a>iRLs7tv.deR6R{Rtexplore_item(s<articleRJs
class-clip(s<ulRJsformat-nav-list(s<aRJ( RR,R@R RAR	RNRrRƒR…RbR†RRvRtaddVideoRtFalseR„ROR_R`RaR1RQt
getBaseUrlR#tcleanHtmlStrRTRctpopR˜(R*RDRERFRGRURWRR‚RVR3R7((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytexploreItemÚsL

$

N
#=,cCsS|jdtj|ƒ|fƒ}t|idd6|d6ƒ}|j|dƒdS(Ns?/7tvsearch/search/(query)/%s/(type)/%s/(offset)/{0}/(limit)/{0}tsearch_nextR6R3R£(R1turllibtquoteRtlistSearchResultNext(R*RDt
searchPatternt
searchTypeR3((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytlistSearchResultÿs"cCs©d}|jddƒ}|dj|||ƒ}t|i|d6ƒ}|j||ƒt|jƒ|kr¥|jt|itd6tdƒd6|dd6ƒƒndS(	NitpageiR3R€s	Next pageR7i(	R…tformatRR˜RaRcRTR¥RB(R*RDREt	ITEMS_NUMR±R3R”((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyR­sc

Cs;g}d|kr“|j|dƒ\}}|s5dS|jjd}tj|ddddƒd}ytd|ƒd}Wq§tk
rq§Xn|d}|d}y6|jd	ƒ}|rÒtt	d
ƒƒn|d}Wntk
røt
ƒgSXy#xcttfD]U}	|j
||d|	ƒ}
|
r	|jt|
ddd
tdtddƒƒPq	q	WxŒttfD]~}	|j
||d|	ƒ}xS|D]K}|ddkr”|jid|dd6|dd6|dd6ƒq”q”W|roPqoqoW|r|rgS|jdtdd„ƒWntk
r6t
ƒnX|S(NR¡R3svar contentResources = [s];RKiis[%s]tdrmsLink protected with DRM.tidsapplication/x-mpegURLtcheckExttcheckContenttsortWithMaxBitrateiÿɚ;s	video/mp4tmimetypes[MP4] bitrate: %stbitratetnametreverseRncSst|dƒS(NRº(tint(Rp((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRq5s(R,R RAR	RNRrRvR…RRBRR¥R#t
doGetLinksRdRRbRu(
R*RDt	source_idtlinksTabRFRGtclient_locationR´tvideo_idtitthlsLinkstmp4LinksRW((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytgetLinksForVideo
sP



-
9

cCs?g}y|r$d}d}d}nd}d}d}d||||f}	|j|	ƒ\}
}|
skgSt|ƒtdƒt|ƒ}d}xK|d	D]?}
|
d
|krœt|ƒt|
dƒkrœ|
d}qœqœW|dkrïgS|d
 tdjt|ƒ|||||gƒjdƒƒjƒ}d|||||f}	|j|	ƒ\}
}|
skgSt|ƒtdƒt|ƒ}|d}|d
 tdj|||||t|ƒ||gƒjdƒƒjƒ}d|t	j
i|d6|d6|d6|d6|d6t|ƒd6ƒf}d}xæ|d
kr|d7}|d
krŸdjt	j|ƒƒ}t
|jƒ}t
|dƒ|d<||dd<n|j}|}|j||ƒ\}
}|
sÐgSt|ƒtdƒt|ƒt|ƒ}|jdƒdkr1Pq1q1W|d	SWntk
r:tƒnX|S(Nthbbtvt 01ree6eLeiwiumie7ieV8pahgeiTui3Bsseventv-webs01!8d8F_)r9]4s[qeuXfP%R~sahttp://vas.sim-technik.de/vas/live/v2/videos/%s?access_token=%s&client_location=%s&client_name=%ss++++++++++++++++++++iÿÿÿÿtsourcesR¹Rµiisutf-8svhttp://vas.sim-technik.de/vas/live/v2/videos/%s/sources?access_token=%s&client_location=%s&client_name=%s&client_id=%st	server_ids>http://vas.sim-technik.de/vas/live/v2/videos/%s/sources/url?%staccess_tokent	client_idRÁtclient_namet
source_idsis1http://savansec.de/browse.php?u={0}&b=0&f=noreferRtReferertstatus_codei(R,RRrR½RR„R†Rœt	hexdigestR«t	urlencodeR²R¬R+R%R…RvR(R*RÂRÁR¹twebRÀRËtsaltRÍtjson_urlRFt	json_dataR¿tstreamtclient_id_1RÊRÌturl_api_urlttriesR3R”((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyR¾;s|	

,D


J
	



cCsÚtd|ƒt|jjƒƒrÅxŸ|jD]‘}xˆtt|j|ƒƒD]m}||j||dkrM|j||djdƒsºd|j||d|j||d<qºqMqMWq-Wnidd6|d6gS(NsC7tvDe.getVideoLinks [%s]R3R»t*tdirect(RRaR(R‘R`t
startswith(R*tvideoUrlRnRV((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyt
getVideoLinks†s 9iR~cCs{tdƒtj|||||ƒ|jjddƒ}|jjddƒ}td||fƒg|_|dkr—|jidd6dd6dƒnÍ|dkr¼|j|jdd	ƒn¨|d	krÞ|j	|jd
ƒn†|d
kr|j
|jdƒnd|dkr|j|jƒnE|dkrA|j|jdƒn#|dkrc|j
|jdƒn|d
kr…|j|jdƒnß|dkr§|j|jdƒn½|dkrÉ|j|jdƒn›|dkr|jt|jitd6dd6ƒ||ƒn_|dkr'|j|jdƒn=|dkr]|jidd6dd6dtdƒƒntƒtj|||ƒdS(NshandleService startR»R~R6s*handleService: ||| name[%s], category[%s] R{t
list_itemsR5tlist_abctlist_abc_itemsR£R]R9R8tlist_missed_itemsR;R=RªR>RR‚sType: (RRt
handleServicetcurrItemR…RctNoneRIRjRyR‡R–R˜R©R\RYR•R°RR¥R­tlistsHistoryRBRtendHandleService(R*tindextrefreshR®R¯R»R6((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRä’sD
	!0*N(t__name__t
__module__RRæR,R1RIRYR\RjRyR‡R•R–R˜R—R©R°R­RÆR¥R¾RßRä(((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRs(		
		
				'				%			.K	tIPTVHostcBseZd„Zd„ZRS(cCstj|tƒtgƒdS(N(RRRR#(R*((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRÈscCs1g}|jdƒ|jdƒ|jd	ƒ|S(
Nt	SendungenR²sGanze FolgenRŒtClipstclip(Rîsformat(sGanze Folgensepisode(RïRð(Rb(R*tsearchTypesOptions((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pytgetSearchTypesËs



(RëRìRRò(((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyRíÇs	(t7Plugins.Extensions.IPTVPlayer.components.iptvplayerinitRRBRt.Plugins.Extensions.IPTVPlayer.components.ihostRRt-Plugins.Extensions.IPTVPlayer.tools.iptvtoolsRRRt2Plugins.Extensions.IPTVPlayer.libs.urlparserhelperRt-Plugins.Extensions.IPTVPlayer.tools.iptvtypesRt"Plugins.Extensions.IPTVPlayer.libsR	t*Plugins.Extensions.IPTVPlayer.libs.e2ijsonR
RrR«thashlibRtdatetimeRR
RRí(((sH/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/hosts/host7tvde.pyt<module>s	ÿ¯