From 82bc0f65dc47195fb3f3984c4644653aaf2bdc1c Mon Sep 17 00:00:00 2001 From: caveman77 Date: Fri, 24 Feb 2023 23:50:09 +0100 Subject: [PATCH 1/4] Adding platinsport 1st commit --- plugin.video.vstream/resources/sites.json | 5 + .../resources/sites/platinsport.py | 1281 +++++++++++++++++ 2 files changed, 1286 insertions(+) create mode 100644 plugin.video.vstream/resources/sites/platinsport.py diff --git a/plugin.video.vstream/resources/sites.json b/plugin.video.vstream/resources/sites.json index 6ff6c07db6..2b63d028e8 100644 --- a/plugin.video.vstream/resources/sites.json +++ b/plugin.video.vstream/resources/sites.json @@ -413,6 +413,11 @@ "label": "Zone Streaming", "active": "True", "url": "https://www.zone-streaming.fr/" + }, + "platinsport": { + "label": "Platinsport", + "active": "True", + "url": "https://www.platinsport.com/" } } } diff --git a/plugin.video.vstream/resources/sites/platinsport.py b/plugin.video.vstream/resources/sites/platinsport.py new file mode 100644 index 0000000000..e6687881eb --- /dev/null +++ b/plugin.video.vstream/resources/sites/platinsport.py @@ -0,0 +1,1281 @@ +# -*- coding: utf-8 -*- +# vStream https://github.com/Kodi-vStream/venom-xbmc-addons +# Ovni-crea +import base64 +import re +import xbmc + +from resources.lib.comaddon import progress, isMatrix, siteManager +from resources.lib.gui.gui import cGui +from resources.lib.gui.hoster import cHosterGui +from resources.lib.handler.inputParameterHandler import cInputParameterHandler +from resources.lib.handler.outputParameterHandler import cOutputParameterHandler +from resources.lib.handler.requestHandler import cRequestHandler +from resources.lib.handler.pluginHandler import cPluginHandler +from resources.lib.packer import cPacker +from resources.lib.parser import cParser +from resources.lib.util import cUtil, Unquote +from resources.lib.comaddon import VSlog + +try: + import json +except: + import simplejson as json + +SITE_IDENTIFIER = 'platinsport' +SITE_NAME = 'PlatinSport' +SITE_DESC = 'Evénements sportifs en direct' + +#URL_MAIN = 'https://www.platinsport.com/' +URL_MAIN = siteManager().getUrlMain(SITE_IDENTIFIER) +# URL_MAIN = dans sites.json + +# SPORT_GENRES = (URL_MAIN + '/frx/allupcoming/', 'showMovies') # Liste de diffusion des sports +SPORT_LIVE = (URL_MAIN + '', 'showLive') # streaming Actif +SPORT_SPORTS = (True, 'load') + + +def load(): + oGui = cGui() + oOutputParameterHandler = cOutputParameterHandler() + + #oOutputParameterHandler.addParameter('siteUrl', SPORT_GENRES[0]) + #oGui.addDir(SITE_IDENTIFIER, SPORT_GENRES[1], 'Les sports (Genres)', 'genres.png', oOutputParameterHandler) + + oOutputParameterHandler.addParameter('siteUrl', SPORT_LIVE[0]) + oGui.addDir(SITE_IDENTIFIER, SPORT_LIVE[1], 'Les sports (En direct)', 'news.png', oOutputParameterHandler) + + oGui.setEndOfDirectory() + + +def showLive(): + VSlog(SITE_NAME+ ' - showLive - URL_MAIN'+ URL_MAIN) + oGui = cGui() + oInputParameterHandler = cInputParameterHandler() + sUrl = oInputParameterHandler.getValue('siteUrl') + + VSlog(SITE_NAME + ' - showLive - puling: '+ sUrl) + oRequestHandler = cRequestHandler(sUrl) + sHtmlContent = oRequestHandler.request() + + oParser = cParser() + #sPattern = '([^<]+)<.a>\s*
\s*([^<]+)' + #sPattern = '0: + #streamurl = urllib.quote_plus(streamurl) + #lien = "ActivateWindow(10025,plugin://program.plexus/?url="+streamurl+"&mode=2&name=SportDevils)" + lien = 'XBMC.RunPlugin(plugin://program.plexus/?url='+streamurl+'&mode=2&name=Vstream)' + xbmc.executebuiltin( lien ) + + if streamurl.count('acestream') > 0: + #streamurl = urllib.quote_plus(streamurl) + #lien = "ActivateWindow(10025,plugin://program.plexus/?url="+streamurl+"&mode=1&name=SportDevils)" + lien = 'XBMC.RunPlugin(plugin://program.plexus/?url='+streamurl+'&mode=1&name=Vstream)' + xbmc.executebuiltin( lien ) + + # play_item = xbmcgui.ListItem(path=streamurl,label=sMovieTitle2) + # play_item.setInfo(type="Video", infoLabels={"title": sMovieTitle2,'plot':sMovieTitle2}) + # xbmcplugin.setResolvedUrl(iHandler, True, listitem=play_item) + + + +""" + oRequestHandler = cRequestHandler(sUrl4) + sHtmlContent = oRequestHandler.request() + + oParser = cParser() + sPattern = '' + aResult = oParser.parse(sHtmlContent, sPattern) + + if aResult[0]: + + sHosterUrl = '' + Referer = '' + url = aResult[1][0] + if not (url.startswith("http")): + url = "http:" + url + + if 'popofthestream' in url: + oRequestHandler = cRequestHandler(url) + sHtmlContent = oRequestHandler.request() + sPattern = 'src="([^"]+)' + aResult = re.findall(sPattern, sHtmlContent) + if aResult: + url2 = url.replace('-', '/') + urlChannel = url2.replace('html', 'json') + oRequestHandler = cRequestHandler(urlChannel) + sHtmlContent = oRequestHandler.request() + + if not sHtmlContent.startswith('id=\'(.+?)\'' + aResult2 = re.findall(sPattern3, sHtmlContent3) + if aResult2: + sHosterUrl3 = aResult2[0] + sHosterUrl3 = "http://hdcast.pw/stream_jw2.php?id=" + sHosterUrl3 + oRequestHandler = cRequestHandler(sHosterUrl3) + sHtmlContent4 = oRequestHandler.request() + sPattern4 = 'curl = "([^"]+)";' + aResult3 = re.findall(sPattern4, sHtmlContent4) + if aResult3: + sHosterUrl = aResult3[0] + sHosterUrl = base64.b64decode(sHosterUrl) + + if 'stream365' in url: # Terminé + oRequestHandler = cRequestHandler(url) + sHtmlContent2 = oRequestHandler.request() + sPattern2 = 'var a[ 0-9]+="(.+?)"' + aResult = re.findall(sPattern2, sHtmlContent2) + if aResult: + gameId = int(aResult[2]) + int(aResult[0]) - int(aResult[1]) - int(aResult[2]) + sHosterUrl = 'http://91.192.80.210/edge0/xrecord/' + str(gameId) + '/prog_index.m3u8' + + if 'youtube' in url: # Je sais pas + sPattern2 = 'youtube.com/embed/(.+?)[?]autoplay=1' + aResult = re.findall(sPattern2, url) + + if aResult: + video_id = aResult[0] + url2 = url.replace('/embed/', '/watch?v=').replace('?autoplay=1', '') + oRequestHandler = cRequestHandler(url2) + oRequestHandler.addHeaderEntry('User-Agent', UA) + sHtmlContent3 = Unquote(str(oRequestHandler.request())) + + sPattern3 = 'hlsManifestUrl":"(.+?)"' + aResult = re.findall(sPattern3, sHtmlContent3) + + if aResult: + sHosterUrl = aResult[0] + '|User-Agent=' + UA + '&Host=manifest.googlevideo.com' + else: + url2 = 'https://youtube.com/get_video_info?video_id=' + video_id + '&sts=17488&hl=fr' + + oRequestHandler = cRequestHandler(url2) + oRequestHandler.addHeaderEntry('User-Agent', UA) + sHtmlContent3 = Unquote(str(oRequestHandler.request())) + + sPattern3 = 'hlsManifestUrl":"(.+?)"' + aResult = re.findall(sPattern3, sHtmlContent3) + + if aResult: + sHosterUrl = aResult[0] + '|User-Agent=' + UA + '&Host=manifest.googlevideo.com' + + if 'streamup.me' in url: # Terminé + oRequestHandler = cRequestHandler(url) + sHtmlContent2 = oRequestHandler.request() + sPattern2 = '' + aResult = re.findall(sPattern2, sHtmlContent2) + if aResult: + Referer = url + url = aResult[0] # decryptage plus bas (telerium) + + if 'telerium.tv' in url: # WIP + oRequestHandler = cRequestHandler(url) + if Referer: + oRequestHandler.addHeaderEntry('User-Agent', UA) + oRequestHandler.addHeaderEntry('Referer', Referer) + sHtmlContent2 = oRequestHandler.request() + sPattern2 = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))' + aResult = re.findall(sPattern2, sHtmlContent2) + + if aResult: + str2 = aResult[0] + if not str2.endswith(';'): + str2 = str2 + ';' + + strs = cPacker().unpack(str2) + + sPattern3 = '{url:window\.atob\((.+?)\)\.slice.+?\+window\.atob\((.+?)\)' + aResult1 = re.findall(sPattern3, strs) + if aResult1: + m3u = aResult1[0][0] + sPatternM3u = m3u + '="(.+?)"' + m3u = re.findall(sPatternM3u, strs) + m3u = base64.b64decode(m3u[0])[14:] + + token = aResult1[0][1] + sPatterntoken = token + '="(.+?)"' + token = re.findall(sPatterntoken, strs) + token = base64.b64decode(token[0]) + + sHosterUrl = 'https://telerium.tv/' + m3u + token + '|referer=' + url + + # TODO A TESTER + if 'usasports.live' in url: + oRequestHandler = cRequestHandler(url) + sHtmlContent2 = oRequestHandler.request() + sPattern1 = 'var sou = " (.+?)"' + aResult = re.findall(sPattern1, sHtmlContent2) + if aResult: + sHosterUrl = aResult[0] + + # TODO A TESTER + if 'wiz1' in url: + oRequestHandler = cRequestHandler(url) + sHtmlContent2 = oRequestHandler.request() + sPattern1 = '"iframe" src="(.+?)"' + aResult = re.findall(sPattern1, sHtmlContent2) + if aResult: + sHosterUrl = aResult[0] + + if 'var16.ru' in url: + sHosterUrl = getHosterVar16(url, url) + + # TODO A TESTER + if 'livesportone' in url: + url = url.replace('livesportone.com', 'sportes.pw') + + oRequestHandler = cRequestHandler(url) + sHtmlContent2 = oRequestHandler.request() + sPattern2 = '' - aResult = oParser.parse(sHtmlContent, sPattern) - - if aResult[0]: - - sHosterUrl = '' - Referer = '' - url = aResult[1][0] - if not (url.startswith("http")): - url = "http:" + url - - if 'popofthestream' in url: - oRequestHandler = cRequestHandler(url) - sHtmlContent = oRequestHandler.request() - sPattern = 'src="([^"]+)' - aResult = re.findall(sPattern, sHtmlContent) - if aResult: - url2 = url.replace('-', '/') - urlChannel = url2.replace('html', 'json') - oRequestHandler = cRequestHandler(urlChannel) - sHtmlContent = oRequestHandler.request() - - if not sHtmlContent.startswith('id=\'(.+?)\'' - aResult2 = re.findall(sPattern3, sHtmlContent3) - if aResult2: - sHosterUrl3 = aResult2[0] - sHosterUrl3 = "http://hdcast.pw/stream_jw2.php?id=" + sHosterUrl3 - oRequestHandler = cRequestHandler(sHosterUrl3) - sHtmlContent4 = oRequestHandler.request() - sPattern4 = 'curl = "([^"]+)";' - aResult3 = re.findall(sPattern4, sHtmlContent4) - if aResult3: - sHosterUrl = aResult3[0] - sHosterUrl = base64.b64decode(sHosterUrl) - - if 'stream365' in url: # Terminé - oRequestHandler = cRequestHandler(url) - sHtmlContent2 = oRequestHandler.request() - sPattern2 = 'var a[ 0-9]+="(.+?)"' - aResult = re.findall(sPattern2, sHtmlContent2) - if aResult: - gameId = int(aResult[2]) + int(aResult[0]) - int(aResult[1]) - int(aResult[2]) - sHosterUrl = 'http://91.192.80.210/edge0/xrecord/' + str(gameId) + '/prog_index.m3u8' - - if 'youtube' in url: # Je sais pas - sPattern2 = 'youtube.com/embed/(.+?)[?]autoplay=1' - aResult = re.findall(sPattern2, url) - - if aResult: - video_id = aResult[0] - url2 = url.replace('/embed/', '/watch?v=').replace('?autoplay=1', '') - oRequestHandler = cRequestHandler(url2) - oRequestHandler.addHeaderEntry('User-Agent', UA) - sHtmlContent3 = Unquote(str(oRequestHandler.request())) - - sPattern3 = 'hlsManifestUrl":"(.+?)"' - aResult = re.findall(sPattern3, sHtmlContent3) - - if aResult: - sHosterUrl = aResult[0] + '|User-Agent=' + UA + '&Host=manifest.googlevideo.com' - else: - url2 = 'https://youtube.com/get_video_info?video_id=' + video_id + '&sts=17488&hl=fr' - - oRequestHandler = cRequestHandler(url2) - oRequestHandler.addHeaderEntry('User-Agent', UA) - sHtmlContent3 = Unquote(str(oRequestHandler.request())) - - sPattern3 = 'hlsManifestUrl":"(.+?)"' - aResult = re.findall(sPattern3, sHtmlContent3) - - if aResult: - sHosterUrl = aResult[0] + '|User-Agent=' + UA + '&Host=manifest.googlevideo.com' - - if 'streamup.me' in url: # Terminé - oRequestHandler = cRequestHandler(url) - sHtmlContent2 = oRequestHandler.request() - sPattern2 = '' - aResult = re.findall(sPattern2, sHtmlContent2) - if aResult: - Referer = url - url = aResult[0] # decryptage plus bas (telerium) - - if 'telerium.tv' in url: # WIP - oRequestHandler = cRequestHandler(url) - if Referer: - oRequestHandler.addHeaderEntry('User-Agent', UA) - oRequestHandler.addHeaderEntry('Referer', Referer) - sHtmlContent2 = oRequestHandler.request() - sPattern2 = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))' - aResult = re.findall(sPattern2, sHtmlContent2) - - if aResult: - str2 = aResult[0] - if not str2.endswith(';'): - str2 = str2 + ';' - - strs = cPacker().unpack(str2) - - sPattern3 = '{url:window\.atob\((.+?)\)\.slice.+?\+window\.atob\((.+?)\)' - aResult1 = re.findall(sPattern3, strs) - if aResult1: - m3u = aResult1[0][0] - sPatternM3u = m3u + '="(.+?)"' - m3u = re.findall(sPatternM3u, strs) - m3u = base64.b64decode(m3u[0])[14:] - - token = aResult1[0][1] - sPatterntoken = token + '="(.+?)"' - token = re.findall(sPatterntoken, strs) - token = base64.b64decode(token[0]) - - sHosterUrl = 'https://telerium.tv/' + m3u + token + '|referer=' + url - - # TODO A TESTER - if 'usasports.live' in url: - oRequestHandler = cRequestHandler(url) - sHtmlContent2 = oRequestHandler.request() - sPattern1 = 'var sou = " (.+?)"' - aResult = re.findall(sPattern1, sHtmlContent2) - if aResult: - sHosterUrl = aResult[0] - - # TODO A TESTER - if 'wiz1' in url: - oRequestHandler = cRequestHandler(url) - sHtmlContent2 = oRequestHandler.request() - sPattern1 = '"iframe" src="(.+?)"' - aResult = re.findall(sPattern1, sHtmlContent2) - if aResult: - sHosterUrl = aResult[0] - - if 'var16.ru' in url: - sHosterUrl = getHosterVar16(url, url) - - # TODO A TESTER - if 'livesportone' in url: - url = url.replace('livesportone.com', 'sportes.pw') - - oRequestHandler = cRequestHandler(url) - sHtmlContent2 = oRequestHandler.request() - sPattern2 = '