Fix maxstream (support CAPTCHA)

This commit is contained in:
mac12m99
2021-10-17 11:11:24 +02:00
parent 9dfc558dc5
commit cbb0d138ab
2 changed files with 26 additions and 18 deletions
+2 -2
View File
@@ -633,8 +633,8 @@ class UnshortenIt(object):
try: try:
id = uri.split('/')[-2] id = uri.split('/')[-2]
reqUrl = 'https://stayonline.pro/ajax/linkView.php' reqUrl = 'https://stayonline.pro/ajax/linkView.php'
p = urlencode({"id": id}) p = urlencode({"id": id, "ref": ""})
r = httptools.downloadpage(reqUrl, post=p) r = httptools.downloadpage(reqUrl, post=p, headers={'Referer': uri})
data = r.data data = r.data
try: try:
import json import json
+22 -14
View File
@@ -5,21 +5,14 @@
from core import httptools, scrapertools, support from core import httptools, scrapertools, support
from lib import jsunpack from lib import jsunpack
from platformcode import logger, config from platformcode import logger, config, platformtools
import ast, sys
if sys.version_info[0] >= 3:
import urllib.parse as urlparse
else:
import urlparse
headers =({'user-agent':'Mozilla/5.0 (Linux; Android 9; SM-A102U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36'})
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, headers=headers).data data = httptools.downloadpage(page_url).data
if "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"
@@ -27,12 +20,31 @@ def test_video_exists(page_url):
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)
video_urls = [] video_urls = []
global data
# support.dbg() # support.dbg()
sitekey = scrapertools.find_multiple_matches(data, """data-sitekey=['"] *([^"']+)""")
if sitekey: sitekey = sitekey[-1]
captcha = platformtools.show_recaptcha(sitekey, page_url) if sitekey else ''
possibleParam = scrapertools.find_multiple_matches(data,
r"""<input.*?(?:name=["']([^'"]+).*?value=["']([^'"]*)['"]>|>)""")
if possibleParam:
post = {param[0]: param[1] for param in possibleParam if param[0]}
if captcha: post['g-recaptcha-response'] = captcha
if post:
data = httptools.downloadpage(page_url, post=post, follow_redirects=True, verify=False).data
else:
platformtools.dialog_ok(config.get_localized_string(20000), config.get_localized_string(707434))
return []
# headers = [['Referer', page_url]]
# _headers = urllib.urlencode(dict(headers))
packed = support.match(data, patron=r"(eval\(function\(p,a,c,k,e,d\).*?)\s*</script").match packed = support.match(data, patron=r"(eval\(function\(p,a,c,k,e,d\).*?)\s*</script").match
unpack = jsunpack.unpack(packed) unpack = jsunpack.unpack(packed)
url = scrapertools.find_single_match(unpack, 'src:\s*"([^"]+)') url = scrapertools.find_single_match(unpack, 'src:\s*"([^"]+)')
@@ -69,7 +81,3 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
# except: # except:
# logger.debug('Something wrong: Impossible get HLS stream') # logger.debug('Something wrong: Impossible get HLS stream')
return video_urls return video_urls