Merge branch 'master' of https://github.com/alfa-addon/addon
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="plugin.video.alfa" name="Alfa" version="2.0.5" provider-name="Alfa Addon">
|
||||
<addon id="plugin.video.alfa" name="Alfa" version="2.0.6" provider-name="Alfa Addon">
|
||||
<requires>
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
<import addon="script.module.libtorrent" optional="true"/>
|
||||
@@ -19,16 +19,11 @@
|
||||
</assets>
|
||||
<news>[B]Estos son los cambios para esta versión:[/B]
|
||||
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
|
||||
» peliscity » cinecalidad
|
||||
» peliculasrey » doomtv
|
||||
» peliculasnu » yaske
|
||||
» pelisplusco » pelisfox
|
||||
» newpct1 » peliculasaudiolatino
|
||||
» pelisplus » vimeo
|
||||
» streamplay » pelismundo
|
||||
» pedropolis » thumbzilla
|
||||
» gvideo ¤ arreglos internos
|
||||
[COLOR green]Gracias a [COLOR yellow]msdos, d3vanony[/COLOR] y [COLOR yellow]prpeaprendiz[/COLOR] por su colaboración en esta versión[/COLOR]
|
||||
» pedropolis » cinecalidad
|
||||
» openload » cloudy
|
||||
» uptobox ¤ arreglos internos
|
||||
|
||||
[COLOR green]Gracias a [COLOR yellow]msdos[/COLOR] y [COLOR yellow]prpeaprendiz[/COLOR] por su colaboración en esta versión[/COLOR]
|
||||
</news>
|
||||
<description lang="es">Navega con Kodi por páginas web para ver sus videos de manera fácil.</description>
|
||||
<summary lang="en">Browse web pages using Kodi</summary>
|
||||
|
||||
@@ -298,7 +298,7 @@ def findvideos(item):
|
||||
|
||||
if server_id in server_url:
|
||||
server = server_id.lower()
|
||||
thumbnail = servertools.guess_server_thumbnail(server_id)
|
||||
thumbnail = item.contentThumbnail
|
||||
if server_id == 'TVM':
|
||||
server = 'thevideo.me'
|
||||
url = server_url[server_id] + video_id + '.html'
|
||||
@@ -367,7 +367,7 @@ def play(item):
|
||||
for videoitem in itemlist:
|
||||
videoitem.title = item.fulltitle
|
||||
videoitem.fulltitle = item.fulltitle
|
||||
videoitem.thumbnail = item.extra
|
||||
videoitem.thumbnail = item.contentThumbnail
|
||||
videoitem.channel = item.channel
|
||||
else:
|
||||
itemlist.append(item)
|
||||
@@ -463,9 +463,4 @@ def search(item, texto):
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
return itemlist
|
||||
|
||||
|
||||
def play(item):
|
||||
item.thumbnail = item.contentThumbnail
|
||||
return [item]
|
||||
|
||||
|
||||
@@ -399,7 +399,7 @@ def episodios(item):
|
||||
for i in itemlist:
|
||||
if i.infoLabels['title']:
|
||||
# Si el capitulo tiene nombre propio añadírselo al titulo del item
|
||||
i.title = "%sx%s %s" % (i.infoLabels['season'], i.infoLabels['episode'], i.infoLabels['title'])
|
||||
i.title = "%sx%s: %s" % (i.infoLabels['season'], i.infoLabels['episode'], i.infoLabels['title'])
|
||||
if i.infoLabels.has_key('poster_path'):
|
||||
# Si el capitulo tiene imagen propia remplazar al poster
|
||||
i.thumbnail = i.infoLabels['poster_path']
|
||||
@@ -423,7 +423,7 @@ def findvideos(item):
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
||||
# logger.info(data)
|
||||
patron = '<div id="option-(\d+)" class="[^"]+"><iframe.*?src="([^"]+)".*?</iframe>' #
|
||||
patron = '<div id="option-(\d+)" class="[^"]+"><iframe.*?src="([^"]+)".*?</iframe>' # lang, url
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
|
||||
for option, url in matches:
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"patterns": [
|
||||
{
|
||||
"pattern": "cloudy.ec/(?:embed.php\\?id=|v/)([A-z0-9]+)",
|
||||
"url": "https://www.cloudy.ec/embed.php?id=\\1"
|
||||
"url": "https://www.cloudy.ec/embed.php?id=\\1&playerPage=1"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -49,4 +49,4 @@
|
||||
}
|
||||
],
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,8 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
numeros = scrapertools.find_single_match(data, '_[A-f0-9]+x[A-f0-9]+\s*(?:=|\^)\s*([0-9]{4,}|0x[A-f0-9]{4,})')
|
||||
op1, op2 = scrapertools.find_single_match(data, '\(0x(\d),0x(\d)\);')
|
||||
idparse, hexparse = scrapertools.find_multiple_matches(data, "parseInt\('([0-9]+)'")
|
||||
numeros = [numeros, str(int(hexparse, 8))]
|
||||
# numeros = [numeros, str(int(hexparse, 8))]
|
||||
rangos, rangos2 = scrapertools.find_single_match(data, "\)-([0-9]+).0x4\)/\(([0-9]+)")
|
||||
videourl = ""
|
||||
for encode in var_encodes:
|
||||
text_decode = ""
|
||||
@@ -81,11 +82,12 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
if value3 < index1:
|
||||
break
|
||||
|
||||
value4 = value2 ^ decode1[j % (mult / 8)] ^ int(idparse,8)
|
||||
for n in numeros:
|
||||
if not n.isdigit():
|
||||
n = int(n, 16)
|
||||
value4 ^= int(n)
|
||||
# value4 = value2 ^ decode1[j % (mult / 8)] ^ int(idparse,8)
|
||||
# for n in numeros:
|
||||
# if not n.isdigit():
|
||||
# n = int(n, 16)
|
||||
# value4 ^= int(n)
|
||||
value4 = value2 ^ decode1[(j % 9)] ^ (int(idparse, 8) - int(rangos) + 4) / (int(rangos2) - 8) ^ int(hexparse, 8)
|
||||
value5 = index1 * 2 + 127
|
||||
for h in range(4):
|
||||
valorfinal = (value4 >> 8 * h) & (value5)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import urllib
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from platformcode import logger
|
||||
|
||||
@@ -9,11 +10,11 @@ from platformcode import logger
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
|
||||
data = scrapertools.cache_page(page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
|
||||
if "Streaming link:" in data:
|
||||
return True, ""
|
||||
elif "Unfortunately, the file you want is not available." in data:
|
||||
elif "Unfortunately, the file you want is not available." in data or "Unfortunately, the video you want to see is not available" in data:
|
||||
return False, "[Uptobox] El archivo no existe o ha sido borrado"
|
||||
wait = scrapertools.find_single_match(data, "You have to wait ([0-9]+) (minute|second)")
|
||||
if len(wait) > 0:
|
||||
@@ -27,20 +28,20 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
# Si el enlace es directo de upstream
|
||||
if "uptobox" not in page_url:
|
||||
data = scrapertools.cache_page(page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
if "Video not found" in data:
|
||||
page_url = page_url.replace("uptostream.com/iframe/", "uptobox.com/")
|
||||
data = scrapertools.cache_page(page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
video_urls = uptobox(page_url, data)
|
||||
else:
|
||||
video_urls = uptostream(data)
|
||||
else:
|
||||
data = scrapertools.cache_page(page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
# Si el archivo tiene enlace de streaming se redirige a upstream
|
||||
if "Streaming link:" in data:
|
||||
page_url = "http://uptostream.com/iframe/" + scrapertools.find_single_match(page_url,
|
||||
'uptobox.com/([a-z0-9]+)')
|
||||
data = scrapertools.cache_page(page_url)
|
||||
data = httptools.downloadpage(page_url).data
|
||||
video_urls = uptostream(data)
|
||||
else:
|
||||
# Si no lo tiene se utiliza la descarga normal
|
||||
@@ -76,7 +77,7 @@ def uptobox(url, data):
|
||||
for inputname, inputvalue in matches:
|
||||
post += inputname + "=" + inputvalue + "&"
|
||||
|
||||
data = scrapertools.cache_page(url, post=post[:-1])
|
||||
data = httptools.downloadpage(url, post=post[:-1]).data
|
||||
media = scrapertools.find_single_match(data, '<a href="([^"]+)">\s*<span class="button_upload green">')
|
||||
# Solo es necesario codificar la ultima parte de la url
|
||||
url_strip = urllib.quote(media.rsplit('/', 1)[1])
|
||||
|
||||
Reference in New Issue
Block a user