Closed TimeLance89 closed 11 months ago
Eine "DE" domain - da kommen bei mir Fragen auf! mit vielen "!!!!!" Nicht nur das die Seite sehr nach "stumbleupon.tv" aussieht auch: Name: vwp2781.webpack.hosteurope.de Address: 87.230.43.35
cineclick.de
Diese Webpräsenz befindet sich noch im Aufbau. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal. This site is currently under construction. Please try again later.
stumbleupon.tv ist ein ABKLATSCH von movie-stream.eu ebenfalls ein Abklatsch ist https://moflix-stream.xyz/ es gab damals nur ein Portal in dem Stil und das war immer movie-stream.eu
Das Original ist und war schon immer movie-stream.eu gab es meines Wissens deutlich länger als stumbleupon.tv
Bei mir ist "movie-stream.eu" tot und von einer Werbeseite ersetzt bzw. durch uBlock origin blockiert.
Ja das Projekt wurde damals eingestellt, der betreiber von cineclix ist der alte Betreiber von movie-stream.eu
Es war mal in xstream vorhanden weil die Qualität echt gut war. Daher meine Frage dazu
was ich an den Aussagen von @TimeLance89 bestätigen kann - cineclick.de, stumbleupon.tv und moflix-stream.xyz nutzen fast vollständig die gleichen Funktionen intern und den gleichen Seitenaufbau. moflix-stream.xyz hat zusätzliche Schutzfunktion hinzugefügt. (debug)
Ich habe noch eine alte Version von xStream gefunden wo MovieStream enthalten war, vielleicht hilft das ja weiter:
`# -- coding: utf-8 -- from resources.lib import logger from resources.lib.gui.gui import cGui from resources.lib.gui.guiElement import cGuiElement from resources.lib.handler.ParameterHandler import ParameterHandler from resources.lib.handler.requestHandler import cRequestHandler from resources.lib.parser import cParser
SITE_IDENTIFIER = 'moviestream' SITE_NAME = 'MovieStream' SITE_ICON = 'moviestream.png' URL_MAIN = 'https://movie-stream.eu/' URL_FILME = 'https://movie-stream.eu/secure/titles?type=movie&onlyStreamable=true' URL_SERIE = 'https://movie-stream.eu/secure/titles?type=series&onlyStreamable=true' URL_HOSTER = URL_MAIN + 'secure/titles/%s?titleId=%s' URL_SEARCH = URL_MAIN + 'secure/search/%s?type=&limit=20' URL_GENRES_LIST = {'Drama' : 'drama', 'Action' : 'action', 'Thriller' : 'thriller', 'Science Fiction' : 'science fiction', 'Horror' : 'horror', 'Mystery' : 'mystery', 'Komoedie' : 'komoedie', 'Liebesfilm' : 'liebesfilm', 'Disney' : 'disney', 'Bollywood' : 'bollywood', 'Kino' : 'kino'} URL_GENRES_FILME = 'https://movie-stream.eu/secure/titles?type=movie&genre=%s' URL_GENRES_SERIE = 'https://movie-stream.eu/secure/titles?type=series&genre=%s'
def load(): logger.info("Load %s" % SITE_NAME) params = ParameterHandler() params.setParam('page', (1)) params.setParam('sUrl', URL_FILME) cGui().addFolder(cGuiElement('Filme', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('Genre', URL_GENRES_FILME) cGui().addFolder(cGuiElement('Film Genre', SITE_IDENTIFIER, 'showGenre'), params) params.setParam('sUrl', URL_SERIE) cGui().addFolder(cGuiElement('Serien', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('Genre', URL_GENRES_SERIE) cGui().addFolder(cGuiElement('Serien Genre', SITE_IDENTIFIER, 'showGenre'), params) cGui().addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch')) cGui().setEndOfDirectory()
def showGenre(): params = ParameterHandler() Genre = params.getValue('Genre') for key in sorted(URL_GENRES_LIST): params.setParam('sUrl', (Genre % URL_GENRES_LIST[key])) cGui().addFolder(cGuiElement(key, SITE_IDENTIFIER, 'showEntries'), params) cGui().setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') iPage = int(params.getValue('page')) if iPage > 0: entryUrl = entryUrl + ('&' if '?' in entryUrl else '?') + 'page=' + str(iPage) oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) oRequest.addHeaderEntry('Referer', params.getValue('sUrl')) sHtmlContent = oRequest.request() pattern = '"id":([\d]+).?"name":"([^"]+).?year":([\d]+).?description":"([^"]+).?poster":"([^"]+).?backdrop":"([^"]+)","runtime":([\d]+).?is_series":([^"]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern)
if not isMatch:
if not sGui: oGui.showInfo()
return
total = len(aResult)
for sUrl, sName, sYear, sDesc, sThumbnail, sFanart, runtime, isserie in aResult:
isTvshow = True if "true" in isserie else False
oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters')
oGuiElement.setThumbnail(sThumbnail)
oGuiElement.setFanart(sFanart)
oGuiElement.setYear(sYear)
oGuiElement.setDescription(sDesc)
oGuiElement.addItemValue('duration', int(runtime) * 60)
oGuiElement.setMediaType('tvshow' if isTvshow else 'movie')
params.setParam('entryUrl', URL_HOSTER % (sUrl, sUrl))
params.setParam('sThumbnail', sThumbnail)
params.setParam('sName', sName)
oGui.addFolder(oGuiElement, params, isTvshow, total)
if not sGui:
isMatch, strPage = cParser().parseSingleResult(sHtmlContent, 'last_page":([\d]+)')
if isMatch:
if float(int(strPage)) > iPage:
params.setParam('page', (iPage + 1))
oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)
oGui.setView('tvshows' if 'true' in isserie else 'movies')
oGui.setEndOfDirectory()
def showSeasons(): params = ParameterHandler() sUrl = params.getValue('entryUrl') sThumbnail = params.getValue('sThumbnail') sTVShowTitle = params.getValue('sName') sHtmlContent = cRequestHandler(sUrl).request() pattern = 'number":([\d]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern)
if not isMatch:
cGui().showInfo()
return
isDesc, sDesc = cParser.parse(sHtmlContent, 'description","content":"([^"]+)')
total = len(aResult)
for sSeasonNr in aResult:
oGuiElement = cGuiElement('Staffel ' + sSeasonNr, SITE_IDENTIFIER, 'showEpisodes')
oGuiElement.setMediaType('season')
oGuiElement.setTVShowTitle(sTVShowTitle)
oGuiElement.setSeason(sSeasonNr)
oGuiElement.setThumbnail(sThumbnail)
oGuiElement.setFanart(sThumbnail)
if isDesc:
oGuiElement.setDescription(sDesc[0])
params.setParam('sSeasonNr', sUrl + '&seasonNumber=' + sSeasonNr)
cGui().addFolder(oGuiElement, params, True, total)
cGui().setView('seasons')
cGui().setEndOfDirectory()
def showEpisodes(): params = ParameterHandler() sSeasonNr = params.getValue('sSeasonNr') sHtmlContent = cRequestHandler(sSeasonNr).request() pattern = 'id":\d+,"name":"([^"]+)","description":"([^"]+).?poster":"([^"]+).?episode_number":([\d]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern)
if not isMatch:
cGui().showInfo()
return
total = len(aResult)
for sName, sDesc, sThumbnail, sEpisodeNr in aResult:
oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters')
oGuiElement.setMediaType('sEpisodeNr')
oGuiElement.setThumbnail(sThumbnail)
oGuiElement.setFanart(sThumbnail)
oGuiElement.setDescription(sDesc)
params.setParam('entryUrl', sSeasonNr + '&episodeNumber=' + sEpisodeNr)
cGui().addFolder(oGuiElement, params, False, total)
cGui().setView('episodes')
cGui().setEndOfDirectory()
def showSearchEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) oRequest.addHeaderEntry('Referer', params.getValue('sUrl')) sHtmlContent = oRequest.request() pattern = '"id":([^,]+),"name":"([^"]+)","year":([\d,]+),"description":"([^"]+)","poster":"([^"]+)","is_series":([^,]+).*?type":"title' isMatch, aResult = cParser().parse(sHtmlContent, pattern)
if not isMatch:
if not sGui: oGui.showInfo()
return
total = len(aResult)
for sUrl, sName, sYear, sDesc, sThumbnail, isserie in aResult:
if sSearchText and not cParser().search(sSearchText, sName):
continue
isTvshow = True if "true" in isserie else False
oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters')
oGuiElement.setThumbnail(sThumbnail)
oGuiElement.setFanart(sThumbnail)
oGuiElement.setYear(sYear)
oGuiElement.setDescription(sDesc)
oGuiElement.setMediaType('tvshow' if isTvshow else 'movie')
params.setParam('entryUrl', URL_HOSTER % (sUrl, sUrl))
params.setParam('sThumbnail', sThumbnail)
params.setParam('sName', sName)
oGui.addFolder(oGuiElement, params, isTvshow, total)
if not sGui:
isMatch, strPage = cParser().parseSingleResult(sHtmlContent, 'last_page":([\d]+)')
if isMatch:
if float(int(strPage)) > iPage:
params.setParam('page', (iPage + 1))
oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)
oGui.setView('tvshows' if 'true' in isserie else 'movies')
oGui.setEndOfDirectory()
def showHosters(): sUrl = ParameterHandler().getValue('entryUrl') sHtmlContent = cRequestHandler(sUrl).request() pattern = 'id":\d+,"name":"([^"]+)","thumbnail.*?url":"([^"]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) hosters = [] if isMatch: for sName, sUrl in aResult: if not 'youtube' in sUrl: hoster = {'link': sUrl, 'name': sName} hosters.append(hoster) if hosters: hosters.append('getHosterUrl') return hosters
def getHosterUrl(sUrl=False): return [{'streamUrl': sUrl, 'resolved': False}]
def showSearch(): sSearchText = cGui().showKeyBoard() if not sSearchText: return _search(False, sSearchText) cGui().setEndOfDirectory()
def _search(oGui, sSearchText): showSearchEntries(URL_SEARCH % sSearchText, oGui, sSearchText) `
Danke für den Hinweis. Wir warten erst mal ab ob sich die Seite mit einer .de Domain überhaupt länger als ein paar Tage halten wird. Dann kann man weiter sehen.
Ich experimentiere auch schon mit Stumbleupon und Moflix.
Also den Scraper für CineClix habe ich fertig genauso wie Stumbleupon werde jetzt noch Moflix machen und dann schauen wir mal ob wir das veröffentlichen.
also https://cineclix.de ist seit gestern Abend offline kurz davor war zu sehen das ein Umbau auf der Seite stattfand und etwas später -> Off
Also bei mir ist die Webseite wieder online, sieht aus als wäre sie komplett neu gestaltet worden
Ja, Seite geht wieder, aber mit vielen Fehlern. ich habe noch keine Serie gefunden wo ein stream ging - es kommt immer interner server error 500 da sind also noch einige baustellen
Ist mir auch aufgefallen, liegt aber an supervideo also am streamanbieter die voe links sind alles astrein
Nach der Änderung der Seite bleibt es erstmal nur auf der ToDo Liste und wir sehen ob sich die Seite entwickelt oder offline geht
Ich habe gestern im Kontakt mit der Webseite gestanden von cineclix um zu erfragen ob dies der entgültige Entwurf ist, hier die Antwort:
"Vielen Dank für Ihre Anfrage. Um unsere Marktposition weiterhin zu festigen und uns von der Konkurrenz abzuheben, haben wir eine strategische Umstrukturierung vorgenommen. Des Weiteren wurden das Frontend und Backend sowohl zur internen Optimierung als auch zur Steigerung der Benutzererfahrung überarbeitet. Die positiven Rückmeldungen bestätigen unsere Entscheidung, sodass dieses Design als unser finale Version festgelegt wurde.
Wir hoffen, dass es Ihnen gefällt und wünschen Ihnen eine angenehme Nutzung."
In der xStream 4.0.7 Nightly 3 enthalten. Das SitePlugin ist experimentell und muss selbst aktiviert werden.
Bei jedem Titel den ich versuche abzuspielen mit cineclix
Wenn die Idioten bei dem Webseiten Theme geblieben wären würde es auch laufen.
Bei mir sieht es tatsächlich unverändert aus, hm na gut vielleicht kriegt man das nochmal hin?
Achso okay, ja schade dann geht das wohl nicht. Vielen Dank aber dennoch für die Arbeit die investiert wurde!
Ist leider immer bei neuen Seiten der Fall deswegen nehmen wir sowas erst nach paar Monaten Recherche auf. Vielleicht hat jemand anderes eine Lösung und Zeit es zu fixen bzw ein Schlupfloch zu finden
Teste die mal bitte durch und berichte bitte via Element https://matrix.to/#/#streamxstream_community:gitter.im
Vergesse bitte nicht vor dem Test den HTML Cache zu leeren!
Jetzt sollte aber alles passen bitte mal alles durchtesten.
Gerade alles durch getestet, läuft alles super! Eine Genre Funktion kann man nicht zufällig mit drin haben oder? Also ich meine für die Zukunft oder dergleichen
Ein richtiges Genre Menü gibt es ja nicht deswegen eher nein. Es gibt zwar Animation, Horror, Action und Komödie aber sonst weiter nichts. Wir werden erstmal abwarten wie sich die Seite entwickelt. Will da ehrlich gesagt nicht so viel Zeit verschwenden wenn sie in 2 Monaten wieder Offline ist.
Deswegen abwarten und beobachten.
Nutze es jetzt seit Tagen läuft echt super stabil und bin ein super Fan.
Ich habe mal etwas recherchiert die Genre sind so unterteilt:
https://cineclix.de/genre/horror https://cineclix.de/genre/familie https://cineclix.de/genre/action https://cineclix.de/genre/fantasy https://cineclix.de/genre/liebesfilme
Usw.
Genre wäre echt ein absoluter Traum via xStream
Ich habe ein kleines Problem entdeckt, wenn man nach der Serie "American Horror Storys" sucht wird nur von Staffel 5 ab an gezeigt leider
Webseite hat ein Update bekommen, das addon müsste angepasst werden wie beim letzten Mal :(
Hallo ist es möglich den Streamanbieter CineClix zu integrieren? Es ist der Anbieter von movie-stream.eu mit seinem neuen Projekt, es bedarf also nicht sehr viele Änderungen des Codes von movie-stream.eu
Hier die URL des Projekts: https://cineclix.de/