KoD 0.7.1

- A grande richiesta, è ora possibile riprodurre in automatico l'episodio successivo di una serie in libreria
- aggiunta la possibilità di nascondere la lista dei server, quando si usa l'autoplay
- aggiunto canale pufimovies.com
- fix vari
This commit is contained in:
marco
2020-01-20 18:31:32 +01:00
parent 1b63ed4046
commit d585b0e042
81 changed files with 1447 additions and 990 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
i = 0
for media_url in matches:
# URL del vídeo
video_urls.append([vres[i] + " mp4 [Akvideo] ", media_url + '|' + _headers])
video_urls.append([vres[i] + " mp4 [Akvideo] ", media_url.replace('https://', 'http://') + '|' + _headers])
i = i + 1
for video_url in video_urls:
+6 -3
View File
@@ -9,8 +9,10 @@ from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url)
if data.code == 404:
html = httptools.downloadpage(page_url)
global data
data = html.data
if html.code == 404:
return False, config.get_localized_string(70292) % "CloudVideo"
return True, ""
@@ -18,7 +20,8 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
global data
# data = httptools.downloadpage(page_url).data
# enc_data = scrapertools.find_single_match(data, "text/javascript">(.+?)</script>")
# dec_data = jsunpack.unpack(enc_data)
sources = scrapertools.find_single_match(data, "<source(.*?)</source")
+5 -3
View File
@@ -20,11 +20,12 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
patronvideos = [
r'(https?://(gestyy|rapidteria|sprysphere)\.com/[a-zA-Z0-9]+)',
r'(https?://(?:www\.)?(vcrypt|linkup)\.[^/]+/[^/]+/[a-zA-Z0-9_]+)',
r'(https?://(?:www\.)?(bit)\.ly/[a-zA-Z0-9]+)',
r'(https?://(?:www\.)?(bit|buckler)\.[^/]+/[a-zA-Z0-9]+)',
r'(https?://(?:www\.)?(xshield)\.[^/]+/[^/]+/[^/]+/[a-zA-Z0-9_\.]+)'
]
for patron in patronvideos:
# from core.support import dbg; dbg()
logger.info(" find_videos #" + patron + "#")
matches = re.compile(patron).findall(page_url)
@@ -51,9 +52,10 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
continue
else:
from lib import unshortenit
data, status = unshortenit.unshorten(url)
sh = unshortenit.UnshortenIt()
data, status = sh.unshorten(url)
logger.info("Data - Status zcrypt vcrypt.net: [%s] [%s] " %(data, status))
elif 'linkup' in url or 'bit.ly' in url:
elif 'linkup' in url or 'bit.ly' in url or 'buckler' in url:
logger.info("DATA LINK {}".format(url))
if '/tv/' in url:
url = url.replace('/tv/','/tva/')
+1 -1
View File
@@ -4,7 +4,7 @@
"ignore_urls": [],
"patterns": [
{
"pattern": "mixdrop.co/(?:f|e)/([a-z0-9]+)",
"pattern": "mixdrop.[^/]+/(?:f|e)/([a-z0-9]+)",
"url": "https://mixdrop.co/e/\\1"
}
]
+18 -10
View File
@@ -9,7 +9,7 @@ import ast
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
global data
data = httptools.downloadpage(page_url, cookies=False).data
if 'File Not Found' in data:
return False, config.get_localized_string(70449) % "SuperVideo"
@@ -20,27 +20,35 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
logger.info('SUPER DATA= '+data)
# data = httptools.downloadpage(page_url).data
global data
code_data = scrapertools.find_single_match(data, "<script type='text/javascript'>(eval.*)")
if code_data:
code = jsunpack.unpack(code_data)
# corrections
if 'file' in code and not '"file"'in code: code = code.replace('file','"file"')
if 'label' in code and not '"label"'in code: code = code.replace('label','"label"')
match = scrapertools.find_single_match(code, r'sources:(\[[^]]+\])')
lSrc = ast.literal_eval(match)
lQuality = ['360p', '720p', '1080p', '4k'][:len(lSrc)-1]
lQuality.reverse()
# lQuality = ['360p', '720p', '1080p', '4k'][:len(lSrc)-1]
# lQuality.reverse()
for source in lSrc:
quality = source['label'] if source.has_key('label') else 'auto'
video_urls.append(['.' + source['file'].split('.')[-1] + ' [' + quality + '] [SuperVideo]', source['file']])
for n, source in enumerate(lSrc):
quality = 'auto' if n==0 else lQuality[n-1]
video_urls.append(['.' + source.split('.')[-1] + '(' + quality + ') [SuperVideo]', source])
else:
logger.info('ELSE!')
matches = scrapertools.find_multiple_matches(data, r'src:\s*"([^"]+)",\s*type:\s*"[^"]+"(?:\s*, res:\s(\d+))?')
for url, quality in matches:
if url.split('.')[-1] != 'm3u8':
video_urls.append([url.split('.')[-1] + ' [' + quality + ']', url])
video_urls.append([url.split('.')[-1] + ' [' + quality + '] [SuperVideo]', url])
else:
video_urls.append([url.split('.')[-1], url])
video_urls.sort(key=lambda x: x[0].split()[-1])
video_urls.sort(key=lambda x: x[0].split()[-2])
return video_urls
+4 -3
View File
@@ -8,6 +8,7 @@ from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
global data
data = httptools.downloadpage(page_url).data
if "Page not found" in data or "File was deleted" in data:
return False, "[vidoza] El archivo no existe o ha sido borrado"
@@ -19,7 +20,7 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data
global data
video_urls = []
s = scrapertools.find_single_match(data, r'sourcesCode\s*:\s*(\[\{.*?\}\])')
@@ -30,8 +31,8 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
if 'src' in enlace or 'file' in enlace:
url = enlace['src'] if 'src' in enlace else enlace['file']
tit = ''
if 'label' in enlace: tit += '[%s]' % enlace['label']
if 'res' in enlace: tit += '[%s]' % enlace['res']
if 'label' in enlace: tit += ' [%s]' % enlace['label']
if 'res' in enlace: tit += ' [%s]' % enlace['res']
if tit == '' and 'type' in enlace: tit = enlace['type']
if tit == '': tit = '.mp4'
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://vup.to/embed-[A-z0-9]+.html)",
"url": "\\1"
}
]
},
"free": true,
"id": "vup",
"name": "VUP",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "@60654",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "@60655",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"thumbnail": "server_vupplayer.png"
}
-28
View File
@@ -1,28 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector vup By Alfa development Group
# --------------------------------------------------------
from core import httptools
from core import scrapertools
from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data
if "no longer exists" in data or "to copyright issues" in data:
return False, "[vup] El video ha sido borrado"
return True, ""
def get_video_url(page_url, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data
bloque = scrapertools.find_single_match(data, 'sources:.*?\]')
video_urls = []
videourl = scrapertools.find_multiple_matches(bloque, '"(http[^"]+)')
for video in videourl:
video_urls.append([".MP4 [vup]", video])
video_urls = video_urls[::-1]
return video_urls
+3 -2
View File
@@ -7,6 +7,8 @@ from platformcode import logger, config
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url)
global data
data = data.data
if data.code == 404:
return False, config.get_localized_string(70449)
return True, ""
@@ -15,8 +17,7 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
logger.info('VUP DATA= '+ data)
global data
patron = r'sources:\s*\[\{src:\s*"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for url in matches:
+1 -1
View File
@@ -7,7 +7,7 @@
"find_videos": {
"patterns": [
{
"pattern": "wstream\\.video.*?(?<!api)(?:=|/)(?:embed-)?(?<!streaming\\.php\\?id=)([a-z0-9A-Z]+)(?:[^/_.a-z0-9A-Z]|$)",
"pattern": "wstream\\.video(?!<).*?(?<!api)(?:=|/)(?:embed-)?(?<!streaming\\.php\\?id=)([a-z0-9A-Z]+)(?:[^/_.a-z0-9A-Z]|$)",
"url": "https://wstream.video/video.php?file_code=\\1"
},
{
+14 -14
View File
@@ -11,8 +11,21 @@ headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
resp = httptools.downloadpage(page_url)
global data
data = httptools.downloadpage(page_url).data
data = resp.data
page_url = resp.url
if '/streaming.php' in page_url in page_url:
code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html','')
logger.info('WCODE='+code)
page_url = 'https://wstream.video/video.php?file_code=' + code
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True).data
ID, code = scrapertools.find_single_match(data, r"""input\D*id=(?:'|")([^'"]+)(?:'|").*?value='([a-z0-9]+)""")
post = urllib.urlencode({ID: code})
data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
if "Not Found" in data or "File was deleted" in data:
return False, config.get_localized_string(70449) % 'Wstream'
return True, ""
@@ -24,20 +37,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
video_urls = []
global data
if '/streaming.php' in page_url or 'html' in page_url:
try:
code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html','')
logger.info('WCODE='+code)
page_url = 'https://wstream.video/video.php?file_code=' + code
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True).data
except:
pass
code = page_url.split('=')[-1]
ID = scrapertools.find_single_match(data, r'''input\D*id=(?:'|")([^'"]+)(?:'|")''')
post = urllib.urlencode({ID: code})
data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
headers.append(['Referer', page_url])
_headers = urllib.urlencode(dict(headers))