diff --git a/mediaserver/platformcode/config.py b/mediaserver/platformcode/config.py index e8b82980..835384da 100644 --- a/mediaserver/platformcode/config.py +++ b/mediaserver/platformcode/config.py @@ -271,6 +271,14 @@ def get_localized_string(code): return dev +def get_localized_category(categ): + categories = {'movie': get_localized_string(30122), 'tvshow': get_localized_string(30123), + 'anime': get_localized_string(30124), 'documentary': get_localized_string(30125), + 'vos': get_localized_string(30136), 'adult': get_localized_string(30126), + 'direct': get_localized_string(30137), 'torrent': get_localized_string(70015)} + return categories[categ] if categ in categories else categ + + def get_videolibrary_path(): value = get_setting("videolibrarypath") if value == "": diff --git a/plugin.video.alfa/channels/animeflv_me.json b/plugin.video.alfa/channels/animeflv_me.json index 65784f01..96f16b74 100755 --- a/plugin.video.alfa/channels/animeflv_me.json +++ b/plugin.video.alfa/channels/animeflv_me.json @@ -1,7 +1,7 @@ { "id": "animeflv_me", "name": "Animeflv.ME", - "active": true, + "active": false, "adult": false, "language": ["cast", "lat"], "thumbnail": "http://i.imgur.com/x9AdvBx.png", diff --git a/plugin.video.alfa/channels/gnula.json b/plugin.video.alfa/channels/gnula.json index a7051218..b7172590 100755 --- a/plugin.video.alfa/channels/gnula.json +++ b/plugin.video.alfa/channels/gnula.json @@ -7,7 +7,8 @@ "thumbnail": "gnula.png", "banner": "gnula.png", "categories": [ - "movie" + "movie", + "vos" ], "settings": [ { diff --git a/plugin.video.alfa/channels/gnula.py b/plugin.video.alfa/channels/gnula.py index 1b129595..ff3534cd 100755 --- a/plugin.video.alfa/channels/gnula.py +++ b/plugin.video.alfa/channels/gnula.py @@ -17,13 +17,13 @@ def mainlist(item): itemlist = [] itemlist.append(Item(channel=item.channel, title="Estrenos", action="peliculas", url= host +"peliculas-online/lista-de-peliculas-online-parte-1/", viewmode="movie", - thumbnail=get_thumb('premieres', auto=True),)) + thumbnail=get_thumb('premieres', auto=True), first=0)) itemlist.append( Item(channel=item.channel, title="Generos", action="generos", url= host + "generos/lista-de-generos/", thumbnail=get_thumb('genres', auto=True),)) itemlist.append(Item(channel=item.channel, title="Recomendadas", action="peliculas", url= host + "peliculas-online/lista-de-peliculas-recomendadas/", viewmode="movie", - thumbnail=get_thumb('recomended', auto=True),)) + thumbnail=get_thumb('recomended', auto=True), first=0)) itemlist.append(Item(channel = item.channel, action = "")) itemlist.append( Item(channel=item.channel, title="Buscar", action="search", url = host_search, @@ -35,14 +35,9 @@ def search(item, texto): logger.info() texto = texto.replace(" ", "+") data = httptools.downloadpage(host).data - url_cse = scrapertools.find_single_match(data, '
').replace('name="q"', "") - matches = scrapertools.find_multiple_matches(bloque, 'name="([^"]+).*?value="([^"]+)') - post = "q=" + texto + "&" - for name, value in matches: - post += name + "=" + value + "&" - data = httptools.downloadpage(url_cse + post).data - cse_token = scrapertools.find_single_match(data, "var cse_token='([^']+)'") + cxv = scrapertools.find_single_match(data, 'cx" value="([^"]+)"') + data = httptools.downloadpage("https://cse.google.es/cse.js?hpg=1&cx=%s" %cxv).data + cse_token = scrapertools.find_single_match(data, 'cse_token": "([^"]+)"') item.url = host_search %(texto, cse_token) try: return sub_search(item) @@ -99,7 +94,8 @@ def generos(item): action = 'peliculas', title = title, url = url, - viewmode = "movie")) + viewmode = "movie", + first=0)) itemlist = sorted(itemlist, key=lambda item: item.title) return itemlist @@ -107,11 +103,18 @@ def generos(item): def peliculas(item): logger.info() itemlist = [] + next = True data = httptools.downloadpage(item.url).data patron = '([^<]+) len(matches): + last = len(matches) + next = False + + for scrapedurl, scrapedtitle, scrapedthumbnail, resto in matches[first:last]: language = [] plot = scrapertools.htmlclean(resto).strip() languages = scrapertools.find_multiple_matches(plot, r'\((V.)\)') @@ -132,6 +135,13 @@ def peliculas(item): language=language, quality=quality )) + #paginacion + + url_next_page = item.url + first = last + if next: + itemlist.append(item.clone(title="Siguiente >>", url=url_next_page, action='peliculas', first=first)) + return itemlist @@ -149,7 +159,7 @@ def findvideos(item): cuenta = 0 for datos in bloque: cuenta = cuenta + 1 - patron = '(opción %s.*?)' %cuenta + patron = '((?:opción|opción) %s.*?)' %cuenta scrapedopcion = scrapertools.find_single_match(data, patron) titulo_opcion = "(" + scrapertools.find_single_match(scrapedopcion, "op.*?, (.*)").upper() + ")" if "TRAILER" in titulo_opcion or titulo_opcion == "()": diff --git a/plugin.video.alfa/channels/peliculasrey.json b/plugin.video.alfa/channels/peliculasrey.json index 91c439fd..bd922f63 100755 --- a/plugin.video.alfa/channels/peliculasrey.json +++ b/plugin.video.alfa/channels/peliculasrey.json @@ -1,7 +1,7 @@ { "id": "peliculasrey", "name": "peliculasrey", - "active": true, + "active": false, "adult": false, "language": ["cast", "lat"], "thumbnail": "peliculasrey.png", diff --git a/plugin.video.alfa/channels/submityouflicks.py b/plugin.video.alfa/channels/submityouflicks.py index 7cc69abc..a329f349 100755 --- a/plugin.video.alfa/channels/submityouflicks.py +++ b/plugin.video.alfa/channels/submityouflicks.py @@ -3,6 +3,7 @@ import re import urlparse +from core import httptools from core import scrapertools from core.item import Item from platformcode import logger @@ -16,7 +17,6 @@ def mainlist(item): viewmode="movie")) itemlist.append(Item(channel=item.channel, action="search", title="Buscar", url="http://www.submityourflicks.com/index.php?mode=search&q=%s&submit=Search")) - return itemlist @@ -37,18 +37,6 @@ def search(item, texto): def videos(item): logger.info() itemlist = [] - - ''' -
-
- - - - NEXT") if next_page_url != "": url = urlparse.urljoin(item.url, next_page_url) itemlist.append(Item(channel=item.channel, action="videos", title=">> Página siguiente", url=url, folder=True, viewmode="movie")) - return itemlist def play(item): logger.info() - - data = scrapertools.cache_page(item.url) - - media_url = scrapertools.find_single_match(data, 'file\:\s*"([^"]+)"') + data = httptools.downloadpage(item.url).data + media_url = "https:" + scrapertools.find_single_match(data, 'source src="([^"]+)"') itemlist = [] itemlist.append(Item(channel=item.channel, action="play", title=item.title, fulltitle=item.fulltitle, url=media_url, - thumbnail=item.thumbnail, plot=item.plot, show=item.title, server="directo", folder=False)) - + thumbnail=item.thumbnail, show=item.title, server="directo", folder=False)) return itemlist diff --git a/plugin.video.alfa/channels/yaske.json b/plugin.video.alfa/channels/yaske.json index a28e4e4f..8b9ad9d4 100644 --- a/plugin.video.alfa/channels/yaske.json +++ b/plugin.video.alfa/channels/yaske.json @@ -1,7 +1,7 @@ { "id": "yaske", "name": "Yaske", - "active": true, + "active": false, "adult": false, "language": ["cast", "lat"], "banner": "yaske.png", diff --git a/plugin.video.alfa/core/httptools.py b/plugin.video.alfa/core/httptools.py index ba6ddde2..53b71b97 100755 --- a/plugin.video.alfa/core/httptools.py +++ b/plugin.video.alfa/core/httptools.py @@ -3,6 +3,24 @@ # httptools # -------------------------------------------------------------------------------- + +# Fix para error de validación del certificado del tipo: +# [downloadpage] Response code: +# [downloadpage] Response error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661) +# Fix desde la página: https://stackoverflow.com/questions/27835619/urllib-and-ssl-certificate-verify-failed-error +#----------------------------------------------------------------------- +import ssl +try: + _create_unverified_https_context = ssl._create_unverified_context +except AttributeError: + # Legacy Python that doesn't verify HTTPS certificates by default + pass +else: + # Handle target environment that doesn't support HTTPS verification + ssl._create_default_https_context = _create_unverified_https_context +#----------------------------------------------------------------------- + + import inspect import cookielib import gzip diff --git a/plugin.video.alfa/resources/language/English/strings.po b/plugin.video.alfa/resources/language/English/strings.po index 086ff5f8..9fca45a7 100644 --- a/plugin.video.alfa/resources/language/English/strings.po +++ b/plugin.video.alfa/resources/language/English/strings.po @@ -846,7 +846,7 @@ msgid "Enter URL" msgstr "" msgctxt "#60089" -msgid "Enter the URL [Link to server / download]" +msgid "Enter the URL [Link to server/download]" msgstr "" msgctxt "#60090" diff --git a/plugin.video.alfa/resources/language/Italian/strings.po b/plugin.video.alfa/resources/language/Italian/strings.po index fceb4044..3c2c5148 100644 --- a/plugin.video.alfa/resources/language/Italian/strings.po +++ b/plugin.video.alfa/resources/language/Italian/strings.po @@ -834,8 +834,8 @@ msgid "Enter URL" msgstr "Inserisci URL" msgctxt "#60089" -msgid "Enter the URL [Link to server / download]" -msgstr "Inserire l'URL [Link a server / download]" +msgid "Enter the URL [Link to server/download]" +msgstr "Inserire l'URL [Link a server/download]" msgctxt "#60090" msgid "Enter the URL [Direct link to video]." diff --git a/plugin.video.alfa/servers/adnstream.json b/plugin.video.alfa/servers/adnstream.json deleted file mode 100755 index 1f601daa..00000000 --- a/plugin.video.alfa/servers/adnstream.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "adnstream.com/video/([a-zA-Z]+)", - "url": "http://www.adnstream.com/video/\\1/" - } - ] - }, - "free": true, - "id": "adnstream", - "name": "adnstream", - "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 - } - ] -} \ No newline at end of file diff --git a/plugin.video.alfa/servers/adnstream.py b/plugin.video.alfa/servers/adnstream.py deleted file mode 100755 index c45810a0..00000000 --- a/plugin.video.alfa/servers/adnstream.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import scrapertools -from platformcode import logger - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - # Saca el código del vídeo - if page_url.startswith("http://"): - try: - code = scrapertools.get_match(page_url, "http\://www.adnstream.com/video/([a-zA-Z]+)/") - except: - code = scrapertools.get_match(page_url, "http\://www.adnstream.tv/video/([a-zA-Z]+)/") - else: - code = page_url - - # Lee la playlist - url = "http://www.adnstream.com/get_playlist.php?lista=video¶m=" + code + "&c=463" - data = scrapertools.cache_page(url) - - # Extrae la URL - media_url = scrapertools.get_match(data, "([^<]+)") - video_urls = [[scrapertools.get_filename_from_url(media_url)[-4:] + ' [adnstream]', media_url]] - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls diff --git a/plugin.video.alfa/servers/bitvidsx.json b/plugin.video.alfa/servers/bitvidsx.json deleted file mode 100755 index ea44abcc..00000000 --- a/plugin.video.alfa/servers/bitvidsx.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(http://www.(?:videoweed|bitvid)\\.[a-z]+/file/[a-zA-Z0-9]+)", - "url": "\\1" - }, - { - "pattern": "(http://embed.(?:videoweed|bitvid)\\.[a-z]+/embed.php?v=[a-zA-Z0-9]+)", - "url": "\\1" - } - ] - }, - "free": true, - "id": "bitvidsx", - "name": "bitvidsx", - "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 - } - ] -} \ No newline at end of file diff --git a/plugin.video.alfa/servers/bitvidsx.py b/plugin.video.alfa/servers/bitvidsx.py deleted file mode 100755 index 5968a550..00000000 --- a/plugin.video.alfa/servers/bitvidsx.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -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 "This video is not yet ready" in data: - return False, "[Bitvid] El fichero está en proceso todavía o ha sido eliminado" - - return True, "" - - -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 - - video_urls = [] - videourls = scrapertools.find_multiple_matches(data, 'src\s*:\s*[\'"]([^\'"]+)[\'"]') - if not videourls: - videourls = scrapertools.find_multiple_matches(data, '|\s{2,}', "", data) enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(.*?)") dec_data = jsunpack.unpack(enc_data) - sources = scrapertools.find_single_match(dec_data, "sources:\[(.*?)]") - patron = "{file:(.*?)}" - matches = re.compile(patron, re.DOTALL).findall(sources) - scrapertools.printMatches(matches) + sources = scrapertools.find_single_match(data, "