Merge pull request #316 from fatshotty/maxstream

fix: maxstream
This commit is contained in:
Alhaziel01
2021-06-25 15:07:36 +02:00
committed by GitHub
2 changed files with 32 additions and 12 deletions
+2 -6
View File
@@ -4,12 +4,8 @@
"ignore_urls": [], "ignore_urls": [],
"patterns": [ "patterns": [
{ {
"pattern": "https?://maxstream.video/(?:e/)?([a-z0-9]+)", "pattern": "https?://maxstream.video/.*?([^\/]+)$",
"url": "https://maxstream.video/\\1" "url": "https://maxstream.video/cast/\\1"
},
{
"pattern": "https?://maxstream.video/embed-([a-z0-9]+).html",
"url": "https://maxstream.video/\\1"
} }
] ]
}, },
+30 -6
View File
@@ -2,21 +2,45 @@ from core import httptools
from core import scrapertools, support from core import scrapertools, support
from lib import jsunpack from lib import jsunpack
from platformcode import logger, config from platformcode import logger, config
import re, ast, requests
def test_video_exists(page_url): def test_video_exists(page_url):
logger.debug("(page_url='%s')" % page_url) logger.debug("(page_url='%s')" % page_url)
global data global data
data = httptools.downloadpage(page_url).data data = httptools.downloadpage(page_url).data
if "File Not Found" in data or "File was deleted" in data: if "file was deleted" in data:
return False, config.get_localized_string(70449) % "MaxStream" return False, config.get_localized_string(70449) % "MaxStream"
return True, "" return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""): def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.debug("url=" + page_url) logger.debug("url=" + page_url)
global data
packed = scrapertools.find_single_match(data, r'(eval.*?)</script>') lastIndexStart = data.rfind('<script>')
unpacked = jsunpack.unpack(packed) lastIndexEnd = data.rfind('</script>')
return support.get_jwplayer_mediaurl(unpacked, 'MaxStream')
script = data[ (lastIndexStart + len('<script>')):lastIndexEnd ]
char_codes = ast.literal_eval(re.search('\[[^]+]+]',script).group(0))
hidden_js = "".join([chr(c - int(re.search('parseInt\(value\)\s?-\s?([0-9]+)', script).group(1))) for c in char_codes])
# newurl = re.search('\$.get\(\'([^\']+)', hidden_js).group(1)
newurl = scrapertools.find_single_match(hidden_js, r'\$.get\(\'([^\']+)')
url_video = None
castpage = httptools.downloadpage(newurl, headers={'x-requested-with': 'XMLHttpRequest', 'Referer': page_url }).data
url_video = scrapertools.find_single_match(castpage, r"cc\.cast\('(http[s]?.*?)'")
if url_video:
video_urls = []
video_urls.append(["mp4 [MaxStream]", url_video])
return video_urls
else:
raise "Something wrong: no url found before that :("