Fix DooD Stream
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
"ignore_urls": [],
|
||||
"patterns": [
|
||||
{
|
||||
"pattern": "dood(?:stream|).[^/]+/((?:e|d)/[a-z0-9]+)",
|
||||
"url": "https://dood.to/\\1"
|
||||
"pattern": "dood(?:stream)?.[^/]+/(?:e|d)/([a-z0-9]+)",
|
||||
"url": "https://dood.to/e/\\1"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,39 +1,41 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re, time
|
||||
from lib import js2py
|
||||
from core import httptools, scrapertools
|
||||
import time, string, random
|
||||
from core import httptools, support
|
||||
from platformcode import logger, config
|
||||
import cloudscraper
|
||||
scraper = cloudscraper.create_scraper()
|
||||
|
||||
def test_video_exists(page_url):
|
||||
global data
|
||||
logger.debug('page url=', page_url)
|
||||
response = httptools.downloadpage(page_url)
|
||||
|
||||
if response.code == 404 or 'File you are looking for is not found' in response.data:
|
||||
response = scraper.get(page_url)
|
||||
|
||||
if response.status_code == 404 or 'File you are looking for is not found' in response.text:
|
||||
return False, config.get_localized_string(70449) % 'DooD Stream'
|
||||
else:
|
||||
data = response.data
|
||||
data = response.text
|
||||
return True, ""
|
||||
|
||||
|
||||
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||
# from core.support import dbg;dbg()
|
||||
global data
|
||||
logger.debug("URL", page_url)
|
||||
# from core.support import dbg;dbg()
|
||||
|
||||
video_urls = []
|
||||
host = scrapertools.find_single_match(page_url, r'http[s]?://[^/]+')
|
||||
host = 'https://dood.to'
|
||||
headers = {'User-Agent': httptools.get_user_agent(), 'Referer': page_url}
|
||||
|
||||
new_url = scrapertools.find_single_match(data, r'<iframe src="([^"]+)"')
|
||||
if new_url: data = httptools.downloadpage(host + new_url).data
|
||||
match = support.match(data, patron=r'''dsplayer\.hotkeys[^']+'([^']+).+?function\s*makePlay.+?return[^?]+([^"]+)''').match
|
||||
if match:
|
||||
url, token = match
|
||||
ret = scraper.get(host + url, headers=headers).text
|
||||
video_urls.append(['mp4 [DooD Stream]', '{}{}{}{}|Referer={}'.format(randomize(ret), url, token, int(time.time() * 1000), host)])
|
||||
|
||||
label = scrapertools.find_single_match(data, r'type:\s*"video/([^"]+)"')
|
||||
|
||||
logger.debug(data)
|
||||
return video_urls
|
||||
|
||||
base_url, token = scrapertools.find_single_match(data, r'''dsplayer\.hotkeys[^']+'([^']+).+?function\s*makePlay.+?return[^?]+([^"]+)''')
|
||||
url = '{}{}{}|Referer={}'.format(httptools.downloadpage(host + base_url, headers={"Referer": page_url}).data, token, str(int(time.time() * 1000)), page_url)
|
||||
video_urls.append([ label + ' [DooD Stream]', url])
|
||||
|
||||
return video_urls
|
||||
def randomize(data):
|
||||
t = string.ascii_letters + string.digits
|
||||
return data + ''.join([random.choice(t) for _ in range(10)])
|
||||
Reference in New Issue
Block a user