diff --git a/core/support.py b/core/support.py index b93d023f..b8550c67 100644 --- a/core/support.py +++ b/core/support.py @@ -18,6 +18,7 @@ from specials import autoplay def hdpass_get_servers(item): # Carica la pagina + itemlist = [] data = httptools.downloadpage(item.url).data.replace('\n', '') patron = r']+><\/iframe>' url = scrapertoolsV2.find_single_match(data, patron).replace("?alta", "") @@ -46,23 +47,21 @@ def hdpass_get_servers(item): mir = scrapertoolsV2.find_single_match(data, patron_mir) - for mir_url, server in scrapertoolsV2.find_multiple_matches(mir, '([^<]+?)'): + for mir_url, srv in scrapertoolsV2.find_multiple_matches(mir, '([^<]+?)'): data = httptools.downloadpage(urlparse.urljoin(url, mir_url)).data.replace('\n', '') for media_label, media_url in scrapertoolsV2.find_multiple_matches(data, patron_media): itemlist.append(Item(channel=item.channel, action="play", - title=item.title + typo(server, '-- [] color kod') + typo(res_video, '-- [] color kod'), fulltitle=item.fulltitle, quality=res_video, show=item.show, thumbnail=item.thumbnail, contentType=item.contentType, - server=server, url=url_decode(media_url))) log("video -> ", res_video) - return controls(itemlist, item, AutoPlay=True, CheckLinks=True) + return server(item, itemlist=itemlist) def url_decode(url_enc): @@ -913,9 +912,15 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru itemList = servertools.find_video_items(data=str(data)) itemlist = itemlist + itemList + verifiedItemlist = [] for videoitem in itemlist: if not videoitem.server: - findS = servertools.findvideos(videoitem.url)[0] + findS = servertools.findvideos(videoitem.url) + if findS: + findS = findS[0] + else: + log(videoitem, 'Non supportato') + continue videoitem.server = findS[2] videoitem.title = findS[0] item.title = item.contentTitle if config.get_localized_string(30161) in item.title else item.title @@ -925,8 +930,9 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru videoitem.thumbnail = item.thumbnail videoitem.channel = item.channel videoitem.contentType = item.contentType + verifiedItemlist.append(videoitem) - return controls(itemlist, item, AutoPlay, CheckLinks, down_load) + return controls(verifiedItemlist, item, AutoPlay, CheckLinks, down_load) def controls(itemlist, item, AutoPlay=True, CheckLinks=True, down_load=True): from core import jsontools diff --git a/servers/vcstream.py b/servers/vcstream.py index d8cd588d..ecd1afcb 100644 --- a/servers/vcstream.py +++ b/servers/vcstream.py @@ -1,61 +1,58 @@ -# -*- coding: utf-8 -*- -# Icarus pv7 -# Fix dentaku65 - -import urlparse - -from core import httptools -from core import scrapertools -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, config.get_localized_string(70292) % "vcstream" - - return True, "" - - -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 - - url = scrapertools.find_single_match(data, "url: '([^']+)',") - - if url: - headers = dict() - headers['X-Requested-With'] = "XMLHttpRequest" - - token = scrapertools.find_single_match(data, 'set-cookie: vidcloud_session=(.*?);') - token = token.replace("%3D", "") - if token: - headers['vidcloud_session'] = token - - referer = scrapertools.find_single_match(data, "pageUrl = '([^']+)'") - if referer: - headers['Referer'] = referer - - page_url = urlparse.urljoin(page_url, url) - data = httptools.downloadpage(page_url, headers=headers, verify=False).data - data = data.replace('\\\\', '\\').replace('\\','') - - media_urls = scrapertools.find_multiple_matches(data, '\{"file"\s*:\s*"([^"]+)"\}') - - for media_url in media_urls: - ext = "mp4" - if "m3u8" in media_url: - ext = "m3u8" - import urllib2 - import ssl - context = ssl._create_unverified_context() - video_urls.append(["%s [vcstream]" % ext, media_url, urllib2.HTTPSHandler(context=context)]) - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - return video_urls - +# -*- coding: utf-8 -*- +# Icarus pv7 +# Fix dentaku65 + +import urlparse + +from core import httptools +from core import scrapertools +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 "We're Sorry" in data: + return False, config.get_localized_string(70292) % "vcstream" + + return True, "" + + +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 + + url = scrapertools.find_single_match(data, "url: '([^']+)',") + + if url: + headers = dict() + headers['X-Requested-With'] = "XMLHttpRequest" + + token = scrapertools.find_single_match(data, 'set-cookie: vidcloud_session=(.*?);') + token = token.replace("%3D", "") + if token: + headers['vidcloud_session'] = token + + referer = scrapertools.find_single_match(data, "pageUrl = '([^']+)'") + if referer: + headers['Referer'] = referer + + page_url = urlparse.urljoin(page_url, url) + data = httptools.downloadpage(page_url, headers=headers).data + data = data.replace('\\\\', '\\').replace('\\','') + + media_urls = scrapertools.find_multiple_matches(data, '\{"file"\s*:\s*"([^"]+)"\}') + + for media_url in media_urls: + ext = "mp4" + if "m3u8" in media_url: + ext = "m3u8" + video_urls.append(["%s [vcstream]" % ext, media_url]) + + for video_url in video_urls: + logger.info("%s - %s" % (video_url[0], video_url[1])) + return video_urls + diff --git a/servers/vidcloud.json b/servers/vidcloud.json deleted file mode 100644 index 3b65904e..00000000 --- a/servers/vidcloud.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "https://(?:vidcloud.co|vcstream.to)/embed/([a-z0-9]+)", - "url": "https://vidcloud.co/player?fid=\\1&page=embed" - } - ] - }, - "free": true, - "id": "vidcloud", - "name": "vidcloud", - "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": "https://i.postimg.cc/xjpwG0rK/0a-RVDzlb-400x400.jpg" -} diff --git a/servers/vidcloud.py b/servers/vidcloud.py deleted file mode 100644 index 41d5959d..00000000 --- a/servers/vidcloud.py +++ /dev/null @@ -1,28 +0,0 @@ -# Conector vidcloud By Alfa development Group -# -------------------------------------------------------- - -import re - -from core import httptools -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: - return False, "[Cloud] El archivo no existe o ha sido borrado" - return True, "" - - -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 - data = data.replace('\\\\', '\\').replace('\\','') - patron = '"file":"([^"]+)"' - matches = re.compile(patron, re.DOTALL).findall(data) - for url in matches: - if not ".vtt" in url: - video_urls.append(['vidcloud', url]) - return video_urls