' in data:
return True
token = scrapertools.find_single_match(data, '
Date: Mon, 7 May 2018 12:40:31 -0500
Subject: [PATCH 07/12] Update launcher.py
---
plugin.video.alfa/platformcode/launcher.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugin.video.alfa/platformcode/launcher.py b/plugin.video.alfa/platformcode/launcher.py
index 60868bb5..9c86a2b5 100644
--- a/plugin.video.alfa/platformcode/launcher.py
+++ b/plugin.video.alfa/platformcode/launcher.py
@@ -24,6 +24,7 @@ def start():
funciones que deseamos que se ejecuten nada mas abrir el plugin.
"""
logger.info()
+ #config.set_setting('show_once', True)
# Test if all the required directories are created
config.verify_directories_created()
From 12ee36650429b639c94543766391fccc0e057453 Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Tue, 8 May 2018 10:40:09 -0500
Subject: [PATCH 08/12] kbagi: optimizado registro
---
plugin.video.alfa/channels/kbagi.py | 90 ++++++++---------------------
1 file changed, 24 insertions(+), 66 deletions(-)
diff --git a/plugin.video.alfa/channels/kbagi.py b/plugin.video.alfa/channels/kbagi.py
index d3fedc41..a43fb282 100644
--- a/plugin.video.alfa/channels/kbagi.py
+++ b/plugin.video.alfa/channels/kbagi.py
@@ -2,12 +2,17 @@
import re
import threading
+import urllib
+import xbmc
+from core import downloadtools
from core import filetools
from core import httptools
+from core import jsontools
from core import scrapertools
from core.item import Item
from platformcode import config, logger
+from platformcode import platformtools
__perfil__ = config.get_setting('perfil', "kbagi")
@@ -26,23 +31,15 @@ adult_content = config.get_setting("adult_content", "kbagi")
def login(pagina):
logger.info()
-
try:
- user = config.get_setting("%suser" % pagina.split(".")[0], "kbagi")
- password = config.get_setting("%spassword" % pagina.split(".")[0], "kbagi")
- if pagina == "kbagi.com":
- if user == "" and password == "":
- return False, "Para ver los enlaces de kbagi es necesario registrarse en kbagi.com"
- elif user == "" or password == "":
- return False, "kbagi: Usuario o contraseña en blanco. Revisa tus credenciales"
- else:
- if user == "" or password == "":
- return False, "DiskoKosmiko: Usuario o contraseña en blanco. Revisa tus credenciales"
-
+ dom = pagina.split(".")[0]
+ user = config.get_setting("%suser" %dom, "kbagi")
+ password = config.get_setting("%spassword" %dom, "kbagi")
+ if not user:
+ return False, "Para ver los enlaces de %s es necesario registrarse en %s" %(dom, pagina)
data = httptools.downloadpage("http://%s" % pagina).data
if re.search(r'(?i)%s' % user, data):
return True, ""
-
token = scrapertools.find_single_match(data, 'name="__RequestVerificationToken".*?value="([^"]+)"')
post = "__RequestVerificationToken=%s&UserName=%s&Password=%s" % (token, user, password)
headers = {'X-Requested-With': 'XMLHttpRequest'}
@@ -64,9 +61,7 @@ def mainlist(item):
logger.info()
itemlist = []
item.text_color = color1
-
logueado, error_message = login("kbagi.com")
-
if not logueado:
itemlist.append(item.clone(title=error_message, action="configuracion", folder=False))
else:
@@ -79,24 +74,25 @@ def mainlist(item):
itemlist.append(item.clone(title=" Búsqueda personalizada", action="filtro",
url="http://kbagi.com/action/SearchFiles"))
itemlist.append(item.clone(title=" Mi cuenta", action="cuenta"))
-
- item.extra = "http://diskokosmiko.mx/"
- itemlist.append(item.clone(title="DiskoKosmiko", action="", text_color=color2))
- itemlist.append(item.clone(title=" Búsqueda", action="search", url="http://diskokosmiko.mx/action/SearchFiles"))
- itemlist.append(item.clone(title=" Colecciones", action="colecciones",
- url="http://diskokosmiko.mx/action/home/MoreNewestCollections?pageNumber=1"))
- itemlist.append(item.clone(title=" Búsqueda personalizada", action="filtro",
- url="http://diskokosmiko.mx/action/SearchFiles"))
- itemlist.append(item.clone(title=" Mi cuenta", action="cuenta"))
- itemlist.append(item.clone(action="", title=""))
-
+ logueado, error_message = login("diskokosmiko.mx")
+ if not logueado:
+ itemlist.append(item.clone(title=error_message, action="configuracion", folder=False))
+ else:
+ item.extra = "http://diskokosmiko.mx/"
+ itemlist.append(item.clone(title="DiskoKosmiko", action="", text_color=color2))
+ itemlist.append(item.clone(title=" Búsqueda", action="search", url="http://diskokosmiko.mx/action/SearchFiles"))
+ itemlist.append(item.clone(title=" Colecciones", action="colecciones",
+ url="http://diskokosmiko.mx/action/home/MoreNewestCollections?pageNumber=1"))
+ itemlist.append(item.clone(title=" Búsqueda personalizada", action="filtro",
+ url="http://diskokosmiko.mx/action/SearchFiles"))
+ itemlist.append(item.clone(title=" Mi cuenta", action="cuenta"))
+ itemlist.append(item.clone(action="", title=""))
folder_thumb = filetools.join(config.get_data_path(), 'thumbs_kbagi')
files = filetools.listdir(folder_thumb)
if files:
itemlist.append(
item.clone(title="Eliminar caché de imágenes (%s)" % len(files), action="delete_cache", text_color="red"))
itemlist.append(item.clone(title="Configuración del canal", action="configuracion", text_color="gold"))
-
return itemlist
@@ -115,7 +111,6 @@ def search(item, texto):
def configuracion(item):
- from platformcode import platformtools
ret = platformtools.show_channel_settings()
platformtools.itemlist_refresh()
return ret
@@ -124,12 +119,10 @@ def configuracion(item):
def listado(item):
logger.info()
itemlist = []
-
data_thumb = httptools.downloadpage(item.url, item.post.replace("Mode=List", "Mode=Gallery")).data
if not item.post:
data_thumb = ""
item.url = item.url.replace("/gallery,", "/list,")
-
data = httptools.downloadpage(item.url, item.post).data
data = re.sub(r"\n|\r|\t|\s{2}| |
", "", data)
@@ -153,12 +146,10 @@ def listado(item):
scrapedthumbnail = filetools.join(folder, "%s.jpg" % url_thumb.split("e=", 1)[1][-20:])
except:
scrapedthumbnail = ""
-
if scrapedthumbnail:
t = threading.Thread(target=download_thumb, args=[scrapedthumbnail, url_thumb])
t.setDaemon(True)
t.start()
-
else:
scrapedthumbnail = item.extra + "/img/file_types/gallery/movie.png"
scrapedurl = item.extra + scrapedurl
@@ -168,7 +159,6 @@ def listado(item):
plot = scrapertools.find_single_match(block, '(.*?)
')
if plot:
plot = scrapertools.decodeHtmlentities(plot)
-
new_item = Item(channel=item.channel, action="findvideos", title=title, url=scrapedurl,
thumbnail=scrapedthumbnail, contentTitle=scrapedtitle, text_color=color2,
extra=item.extra, infoLabels={'plot': plot}, post=item.post)
@@ -182,7 +172,6 @@ def listado(item):
new_item.folderurl = item.url.rsplit("/", 1)[0]
new_item.foldername = item.foldername
new_item.fanart = item.thumbnail
-
itemlist.append(new_item)
next_page = scrapertools.find_single_match(data, 'class="pageSplitter.*?" data-nextpage-number="([^"]+)"')
if next_page:
@@ -194,27 +183,23 @@ def listado(item):
post = ""
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página Siguiente (%s)" % next_page,
url=url, post=post, extra=item.extra))
-
return itemlist
def findvideos(item):
logger.info()
itemlist = []
-
itemlist.append(item.clone(action="play", title="Reproducir/Descargar", server="kbagi"))
usuario = scrapertools.find_single_match(item.url, '%s/([^/]+)/' % item.extra)
url_usuario = item.extra + "/" + usuario
-
if item.folderurl and not item.folderurl.startswith(item.extra):
item.folderurl = item.extra + item.folderurl
if item.post:
itemlist.append(item.clone(action="listado", title="Ver colección: %s" % item.foldername,
url=item.folderurl + "/gallery,1,1?ref=pager", post=""))
-
data = httptools.downloadpage(item.folderurl).data
token = scrapertools.find_single_match(data,
- 'data-action="followChanged.*?name="__RequestVerificationToken".*?value="([^"]+)"')
+ 'data-action="followChanged.*?name="__RequestVerificationToken".*?value="([^"]+)"')
collection_id = item.folderurl.rsplit("-", 1)[1]
post = "__RequestVerificationToken=%s&collectionId=%s" % (token, collection_id)
url = "%s/action/Follow/Follow" % item.extra
@@ -223,18 +208,14 @@ def findvideos(item):
title = "Dejar de seguir la colección: %s" % item.foldername
url = "%s/action/Follow/UnFollow" % item.extra
itemlist.append(item.clone(action="seguir", title=title, url=url, post=post, text_color=color5, folder=False))
-
itemlist.append(
item.clone(action="colecciones", title="Ver colecciones del usuario: %s" % usuario, url=url_usuario))
-
return itemlist
def colecciones(item):
logger.info()
- from core import jsontools
itemlist = []
-
usuario = False
data = httptools.downloadpage(item.url).data
if "Ver colecciones del usuario" not in item.title and not item.index:
@@ -250,10 +231,8 @@ def colecciones(item):
content = scrapertools.find_single_match(data,
'", "", content)
-
patron = '
([^<]+)<.*?src="([^"]+)".*?(.*?)
'
matches = scrapertools.find_multiple_matches(content, patron)
-
index = ""
if item.index and item.index != "0":
matches = matches[item.index:item.index + 20]
@@ -262,7 +241,6 @@ def colecciones(item):
elif len(matches) > 20:
matches = matches[:20]
index = 20
-
folder = filetools.join(config.get_data_path(), 'thumbs_kbagi')
for url, scrapedtitle, thumb, info in matches:
url = item.extra + url + "/gallery,1,1?ref=pager"
@@ -285,13 +263,11 @@ def colecciones(item):
itemlist.append(Item(channel=item.channel, action="listado", title=title, url=url,
thumbnail=scrapedthumbnail, text_color=color2, extra=item.extra,
foldername=scrapedtitle))
-
if not usuario and data.get("NextPageUrl"):
url = item.extra + data["NextPageUrl"]
itemlist.append(item.clone(title=">> Página Siguiente", url=url, text_color=""))
elif index:
itemlist.append(item.clone(title=">> Página Siguiente", url=item.url, index=index, text_color=""))
-
return itemlist
@@ -302,15 +278,12 @@ def seguir(item):
if "Dejar" in item.title:
message = "La colección ya no se sigue"
if data.sucess and config.get_platform() != "plex":
- from platformcode import platformtools
platformtools.dialog_notification("Acción correcta", message)
def cuenta(item):
logger.info()
- import urllib
itemlist = []
-
web = "kbagi"
if "diskokosmiko" in item.extra:
web = "diskokosmiko"
@@ -318,7 +291,6 @@ def cuenta(item):
if not logueado:
itemlist.append(item.clone(title=error_message, action="configuracion", folder=False))
return itemlist
-
user = config.get_setting("%suser" % web, "kbagi")
user = unicode(user, "utf8").lower().encode("utf8")
url = item.extra + "/" + urllib.quote(user)
@@ -336,16 +308,13 @@ def cuenta(item):
text_color=color5, follow=True))
else:
itemlist.append(item.clone(action="", title="No sigues ninguna colección", text_color=color4))
-
return itemlist
def filtro(item):
logger.info()
-
list_controls = []
valores = {}
-
dict_values = None
list_controls.append({'id': 'search', 'label': 'Texto a buscar', 'enabled': True, 'color': '0xFFC52020',
'type': 'text', 'default': '', 'visible': True})
@@ -353,14 +322,12 @@ def filtro(item):
'type': 'list', 'default': -1, 'visible': True})
list_controls[1]['lvalues'] = ['Aplicación', 'Archivo', 'Documento', 'Imagen', 'Música', 'Vídeo', 'Todos']
valores['tipo'] = ['Application', 'Archive', 'Document', 'Image', 'Music', 'Video', '']
-
list_controls.append({'id': 'ext', 'label': 'Extensión', 'enabled': True, 'color': '0xFFF4FA58',
'type': 'text', 'default': '', 'visible': True})
list_controls.append({'id': 'tmin', 'label': 'Tamaño mínimo (MB)', 'enabled': True, 'color': '0xFFCC2EFA',
'type': 'text', 'default': '0', 'visible': True})
list_controls.append({'id': 'tmax', 'label': 'Tamaño máximo (MB)', 'enabled': True, 'color': '0xFF2ECCFA',
'type': 'text', 'default': '0', 'visible': True})
-
# Se utilizan los valores por defecto/guardados
web = "kbagi"
if "diskokosmiko" in item.extra:
@@ -369,7 +336,6 @@ def filtro(item):
if valores_guardados:
dict_values = valores_guardados
item.valores = valores
- from platformcode import platformtools
return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values,
caption="Filtra la búsqueda", item=item, callback='filtrado')
@@ -381,18 +347,15 @@ def filtrado(item, values):
web = "diskokosmiko"
# Guarda el filtro para que sea el que se cargue por defecto
config.set_setting("filtro_defecto_" + web, values_copy, item.channel)
-
tipo = item.valores["tipo"][values["tipo"]]
search = values["search"]
ext = values["ext"]
tmin = values["tmin"]
tmax = values["tmax"]
-
if not tmin.isdigit():
tmin = "0"
if not tmax.isdigit():
tmax = "0"
-
item.valores = ""
item.post = "Mode=List&Type=%s&Phrase=%s&SizeFrom=%s&SizeTo=%s&Extension=%s&ref=pager&pageNumber=1" \
% (tipo, search, tmin, tmax, ext)
@@ -401,18 +364,14 @@ def filtrado(item, values):
def download_thumb(filename, url):
- from core import downloadtools
-
lock = threading.Lock()
lock.acquire()
folder = filetools.join(config.get_data_path(), 'thumbs_kbagi')
if not filetools.exists(folder):
filetools.mkdir(folder)
lock.release()
-
if not filetools.exists(filename):
downloadtools.downloadfile(url, filename, silent=True)
-
return filename
@@ -420,5 +379,4 @@ def delete_cache(url):
folder = filetools.join(config.get_data_path(), 'thumbs_kbagi')
filetools.rmdirtree(folder)
if config.is_xbmc():
- import xbmc
xbmc.executebuiltin("Container.Refresh")
From 7ac01695151e0ceb8fd3cfc41b6bdd60193bb0ee Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Tue, 8 May 2018 11:03:39 -0500
Subject: [PATCH 09/12] Update allcalidad.json
---
plugin.video.alfa/channels/allcalidad.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugin.video.alfa/channels/allcalidad.json b/plugin.video.alfa/channels/allcalidad.json
index 0caed17c..fb51190c 100755
--- a/plugin.video.alfa/channels/allcalidad.json
+++ b/plugin.video.alfa/channels/allcalidad.json
@@ -4,7 +4,7 @@
"active": true,
"adult": false,
"language": ["lat"],
- "thumbnail": "https://s22.postimg.org/irnlwuizh/allcalidad1.png",
+ "thumbnail": "https://s22.postimg.cc/9wmrmbu75/allcalidad1.png",
"banner": "https://s22.postimg.org/9y1athlep/allcalidad2.png",
"categories": [
"movie",
From 3d2272e26cf63a3318f392b6e252924a7802af81 Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Wed, 9 May 2018 12:20:53 -0500
Subject: [PATCH 10/12] =?UTF-8?q?allcalidad:=20fix=20tmdb=20cuando=20no=20?=
=?UTF-8?q?hay=20a=C3=B1o?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
plugin.video.alfa/channels/allcalidad.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/plugin.video.alfa/channels/allcalidad.py b/plugin.video.alfa/channels/allcalidad.py
index 58d9bfa2..3f1f56a7 100755
--- a/plugin.video.alfa/channels/allcalidad.py
+++ b/plugin.video.alfa/channels/allcalidad.py
@@ -136,6 +136,12 @@ def peliculas(item):
def findvideos(item):
itemlist = []
data = httptools.downloadpage(item.url).data
+ if not item.infoLabels["year"]:
+ item.infoLabels["year"] = scrapertools.find_single_match(data, 'dateCreated.*?(\d{4})')
+ if "orig_title" in data:
+ contentTitle = scrapertools.find_single_match(data, 'orig_title.*?>([^<]+)<').strip()
+ if contentTitle != "":
+ item.contentTitle = contentTitle
patron = '(?s)fmi(.*?)thead'
bloque = scrapertools.find_single_match(data, patron)
match = scrapertools.find_multiple_matches(bloque, '(?is)(?:iframe|script) .*?src="([^"]+)')
@@ -173,7 +179,7 @@ def findvideos(item):
if config.get_videolibrary_support():
itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green",
action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail,
- fulltitle = item.fulltitle
+ contentTitle = item.contentTitle
))
return itemlist
From 70b54a939f6e08821854416814391468579a02ad Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Wed, 9 May 2018 12:24:12 -0500
Subject: [PATCH 11/12] cinefox: fix
---
plugin.video.alfa/channels/cinefox.py | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/plugin.video.alfa/channels/cinefox.py b/plugin.video.alfa/channels/cinefox.py
index a1f355be..3fabca96 100644
--- a/plugin.video.alfa/channels/cinefox.py
+++ b/plugin.video.alfa/channels/cinefox.py
@@ -674,13 +674,6 @@ def findvideos(item):
type = item.type.replace("streaming", "Online").replace("download", "de Descarga")
itemlist.extend(get_enlaces(item, url, type))
- # Requerido para FilterTools
-
- itemlist = filtertools.get_links(itemlist, item, list_language)
-
- # Requerido para AutoPlay
-
- autoplay.start(itemlist, item)
if __comprueba_enlaces__:
for it in itemlist:
@@ -688,6 +681,15 @@ def findvideos(item):
it.url = normalizar_url(it.url, it.server)
itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__)
+ # Requerido para FilterTools
+
+ itemlist = filtertools.get_links(itemlist, item, list_language)
+
+ # Requerido para AutoPlay
+
+ autoplay.start(itemlist, item)
+
+
return itemlist
def normalizar_url(url, server):
From cb558fe9367c5b13e63c8a8c022ff6e1bff4f0b5 Mon Sep 17 00:00:00 2001
From: Alfa <30527549+alfa-addon@users.noreply.github.com>
Date: Wed, 9 May 2018 12:39:02 -0500
Subject: [PATCH 12/12] v2.5.13
---
plugin.video.alfa/addon.xml | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml
index 65bac5cd..a71fb5e5 100755
--- a/plugin.video.alfa/addon.xml
+++ b/plugin.video.alfa/addon.xml
@@ -1,5 +1,5 @@
-
+
@@ -19,11 +19,12 @@
[B]Estos son los cambios para esta versión:[/B]
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
- » plusdede » yespornplease
- » cinefox
+ » plusdede » cinefox
+ » kbagi/diskokosmiko » ultrapeliculashd
+ » mejortorrent » allcalidad
+
¤ arreglos internos
- ¤ Gracias a @fcammed y @t1254362 por colaborar en ésta versión
Navega con Kodi por páginas web para ver sus videos de manera fácil.
Browse web pages using Kodi