Files
xstreamDownloader/xstream/sites/__pycache__/megakino.cpython-311.pyc
T

96 lines
26 KiB
Plaintext
Raw Normal View History

2026-07-06 14:27:51 +02:00
§
ˆJjùIãóDddlZddlZddlmZddlmZddlmZddlm Z ddl
m Z ddl m
Z
ddlmZd Zd
Zd Ze
¦« d ez¦«d
krdZejdez¦«e
¦« dezdzd¦«Ze
¦« dezdz¦«Ze
¦« dez¦«ZdezdzZedzZedzZedzZdZdZdZdZ dZ!dZ"dZ#d(d „Z$d)d!„Z%d"„Z&d#„Z'd$„Z(d(d%„Z)d&„Z*d'„Z+dS)*éN)ÚParameterHandler)ÚcRequestHandler)Úlogger)ÚcParser)Ú cGuiElement)ÚcConfig)ÚcGuiÚmegakinoÚMegakinoz megakino.pngÚglobal_search_ÚfalseFz4-> [SitePlugin]: globalSearch for %s is deactivated.Úplugin_z.domainz
megakino8.comÚ_statusúhttps://ú/z
kinofilme/zfilms/zserials/có(tjdtz¦«tjd¦« d¦«t
¦«}| dt¦«t¦« 
tt¦« 
d¦«td¦«|¦«t¦« 
tt¦« 
d¦«td¦«¦«| dt¦«t¦« 
tt¦« 
d ¦«td¦«|¦«| dt ¦«t¦« 
tt¦« 
d
¦«td¦«|¦«t¦« 
tt¦« 
d ¦«td ¦«¦«t¦« 
tt¦« 
d
¦«td¦«¦«t¦« 
tt¦« 
d¦«td¦«¦«t¦« ¦«dS)NzLoad %sé'úxstream.megakino.lastSearchTextÚsUrli%wÚ showEntriesi$wÚ
showLatesti&wi/wi*wÚ showGenreiOwÚshowCollectioni8wÚ
showSearch)rÚinfoÚ SITE_NAMEÚxbmcguiÚWindowÚ
clearPropertyrÚsetParamÚURL_KINOr Ú addFolderrrÚgetLocalizedStringÚSITE_IDENTIFIERÚ
URL_MOVIESÚ
URL_SERIESÚsetEndOfDirectory)Úparamss úR/home/matthiasberner/Schreibtisch/kodi/xstreamDownloader/xstream/sites/megakino.pyÚloadr*)s#Ý
„K  „NÔ×'Ð(IÑ
Ñ
Ô
€FØ
‡OOFF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWdÑeÐgmÑF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWcÑ
‡OOFF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWdÑeÐgmÑ
‡OOFF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWdÑeÐgmÑF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWbÑF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWgÑF„F×Ò•[¥¡¤×!=Ò!=¸eÑ!DÔ!DÅoÐWcÑF„F×ÒÑÔÐÐÐócótj¦«}t|¦«}d|_| d|¦«| dd¦«| dd¦«| dt¦«| ¦«}|rTd|vrOt
|¦«d kr;tjd
¦«ttd z¦«}d|_| d|¦«| dd ¦«| dd¦«| d|¦«| d
d¦«| ¦«t|¦«}d|_| d|¦«| dd¦«| dd¦«| dt¦«| ¦«}|rt
|¦«d kr|ndS)Hilfsfunktion zum Abrufen von HTML-Inhalten mit yg_token Cookie-Bypass.
Megakino liefert bei erstem Hit ein JS-Stub das einen Token-Endpoint hittet.
Token setzt Cookie, bei zweitem Request kommt echtes HTML.
UA-Sticky: Alle 3 Requests im Token-Flow MUESSEN identischen UA nutzen
(Cookie an UA gebunden, Anti-Bot prueft UA-Konsistenz zwischen Token+HTML).
Drum einmal RandomUA() aufrufen und an alle 3 Requests weitergeben.
rz
User-AgentÚAcceptzJtext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8zAccept-Languagezde-DE,de;q=0.9,en;q=0.8ÚRefererzyg=tokenièz,[megakino] Token-Stub erkannt, hole Token...zindex.php?yg=tokenz*/*zX-Requested-WithÚXMLHttpRequestN) rÚRandomUAÚ cacheTimeÚaddHeaderEntryÚURL_MAINÚrequestÚlenrr)ÚurlÚ sessionUAÚoRequestÚ sHtmlContentÚ
oTokenRequestÚ oRequest2s r)ÚgetHtmlContentr<:s
õ Ô*€IݘsÑ#€HØ€HÔØ ×Ò˜L¨)Ñ ×Ò˜HÐ&rÑ ×ÒÐ-Ð/HÑ ×Ò˜I¥xÑ×%€Lðñ
 2µs¸<Ñ7HÔ7HÈ4Ò7OÑ7OÝŒ Ð'­Ð3GÑ(GÑHˆ
Ø"#ˆ
ÔØ×$ \°9Ñ×$ X¨uÑ×$Ð%6Ð8QÑ×$ Y°Ñ×$Ð%7Ð9IÑ×ÒÑÔÐõ$ CÑ(ˆ ؈ ÔØ× Ò  ¨yÑ× Ò  Ð+wÑ× Ò Ð!2Ð4MÑ× Ò  ­HÑ ×*ˆ à N­ Ñ,=Ô,=ÀÒ,DÐ,Dˆ<ˆ<È$ÐNr+cóút¦«}tt¦«}|s"t¦« ¦«dSd}t j||¦«\}}|s"t¦« ¦«dSd}t j||¦«\}}|s"t¦« ¦«dS|D]•\}}| d¦«rt  d¦«|z}| 
d|¦«t¦«  t| 
¦«td¦«|¦«Œ–t¦« ¦«dS)Nzh<div class="side-block__title">Genres</div>.*?<ul class="side-block__content side-block__menu"(.*?)</ul>zhref="([^"]+)">([^<]+)</a>rrr©rr<r3r ÚshowInforÚparseSingleResultÚparseÚ
startswithÚrstripr r"rÚstripr$r'©r(r9ÚpatternÚisMatchÚ
sContainerÚaResultrÚsNames r)rrdsXÝ
Ñ
Ô
€FÝ!¥(Ñ+€LØ ðÝ ŒŠÑÔÐØˆðz€GÝ3°LÀ'Ñ€GˆZØ ðÝ ŒŠÑÔÐØˆà+€GÝ”} Z°Ñ€GˆWØ ðÝ ŒŠÑÔÐØˆàð]ð] ˆˆeØ ?Š?˜3Ñ Ô ð—?? '¨$Ñ.ˆŠ˜ Ñ Œ×Ò U§[¢[¡]¤]µOÀ]ÑSÐU[ÑF„F×ÒÑÔÐÐÐr+cóút¦«}tt¦«}|s"t¦« ¦«dSd}t j||¦«\}}|s"t¦« ¦«dSd}t j||¦«\}}|s"t¦« ¦«dS|D]•\}}| d¦«rt  d¦«|z}| 
d|¦«t¦«  t| 
¦«td¦«|¦«Œ–t¦« ¦«dS)Nzw<div class="side-block__title">Sammlung</div>.*?<div class="side-block__content collection-scroll">(.*?)</div>\s*</div>zIhref="([^"]+)"[^>]*>.*?<div class="custom-collection-title">([^<]+)</div>rrrr>rEs r)rrsXÝ
Ñ
Ô
€FÝ!¥(Ñ+€LØ ðÝ ŒŠÑÔÐØˆðI€GÝ3°LÀ'Ñ€GˆZØ ðÝ ŒŠÑÔÐØˆàZ€GÝ”} Z°Ñ€GˆWØ ðÝ ŒŠÑÔÐØˆàð]ð] ˆˆeØ ?Š?˜3Ñ Ô ð—?? '¨$Ñ.ˆŠ˜ Ñ Œ×Ò U§[¢[¡]¤]µOÀ]ÑSÐU[ÑF„F×ÒÑÔÐÐÐr+códt¦«}tt¦«}|s"t¦« ¦«dSt j|d¦«\}}|s"t¦« ¦«dSd}t j||¦«\}}|s"t¦« ¦«dSt|¦«}d}|D]\}} }
} d} t j|
d¦«\}
}|
r|} tj
dd|
¦«  ¦«}|  dd ¦«  d
d ¦«  d d
¦«  ¦«}|  
d¦«}|  
d¦«rt d¦«| z} t|t |rdnd¦«}| |rdnd¦«|r'| |  ¦«¦«| r| | ¦«| r'| |   ¦«¦«| d| ¦«| d|¦«| d| r|   ¦«nd¦«| r| d| ¦«t¦« ||||¦«Œt¦« |rdnd¦«t¦« ¦«dS)u Zeigt die 'Zuletzt hinzugefuegt' Sektion von der Megakino-Homepage.
Andere HTML-Struktur als poster grid-item: 'listItem' Container ohne Cover-Bilder.
Cover kommt nicht aus dem Megakino-HTML (gibts nicht in dieser Sektion) — TMDB
handelt das via Title+Year automatisch.
NuV<h2 class="sect__title[^"]*"[^>]*>Zuletzt hinzugefügt</h2>(.*?)(?=<section class="|$)zç<div class="listItem">\s*<div class="listItem-badges">\s*<div class="listItem-badge listItem-quality">([^<]+)</div>.*?<div class="listItem-title">\s*<a href="([^"]+)">([^<]+)</a>\s*</div>\s*<div class="listItem-genre">([^<]+)</div>FÚz \((\d{4})\)z\s*\(\d{4}\)\s*$ú&amp;ú&#039;ú&quot;ú"z /serials/rÚ showEpisodesÚ showHostersÚtvshowÚmovieÚentryUrlrJÚsDescÚsYearÚtvshowsÚmovies)rr<r3r r?rr@rAr5ÚreÚsubrDÚreplacerBrCrr$Ú setMediaTypeÚ
setQualityÚsetYearÚsetDescriptionr r"ÚsetViewr')r(r9rGrHrFrIÚtotalÚisTvshowÚsQualityrÚsTitleÚsGenrerZÚisYearÚaYearrJÚ oGuiElements r)rrœsõ Ñ
Ô
€FÝ!¥(Ñ+€LØ ðÝ ŒŠÑÔÐØˆõØôÑ€GˆZð ðÝ ŒŠÑÔÐØˆðy€GÝ”} Z°Ñ€GˆWØ ðÝ ŒŠÑÔÐØˆå ‰LŒL€EØ€HØ*1ð$˜ àˆÝÔ1°&¸I‰
ˆØ ð ØˆEõÐ*¨B°ÑØ
˜g sÑ3°H¸B×JÈ8ÐUXÑð—?’? ;ÑØ ?Š?˜3Ñ Ô ð—?? '¨$Ñ.ˆ! %­ÈHÐ:g¸.¸.ÐZgÑ Ø× Ò ¨XÐ!B  ¸7Ñ ð × " 8§>¢>Ñ#3Ô#3Ñ ð × Ò  Ñ ð × & v§|¢|¡~¤~Ñ Š˜
 DÑŠ˜ ÑŠ˜°6Ð!A §¢¡¤ ¸rÑ ð OŠO˜G UÑ  Œ×Ò˜ f¨h¸ÑF„F‡NN Ð699¨hÑF„F×ÒÑÔÐÐÐr+cóFd}tj||¦«\}}||r|ngfS)zZParst eine einzelne Seite mit dem Full-Poster-Pattern und gibt (isMatch, aResult) zurueck.zï<a class="poster grid-item[^>]*href="([^"]+)"[^>]*>.*?<img[^>]*data-src="([^"]+)"[^>]*alt="([^"]+)"[^>]*>.*?<div class="poster__label">([^<]*)</div>.*?<h3 class="poster__title[^>]*>([^<]*)</h3>.*?<div class="poster__text[^>]*>([^<]*)</div>)rrA)r9rFrGrIs r)Ú
_parsePagernÞs4ðA€GÝ”} \°7Ñ€GˆWØ ˜.GG¨BÐ .r+có¦d}tj||¦«\}}|r4| d¦«rt d¦«|z}|SdS)zPExtrahiert die Next-Page-URL aus pagination__btn-loader oder gibt False zurueck.z<<div class="pagination__btn-loader[^>]*>\s*<a href="([^"]+)"rF)rr@rBr3rC)r9rFrGÚsNextUrls r)Ú_getNextPageUrlrqås\àM€GÝÔ1°,ÀÑ€GˆXØðØ × Ò ˜sÑ  sÑ+¨hÑ6ˆHØˆØ ˆ5r+cóØg}|}d}t|¦«D]S}t|¦«}|sn?t|¦«\}}|r| |¦«t |¦«} | sn| }ŒT|S)Holt ALLE Seiten einer Suche und gibt kombinierte Ergebnisse zurueck.
Megakino-Suche zeigt bei vielen Treffern mehrere Seiten — Kodi-User soll alle sehen.
é
)Úranger<rnÚextendrq)