KoD 0.8
- tanti miglioramenti sotto il cofano, supporto iniziale al futuro kodi 19 - Nuova modalità di visualizzazione per episodio successivo - fixato wstream tramite l'aggiunta della finestra per risolvere il reCaptcha - aggiunta sezione segnala un problema in Aiuto - altri fix e migliorie varie a canali e server
This commit is contained in:
@@ -8,17 +8,13 @@
|
||||
"url": "\\1"
|
||||
},
|
||||
{
|
||||
"pattern": "akvideo.stream\/video\/(?:embed-)?([a-zA-Z0-9]+)",
|
||||
"url": "http://akvideo.stream\/video\/\\1"
|
||||
},
|
||||
{
|
||||
"pattern": "akvideo.stream/(?:embed-)?([a-zA-Z0-9]+)",
|
||||
"pattern": "akvideo.stream/(?:video/|video\\.php\\?file_code=)?(?:embed-)?([a-zA-Z0-9]+)",
|
||||
"url": "http://akvideo.stream/video/\\1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"free": true,
|
||||
"id": "akstream",
|
||||
"id": "akvideo",
|
||||
"name": "Akvideo",
|
||||
"settings": [
|
||||
{
|
||||
@@ -1,24 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# by DrZ3r0
|
||||
|
||||
import urllib
|
||||
import urllib, re
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from platformcode import logger, config
|
||||
from core.support import dbg
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
# page_url = re.sub('akvideo.stream/(?:video/|video\\.php\\?file_code=)?(?:embed-)?([a-zA-Z0-9]+)','akvideo.stream/video/\\1',page_url)
|
||||
global data
|
||||
# dbg()
|
||||
page = httptools.downloadpage(page_url)
|
||||
logger.info(page.data)
|
||||
if 'embed_ak.php' in page_url:
|
||||
code = scrapertools.find_single_match(page.url, '/embed-([0-9a-z]+)\.html')
|
||||
if code:
|
||||
if not code:
|
||||
code = scrapertools.find_single_match(page.data, r"""input\D*id=(?:'|")[^'"]+(?:'|").*?value='([a-z0-9]+)""")
|
||||
if code :
|
||||
page = httptools.downloadpage('http://akvideo.stream/video/' + code)
|
||||
else:
|
||||
return False, config.get_localized_string(70449) % "Akvideo"
|
||||
data = page.data
|
||||
|
||||
# ID, code = scrapertools.find_single_match(data, r"""input\D*id=(?:'|")([^'"]+)(?:'|").*?value='([a-z0-9]+)""")
|
||||
# post = urllib.urlencode({ID: code})
|
||||
# logger.info('PAGE DATA' + data)
|
||||
if "File Not Found" in data:
|
||||
return False, config.get_localized_string(70449) % "Akvideo"
|
||||
return True, ""
|
||||
@@ -27,14 +37,20 @@ 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 = []
|
||||
# dbg()
|
||||
|
||||
global data
|
||||
logger.info('PAGE DATA' + data)
|
||||
vres = scrapertools.find_multiple_matches(data, 'nowrap[^>]+>([^,]+)')
|
||||
if not vres: vres = scrapertools.find_multiple_matches(data, '<td>(\d+x\d+)')
|
||||
|
||||
data_pack = scrapertools.find_single_match(data, "</div>\n\s*<script[^>]+>(eval.function.p,a,c,k,e,.*?)\s*</script>")
|
||||
if data_pack != "":
|
||||
from lib import jsunpack
|
||||
data = jsunpack.unpack(data_pack)
|
||||
|
||||
block = scrapertools.find_single_match(data, "sources:\s\[([^\]]+)\]")
|
||||
data = block if block else data
|
||||
# URL
|
||||
# logger.info(data)
|
||||
matches = scrapertools.find_multiple_matches(data, '(http.*?\.mp4)')
|
||||
@@ -47,6 +63,4 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
video_urls.append([vres[i] + " mp4 [Akvideo] ", media_url.replace('https://', 'http://') + '|' + _headers])
|
||||
i = i + 1
|
||||
|
||||
for video_url in video_urls:
|
||||
logger.info(" %s - %s" % (video_url[0], video_url[1]))
|
||||
return sorted(video_urls, key=lambda x: x[0].split('x')[1])
|
||||
return sorted(video_urls, key=lambda x: int(x[0].split('x')[0]))
|
||||
+2
-2
@@ -5,14 +5,14 @@
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
response = httptools.downloadpage(page_url)
|
||||
if not response.sucess or "Not Found" in response.data or "File was deleted" in response.data or "is no longer available" in response.data:
|
||||
return False, "[anonfile] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "anonfile"
|
||||
return True, ""
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -5,14 +5,14 @@
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
response = httptools.downloadpage(page_url)
|
||||
if "File was deleted" in response.data or "is no longer available" in response.data:
|
||||
return False, "[filepup] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "filepup"
|
||||
return True, ""
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from lib import jsunpack
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
@@ -12,7 +12,7 @@ def test_video_exists(page_url):
|
||||
data = httptools.downloadpage(page_url).data
|
||||
|
||||
if "Not Found" in data or "File was deleted" in data:
|
||||
return False, "[Filevideo] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "Filevideo"
|
||||
|
||||
return True, ""
|
||||
|
||||
|
||||
+2
-2
@@ -5,14 +5,14 @@
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
response = httptools.downloadpage(page_url)
|
||||
if not response.sucess or "Not Found" in response.data or "File was deleted" in response.data or "is no longer available" in response.data:
|
||||
return False, "[nofile] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "nofile"
|
||||
return True, ""
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from lib import jsunpack
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
@@ -12,7 +12,7 @@ def test_video_exists(page_url):
|
||||
response = httptools.downloadpage(page_url)
|
||||
|
||||
if not response.sucess or "Not Found" in response.data or "File was deleted" in response.data or "is no longer available" in response.data:
|
||||
return False, "[Userscloud] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "Userscloud"
|
||||
|
||||
return True, ""
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
"url": "https://vcstream.to/embed/\\1/\\2"
|
||||
},
|
||||
{
|
||||
"pattern": "vidcloud.co/(?:embed|f|v)/([a-z0-9A-Z]+)",
|
||||
"url": "https://vidcloud.co\/v\/\\1"
|
||||
"pattern": "vidcloud.ru/(?:embed|f|v)/([a-z0-9A-Z]+)",
|
||||
"url": "https://vidcloud.ru\/v\/\\1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"free": true,
|
||||
"id": "vcstream",
|
||||
"id": "vidcloud",
|
||||
"name": "Vidcloud",
|
||||
"settings": [
|
||||
{
|
||||
@@ -2,7 +2,10 @@
|
||||
# Icarus pv7
|
||||
# Fix dentaku65
|
||||
|
||||
import urlparse
|
||||
try:
|
||||
import urlparse
|
||||
except:
|
||||
import urllib.parse as urlparse
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
+2
-2
@@ -4,14 +4,14 @@ import urllib
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
if "Not Found" in data:
|
||||
return False, "[Vidup] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "Vidup"
|
||||
return True, ""
|
||||
|
||||
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from lib import jsunpack
|
||||
from platformcode import logger
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
if "Not Found" in data or "File was deleted" in data:
|
||||
return False, "[Watchvideo] El fichero no existe o ha sido borrado"
|
||||
return False, config.get_localized_string(70449) % "Watchvideo"
|
||||
return True, ""
|
||||
|
||||
|
||||
|
||||
+24
-9
@@ -9,34 +9,49 @@ except ImportError:
|
||||
import urllib
|
||||
|
||||
from core import httptools, scrapertools
|
||||
from platformcode import logger, config
|
||||
from platformcode import logger, config, platformtools
|
||||
|
||||
headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0']]
|
||||
|
||||
def test_video_exists(page_url):
|
||||
def int_bckup_method():
|
||||
global data,headers
|
||||
page_url = scrapertools.find_single_match(data, r"""<center><a href='(https?:\/\/wstream[^']+)'\s*title='bkg'""")
|
||||
if page_url:
|
||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, post={'g-recaptcha-response': captcha}).data
|
||||
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
resp = httptools.downloadpage(page_url)
|
||||
global data
|
||||
data = resp.data
|
||||
|
||||
sitekey = scrapertools.find_single_match(data, 'data-sitekey="([^"]+)')
|
||||
captcha = platformtools.show_recaptcha(sitekey, page_url) if sitekey else ''
|
||||
|
||||
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)
|
||||
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
|
||||
|
||||
possibleParam = scrapertools.find_multiple_matches(data, r"""<input.*?(?:name=["']([^'"]+).*?value=["']([^'"]*)['"]>|>)""")
|
||||
if possibleParam:
|
||||
post = urllib.urlencode({param[0]: param[1] for param in possibleParam if param[0]})
|
||||
data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
|
||||
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, headers=headers, post=post, follow_redirects=True).data
|
||||
elif captcha:
|
||||
int_bckup_method()
|
||||
elif captcha:
|
||||
int_bckup_method()
|
||||
else:
|
||||
page_url = scrapertools.find_single_match(data, r"""<center><a href='(https?:\/\/wstream[^']+)'\s*title='bkg'""")
|
||||
if page_url:
|
||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True).data
|
||||
return False, config.get_localized_string(707434)
|
||||
|
||||
if "Not Found" in data or "File was deleted" in data:
|
||||
return False, config.get_localized_string(70449) % 'Wstream'
|
||||
return True, ""
|
||||
else:
|
||||
return True, ""
|
||||
|
||||
|
||||
# Returns an array of possible video url's from the page_url
|
||||
|
||||
+4
-1
@@ -3,7 +3,10 @@
|
||||
import re
|
||||
import urllib
|
||||
|
||||
import urlparse
|
||||
try:
|
||||
import urlparse
|
||||
except:
|
||||
import urllib.parse as urlparse
|
||||
|
||||
from core import httptools
|
||||
from core import jsontools as json
|
||||
|
||||
Reference in New Issue
Block a user