- 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:
marco
2020-02-22 13:36:58 +01:00
parent 82b61df289
commit ca6d5eb56d
121 changed files with 13147 additions and 5448 deletions
@@ -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": [
{
+19 -5
View File
@@ -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
View File
@@ -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
View File
@@ -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, ""
+2 -2
View File
@@ -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
View File
@@ -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, ""
+2 -2
View File
@@ -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": [
{
+4 -1
View File
@@ -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
View File
@@ -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, ""
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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