Compare commits
266 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c65e2d20c | ||
|
|
2a5c27355b | ||
|
|
cad93526ce | ||
|
|
4cfe60c2a8 | ||
|
|
10a7535242 | ||
|
|
489cd02192 | ||
|
|
089098c58f | ||
|
|
57e5d32567 | ||
|
|
9adcafc343 | ||
|
|
cf068bc13f | ||
|
|
7579428087 | ||
|
|
5ca2ed6212 | ||
|
|
11494549b9 | ||
|
|
77423ec5a8 | ||
|
|
be2c691909 | ||
|
|
611a0e28a3 | ||
|
|
8ea2efb632 | ||
|
|
f71de37f0f | ||
|
|
d4b2a61318 | ||
|
|
fd1f5c28df | ||
|
|
1e08ee9bd6 | ||
|
|
08ac52b279 | ||
|
|
7b52463ce6 | ||
|
|
e79364ef93 | ||
|
|
de4b08606a | ||
|
|
21b655b074 | ||
|
|
48120ac6ab | ||
|
|
5c360bdc68 | ||
|
|
de267299e7 | ||
|
|
d0139dfde3 | ||
|
|
7115c2f832 | ||
|
|
85135711de | ||
|
|
8c5c495633 | ||
|
|
fdcf27a5fa | ||
|
|
7523b02e62 | ||
|
|
3ca234f8ae | ||
|
|
2848692d79 | ||
|
|
d6f73e1f06 | ||
|
|
0dbf9c544a | ||
|
|
4fdf382ca3 | ||
|
|
ca943ab6ef | ||
|
|
41a66823e5 | ||
|
|
a6206420b5 | ||
|
|
1ebe99ede1 | ||
|
|
aaa0149bc8 | ||
|
|
4cb704a6c3 | ||
|
|
411b3ce23d | ||
|
|
1b0f91d4f2 | ||
|
|
f97a283175 | ||
|
|
3b02b62a29 | ||
|
|
25f8a9dc4b | ||
|
|
860bd0f834 | ||
|
|
6bede726f8 | ||
|
|
f045d2ee7c | ||
|
|
51c4d7d746 | ||
|
|
f340cbce3a | ||
|
|
16bcfdcb15 | ||
|
|
11ef80c3e0 | ||
|
|
4d2562eaac | ||
|
|
5a1a1a97f1 | ||
|
|
035f27f887 | ||
|
|
f1db1236f1 | ||
|
|
790420df0d | ||
|
|
6999f615c8 | ||
|
|
78a6eecf2e | ||
|
|
c9a96831d8 | ||
|
|
e6cfcd3151 | ||
|
|
4fda116759 | ||
|
|
3c2902d5ea | ||
|
|
93ab41c2da | ||
|
|
87541a3291 | ||
|
|
46646e09d1 | ||
|
|
a206b9ddaf | ||
|
|
76f52ce404 | ||
|
|
afc13bd1d3 | ||
|
|
4469fc75cd | ||
|
|
8428e8571b | ||
|
|
b640303143 | ||
|
|
7456c32fbb | ||
|
|
a8ddc664d4 | ||
|
|
be3345d34f | ||
|
|
d9677a13ea | ||
|
|
d3d44463b7 | ||
|
|
6f63ea5128 | ||
|
|
48740f4a1d | ||
|
|
5224547446 | ||
|
|
feb4f239e3 | ||
|
|
164804d484 | ||
|
|
162928f4d6 | ||
|
|
4c24fe48ed | ||
|
|
5bf145114d | ||
|
|
39669395ae | ||
|
|
f5a5979f74 | ||
|
|
476f7f985d | ||
|
|
42d20e9434 | ||
|
|
9adb713d07 | ||
|
|
513d66dfb4 | ||
|
|
537c2cb0e4 | ||
|
|
ddda31b2af | ||
|
|
c5d1bc1988 | ||
|
|
44a89836d5 | ||
|
|
878dbc8393 | ||
|
|
d625419219 | ||
|
|
742ff3feff | ||
|
|
df0607ec90 | ||
|
|
d83a49743c | ||
|
|
66762b2c46 | ||
|
|
79c761206d | ||
|
|
f04647f348 | ||
|
|
0f81113225 | ||
|
|
169c09db16 | ||
|
|
306bb6533d | ||
|
|
210e90cb96 | ||
|
|
74e53f362b | ||
|
|
947cb7f51f | ||
|
|
f88ca81ff5 | ||
|
|
42cd9ac14b | ||
|
|
b7520145bb | ||
|
|
209af696b2 | ||
|
|
03589b9c39 | ||
|
|
a3337df4da | ||
|
|
acf7f9a27a | ||
|
|
8082e1b244 | ||
|
|
d37f911d3f | ||
|
|
9345115869 | ||
|
|
7ae8b203b6 | ||
|
|
56c16f2922 | ||
|
|
7e47e3ae59 | ||
|
|
9eef89d1b0 | ||
|
|
2b3d81c9a0 | ||
|
|
876b02b81f | ||
|
|
8028290051 | ||
|
|
78252d3452 | ||
|
|
9aa77400d5 | ||
|
|
c7850cef56 | ||
|
|
3746d3bfb0 | ||
|
|
5d592f724d | ||
|
|
d288031a83 | ||
|
|
41a39ff02b | ||
|
|
0bad69a7cb | ||
|
|
74e6145d2f | ||
|
|
c344832c8c | ||
|
|
a9caf59ce1 | ||
|
|
770a2e215a | ||
|
|
28d99deb48 | ||
|
|
23ac80fbd6 | ||
|
|
9a5ddfbccb | ||
|
|
50bbf7d9aa | ||
|
|
2aab5ae0ff | ||
|
|
1bbc51a885 | ||
|
|
f95c3621d4 | ||
|
|
f05cbba109 | ||
|
|
16968f9204 | ||
|
|
8985f3ebdd | ||
|
|
d60c246bbb | ||
|
|
3b29fe47bb | ||
|
|
3093f72ce5 | ||
|
|
55dcf3f091 | ||
|
|
2924b6958d | ||
|
|
927310c7c6 | ||
|
|
0c25891790 | ||
|
|
212c06057f | ||
|
|
9c3b3e9256 | ||
|
|
6dc853b41e | ||
|
|
7afd09dfa9 | ||
|
|
6855508eaa | ||
|
|
2925c29671 | ||
|
|
506e68e8a3 | ||
|
|
9cc30152f8 | ||
|
|
267c9d8031 | ||
|
|
bd68b83b6c | ||
|
|
71bf6ce57b | ||
|
|
c1f8039672 | ||
|
|
99dfa2be58 | ||
|
|
39e711b3cb | ||
|
|
2d8d2b3baf | ||
|
|
82d126c3e1 | ||
|
|
8d41fd1c64 | ||
|
|
a8c2f409eb | ||
|
|
7b2a3c2181 | ||
|
|
9e6729f0be | ||
|
|
241e644dcf | ||
|
|
ae318721ab | ||
|
|
8328610ffa | ||
|
|
19101b5310 | ||
|
|
22827e0f7e | ||
|
|
f3b4ddee25 | ||
|
|
1747c9795d | ||
|
|
f3effe9a7f | ||
|
|
0621b1fa91 | ||
|
|
16473764c9 | ||
|
|
6b1727a0b8 | ||
|
|
11fceffd14 | ||
|
|
3a49b8a442 | ||
|
|
162772e9dc | ||
|
|
60d61f861b | ||
|
|
cd1c7b692a | ||
|
|
10abe4a6d4 | ||
|
|
b0fa5e8a75 | ||
|
|
54d6a943f5 | ||
|
|
44df5b6036 | ||
|
|
ae67d9b5ee | ||
|
|
895d14760d | ||
|
|
b0b4b218f0 | ||
|
|
2f4fb66ff0 | ||
|
|
348787ae97 | ||
|
|
0f7c11efad | ||
|
|
ae7a4a8d83 | ||
|
|
fc58c717eb | ||
|
|
b3a19f3d20 | ||
|
|
0cac09eef5 | ||
|
|
9a1effbe25 | ||
|
|
44145660d0 | ||
|
|
aec2674316 | ||
|
|
09de611aae | ||
|
|
74598154c2 | ||
|
|
7ab9c8bb29 | ||
|
|
14178974a0 | ||
|
|
c43162cbc2 | ||
|
|
aa76986a51 | ||
|
|
357be3f648 | ||
|
|
609f3f6ebc | ||
|
|
e0ce83f2f1 | ||
|
|
a7d3294ba3 | ||
|
|
338409ca3b | ||
|
|
dfea08ffee | ||
|
|
c32dfcc476 | ||
|
|
f3e818dd29 | ||
|
|
4dfcdb11d3 | ||
|
|
863b9a5c3e | ||
|
|
26c2b26034 | ||
|
|
a56513b5df | ||
|
|
f5a7f6383c | ||
|
|
df62398c64 | ||
|
|
9aae0e7a1b | ||
|
|
e1fe886602 | ||
|
|
19812c83a9 | ||
|
|
cabc2458e3 | ||
|
|
336376ecef | ||
|
|
195e393e31 | ||
|
|
af06269e39 | ||
|
|
f37d18ee0a | ||
|
|
6fefc3b048 | ||
|
|
d1630a3c3d | ||
|
|
ab5fe41403 | ||
|
|
15463ea0f8 | ||
|
|
5a7905d5e0 | ||
|
|
e348c26d9e | ||
|
|
badf40573c | ||
|
|
c80793e3e0 | ||
|
|
cbc0ff0bd0 | ||
|
|
672d1ce0c0 | ||
|
|
17002ddf94 | ||
|
|
2618168737 | ||
|
|
e6e572922f | ||
|
|
6a7e883299 | ||
|
|
d1a264f7c7 | ||
|
|
295f4eab68 | ||
|
|
e72320f12f | ||
|
|
dc77e9733b | ||
|
|
7864fe3740 | ||
|
|
ba03b01cc0 | ||
|
|
97d299b863 | ||
|
|
e85f31dadf | ||
|
|
c54ed630f9 | ||
|
|
5122d2f7fa |
@@ -1,2 +1,2 @@
|
||||
Debe ejecutar primero el archivo "script.py".
|
||||
Debe ejecutar primero el archivo "script.py", si no lo hizo antes.
|
||||
Una vez realizado el proceso podrá ejecutar como siempre "alfa.py" para iniciar el addon.
|
||||
@@ -12,11 +12,17 @@ import channelselector
|
||||
from controller import Controller
|
||||
from controller import Platformtools
|
||||
from platformcode import config
|
||||
from core import versiontools
|
||||
from core.item import Item
|
||||
from core.tmdb import Tmdb
|
||||
from platformcode import launcher, logger
|
||||
from core import filetools
|
||||
|
||||
# <addon id="plugin.video.alfa" name="Alfa" version="2.3.0" provider-name="Alfa Addon">
|
||||
data = filetools.read(filetools.join(config.get_runtime_path(), "addon.xml"))
|
||||
aux = re.findall('<addon id="plugin.video.alfa" name="Alfa" version="([^"]+)"', data, re.MULTILINE | re.DOTALL)
|
||||
version = "???"
|
||||
if len(aux) > 0:
|
||||
version = aux[0]
|
||||
|
||||
class html(Controller):
|
||||
pattern = re.compile("##")
|
||||
@@ -29,8 +35,8 @@ class html(Controller):
|
||||
if self.handler:
|
||||
self.client_ip = handler.client.getpeername()[0]
|
||||
self.send_message({"action": "connect",
|
||||
"data": {"version": "Alfa %s" % versiontools.get_current_plugin_version_tag(),
|
||||
"date": versiontools.get_current_plugin_date()}})
|
||||
"data": {"version": "Alfa %s" % version,
|
||||
"date": "--/--/----"}})
|
||||
t = threading.Thread(target=launcher.start, name=ID)
|
||||
t.setDaemon(True)
|
||||
t.start()
|
||||
|
||||
@@ -87,33 +87,16 @@ def run(item):
|
||||
if item.action == "mainlist":
|
||||
itemlist = channelselector.getmainlist("banner_")
|
||||
|
||||
# if config.get_setting("check_for_plugin_updates"):
|
||||
# logger.info("channelselector.mainlist Verificar actualizaciones activado")
|
||||
#
|
||||
# from core import updater
|
||||
# try:
|
||||
# version = updater.checkforupdates()
|
||||
#
|
||||
# if version:
|
||||
# platformtools.dialog_ok("Versión " + version + " disponible",
|
||||
# "Ya puedes descargar la nueva versión del plugin\ndesde el listado principal")
|
||||
# itemlist.insert(0, Item(title="Actualizar Alfa a la versión " + version, version=version,
|
||||
# channel="updater", action="update",
|
||||
# thumbnail=os.path.join(config.get_runtime_path(), "resources", "images",
|
||||
# "banner", "thumb_update.png")))
|
||||
# except:
|
||||
# platformtools.dialog_ok("No se puede conectar", "No ha sido posible comprobar",
|
||||
# "si hay actualizaciones")
|
||||
# logger.info("Fallo al verificar la actualización")
|
||||
#
|
||||
# else:
|
||||
# logger.info("Verificar actualizaciones desactivado")
|
||||
|
||||
if item.action == "getchanneltypes":
|
||||
itemlist = channelselector.getchanneltypes("banner_")
|
||||
if item.action == "filterchannels":
|
||||
itemlist = channelselector.filterchannels(item.channel_type, "banner_")
|
||||
|
||||
elif item.action == "script":
|
||||
from core import tmdb
|
||||
if tmdb.drop_bd():
|
||||
platformtools.dialog_notification("Alfa", "caché eliminada", time=2000, sound=False)
|
||||
|
||||
# Todas las demas las intenta ejecturaren el siguiente orden:
|
||||
# 1. En el canal
|
||||
# 2. En el launcher
|
||||
|
||||
@@ -22,14 +22,9 @@
|
||||
<setting id="adult_aux_new_password1" type="text" label="Nueva contraseña:" option="hidden" enable="!eq(-3,)" default=""/>
|
||||
<setting id="adult_aux_new_password2" type="text" label="Confirmar nueva contraseña:" option="hidden" enable="!eq(-1,)" default=""/>
|
||||
|
||||
<!--<setting type="sep"/>-->
|
||||
<!--<setting label="Actualizaciones" type="lsep"/>-->
|
||||
<!--<setting id="plugin_updates_available" type="number" label="Number of updates available" default="0" visible="false"/>-->
|
||||
<!--<setting id="check_for_plugin_updates" type="bool" label="30001" default="true"/>-->
|
||||
<!--<setting id="check_for_channel_updates" type="bool" label="30004" default="true"/>-->
|
||||
</category>
|
||||
|
||||
<!-- Path downloads and subtitles -->
|
||||
<!-- Path downloads -->
|
||||
<category label="30501">
|
||||
<setting type="sep"/>
|
||||
<setting id="downloadpath" type="text" label="30017" default=""/>
|
||||
@@ -41,4 +36,19 @@
|
||||
<setting id="folder_tvshows" type="text" label="Nombre de carpeta para 'Series'" default="SERIES"/>
|
||||
<setting id="folder_movies" type="text" label="Nombre de carpeta para 'Peliculas'" default="CINE"/>
|
||||
</category>
|
||||
|
||||
|
||||
<category label="Otros">
|
||||
<setting label="Info de películas/series en menú contextual" type="lsep"/>
|
||||
<setting id="infoplus" type="bool" label="Mostrar opción Infoplus:" default="true"/>
|
||||
|
||||
<setting type="sep"/>
|
||||
<setting label="TheMovieDB (obtiene datos de las películas o series)" type="lsep"/>
|
||||
<setting id="tmdb_threads" type="labelenum" values="5|10|15|20|25|30" label="Búsquedas simultáneas (puede causar inestabilidad)" default="20"/>
|
||||
<setting id="tmdb_plus_info" type="bool" label="Buscar información extendida (datos de actores) Aumenta el tiempo de búsqueda" default="false"/>
|
||||
<setting id="tmdb_cache" type="bool" label="Usar caché (mejora las búsquedas recurrentes)" default="true"/>
|
||||
<setting id="tmdb_cache_expire" type="enum" lvalues="cada 1 día|cada 7 días|cada 15 días|cada 30 días|No" label="¿Renovar caché?" enable="eq(-1,true)" default="4"/>
|
||||
<!--<setting id="tmdb_clean_db_cache" type="action" label="Pulse para 'Borrar caché' guardada" action="RunPlugin(plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAic2NyaXB0Ig0KfQ==)" />-->
|
||||
</category>
|
||||
|
||||
</settings>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="plugin.video.alfa" name="Alfa" version="2.3.0" provider-name="Alfa Addon">
|
||||
<addon id="plugin.video.alfa" name="Alfa" version="2.4.3" provider-name="Alfa Addon">
|
||||
<requires>
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
<import addon="script.module.libtorrent" optional="true"/>
|
||||
@@ -19,15 +19,12 @@
|
||||
</assets>
|
||||
<news>[B]Estos son los cambios para esta versión:[/B]
|
||||
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
|
||||
» cartoonlatino » serieslan
|
||||
» pelisplus » pedropolis
|
||||
» flashx » cinetux
|
||||
» animeflv_ru » streamixcloud
|
||||
» estrenosgo » animemovil
|
||||
» allpeliculas » pelismundo
|
||||
¤ arreglos internos
|
||||
[COLOR green]Gracias a [COLOR yellow]Danielr460[/COLOR] por su colaboración en esta versión[/COLOR]
|
||||
</news>
|
||||
» cinetux » descargasmix
|
||||
» hdfull » peliculasdk
|
||||
» pelisfox » yaske
|
||||
» gvideo » powvideo
|
||||
» yourupload ¤ arreglos internos
|
||||
</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>
|
||||
<description lang="en">Browse web pages using Kodi, you can easily watch their video content.</description>
|
||||
|
||||
@@ -6,13 +6,6 @@
|
||||
"language": ["lat"],
|
||||
"thumbnail": "https://s22.postimg.org/irnlwuizh/allcalidad1.png",
|
||||
"banner": "https://s22.postimg.org/9y1athlep/allcalidad2.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "14/07/2017",
|
||||
"description": "Primera version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"direct"
|
||||
@@ -26,6 +19,14 @@
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_global_search",
|
||||
"type": "bool",
|
||||
|
||||
@@ -33,7 +33,7 @@ def newest(categoria):
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
if categoria in ['peliculas','latino']:
|
||||
item.url = host
|
||||
elif categoria == 'infantiles':
|
||||
item.url = host + 'category/animacion/'
|
||||
|
||||
@@ -4,29 +4,6 @@
|
||||
"language": ["lat"],
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "24/06/2017",
|
||||
"description": "Url mal escritas"
|
||||
},
|
||||
{
|
||||
"date": "10/06/2017",
|
||||
"description": "Reparado búsqueda de videos"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "16/02/2017",
|
||||
"description": "Añadidas nuevas opciones y servidores"
|
||||
},
|
||||
{
|
||||
"date": "19/03/2016",
|
||||
"description": "Añadido soporte para la videoteca y reparada busqueda global."
|
||||
}
|
||||
],
|
||||
"thumbnail": "http://i.imgur.com/aWCDWtn.png",
|
||||
"banner": "allpeliculas.png",
|
||||
"categories": [
|
||||
@@ -43,6 +20,14 @@
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_peliculas",
|
||||
"type": "bool",
|
||||
@@ -73,4 +58,4 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import urlparse
|
||||
|
||||
from core import httptools
|
||||
from core import jsontools
|
||||
from core import scrapertools
|
||||
@@ -59,6 +57,7 @@ def colecciones(item):
|
||||
title = scrapedtitle.capitalize() + " (" + scrapedcantidad + ")"
|
||||
itemlist.append(Item(channel = item.channel,
|
||||
action = "listado_colecciones",
|
||||
page = 1,
|
||||
thumbnail = host + scrapedthumbnail,
|
||||
title = title,
|
||||
url = host + scrapedurl
|
||||
@@ -71,7 +70,7 @@ def listado_colecciones(item):
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data_url = scrapertools.find_single_match(data, "data_url: '([^']+)")
|
||||
post = "page=1"
|
||||
post = "page=%s" %item.page
|
||||
data = httptools.downloadpage(host + data_url, post=post).data
|
||||
patron = 'a href="(/peli[^"]+).*?'
|
||||
patron += 'src="([^"]+).*?'
|
||||
@@ -88,6 +87,16 @@ def listado_colecciones(item):
|
||||
url = host + scrapedurl
|
||||
))
|
||||
tmdb.set_infoLabels(itemlist)
|
||||
item.page += 1
|
||||
post = "page=%s" %item.page
|
||||
data = httptools.downloadpage(host + data_url, post=post).data
|
||||
if len(data) > 50:
|
||||
itemlist.append(Item(channel = item.channel,
|
||||
action = "listado_colecciones",
|
||||
title = "Pagina siguiente>>",
|
||||
page = item.page,
|
||||
url = item.url
|
||||
))
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -159,6 +168,7 @@ def lista(item):
|
||||
params = jsontools.dump(dict_param)
|
||||
|
||||
data = httptools.downloadpage(item.url, post=params).data
|
||||
data = data.replace("<mark>","").replace("<\/mark>","")
|
||||
dict_data = jsontools.load(data)
|
||||
|
||||
for it in dict_data["items"]:
|
||||
@@ -167,7 +177,7 @@ def lista(item):
|
||||
rating = it["imdb"]
|
||||
year = it["year"]
|
||||
url = host + "pelicula/" + it["slug"]
|
||||
thumb = urlparse.urljoin(host, it["image"])
|
||||
thumb = host + it["image"]
|
||||
item.infoLabels['year'] = year
|
||||
itemlist.append(item.clone(action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumb,
|
||||
plot=plot, context=["buscar_trailer"], contentTitle=title, contentType="movie"))
|
||||
@@ -207,7 +217,7 @@ def newest(categoria):
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == "peliculas":
|
||||
if categoria in ['peliculas','latino']:
|
||||
item.url = host + "movies/newmovies?page=1"
|
||||
item.action = "lista"
|
||||
itemlist = lista(item)
|
||||
|
||||
@@ -5,13 +5,6 @@
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://imgur.com/sLaXHvp.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "26/04/2017",
|
||||
"description": "Release"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie"
|
||||
@@ -32,6 +25,14 @@
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_torrent",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Torrent",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -54,6 +54,7 @@ def browser(url):
|
||||
api_key = "2e2160006592024ba87ccdf78c28f49f"
|
||||
api_fankey = "dffe90fba4d02c199ae7a9e71330c987"
|
||||
|
||||
host = 'http://alltorrent.net/'
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
@@ -392,3 +393,26 @@ def get_art(item):
|
||||
item.extra = item.extra + "|" + item.thumbnail
|
||||
else:
|
||||
item.extra = item.extra + "|" + item.thumbnail
|
||||
|
||||
|
||||
def newest(categoria):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'torrent':
|
||||
item.url = host
|
||||
|
||||
itemlist = scraper(item)
|
||||
|
||||
if itemlist[-1].action == "[COLOR olivedrab][B]Siguiente >>[/B][/COLOR]":
|
||||
itemlist.pop()
|
||||
|
||||
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("{0}".format(line))
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,25 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "animeflv.png",
|
||||
"banner": "animeflv.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "18/05/2017",
|
||||
"description": "fix ultimos animes, episodios"
|
||||
},
|
||||
{
|
||||
"date": "06/04/2017",
|
||||
"description": "fix ultimos episodios"
|
||||
},
|
||||
{
|
||||
"date": "01/03/2017",
|
||||
"description": "fix nueva web"
|
||||
},
|
||||
{
|
||||
"date": "09/07/2016",
|
||||
"description": "Arreglo viewmode"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"anime"
|
||||
],
|
||||
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "http://i.imgur.com/x9AdvBx.png",
|
||||
"banner": "http://i.imgur.com/dTZwCPq.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "05/01/2017",
|
||||
"description": "Actualizada url de la opción Novedades. Arreglado un error que impedia que se mostrara un solo resultado al realizar busquedas. Limpieza de código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "nuevo canal"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"anime"
|
||||
],
|
||||
|
||||
@@ -11,6 +11,12 @@ from core import scrapertools
|
||||
from core import servertools
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
from channels import autoplay
|
||||
|
||||
list_servers = ['openload',
|
||||
'directo'
|
||||
]
|
||||
list_quality = ['default']
|
||||
|
||||
CHANNEL_HOST = "http://animeflv.co"
|
||||
CHANNEL_DEFAULT_HEADERS = [
|
||||
@@ -117,7 +123,8 @@ def __find_series(html):
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
|
||||
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
itemlist = list()
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="letras",
|
||||
@@ -134,6 +141,7 @@ def mainlist(item):
|
||||
url=CHANNEL_HOST + "/Buscar?s="))
|
||||
|
||||
itemlist = renumbertools.show_option(item.channel, itemlist)
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -179,10 +187,13 @@ def search(item, texto):
|
||||
show_list = __find_series(html)
|
||||
|
||||
items = []
|
||||
context = renumbertools.context(item)
|
||||
context2 = autoplay.context
|
||||
context.extend(context2)
|
||||
for show in show_list:
|
||||
title, url, thumbnail, plot = show
|
||||
items.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail,
|
||||
plot=plot, show=title, viewmode="movies_with_plot", context=renumbertools.context(item)))
|
||||
plot=plot, show=title, viewmode="movies_with_plot", context=context))
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
@@ -197,10 +208,13 @@ def series(item):
|
||||
page_html = get_url_contents(item.url)
|
||||
show_list = __find_series(page_html)
|
||||
items = []
|
||||
context = renumbertools.context(item)
|
||||
context2 = autoplay.context
|
||||
context.extend(context2)
|
||||
for show in show_list:
|
||||
title, url, thumbnail, plot = show
|
||||
items.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail,
|
||||
plot=plot, show=title, viewmode="movies_with_plot", context=renumbertools.context(item)))
|
||||
plot=plot, show=title, viewmode="movies_with_plot", context=context))
|
||||
|
||||
url_next_page = scrapertools.find_single_match(page_html, REGEX_NEXT_PAGE)
|
||||
if url_next_page:
|
||||
@@ -292,4 +306,5 @@ def findvideos(item):
|
||||
itemlist.append(Item(channel=item.channel, action="play", url=video_url, show=re.escape(item.show),
|
||||
title="Ver en calidad [%s]" % (qualities[quality_id]), plot=item.plot,
|
||||
fulltitle=item.title))
|
||||
autoplay.start(__sort_by_quality(itemlist), item)
|
||||
return __sort_by_quality(itemlist)
|
||||
|
||||
@@ -6,22 +6,9 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "http://i.imgur.com/5nRR9qq.png",
|
||||
"banner": "animeflv_ru.png",
|
||||
"version": 1,
|
||||
"compatible": {
|
||||
"python": "2.7.9"
|
||||
},
|
||||
"changes": {
|
||||
"change": [
|
||||
{
|
||||
"date": "06/04/2017",
|
||||
"description": "fix"
|
||||
},
|
||||
{
|
||||
"date": "01/03/2017",
|
||||
"description": "fix nueva web"
|
||||
}
|
||||
]
|
||||
},
|
||||
"categories": [
|
||||
"anime"
|
||||
],
|
||||
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "animeid.png",
|
||||
"banner": "animeid.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "17/05/2017",
|
||||
"description": "Fix novedades y replace en findvideos"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "04/01/16",
|
||||
"description": "Arreglado problema en findvideos"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"anime"
|
||||
],
|
||||
|
||||
@@ -3,16 +3,9 @@
|
||||
"name": "Animemovil",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["*"],
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "https://s1.postimg.org/92ji7stii7/animemovil1.png",
|
||||
"banner": "",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "24/10/2017",
|
||||
"description": "Primera version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"anime"
|
||||
],
|
||||
|
||||
@@ -86,7 +86,7 @@ def recientes(item):
|
||||
tipo = "tvshow"
|
||||
show = contentTitle
|
||||
action = "episodios"
|
||||
context = renumbertools.context
|
||||
context = renumbertools.context(item)
|
||||
if item.extra == "recientes":
|
||||
action = "findvideos"
|
||||
context = ""
|
||||
@@ -96,7 +96,6 @@ def recientes(item):
|
||||
action = "peliculas"
|
||||
if not thumb.startswith("http"):
|
||||
thumb = "http:%s" % thumb
|
||||
|
||||
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
||||
itemlist.append(item.clone(action=action, title=title, url=url, thumbnail=thumb, text_color=color3,
|
||||
contentTitle=contentTitle, contentSerieName=show, infoLabels=infoLabels,
|
||||
@@ -138,7 +137,7 @@ def listado(item):
|
||||
|
||||
itemlist.append(item.clone(action=action, title=scrapedtitle, url=url, thumbnail=thumb, text_color=color3,
|
||||
contentTitle=title, contentSerieName=show, infoLabels=infoLabels,
|
||||
context=renumbertools.context, contentType=tipo))
|
||||
context=renumbertools.context(item), contentType=tipo))
|
||||
|
||||
|
||||
try:
|
||||
@@ -205,7 +204,7 @@ def completo(item):
|
||||
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
||||
itemlist.append(Item(channel=item.channel, action=action, title=scrapedtitle, url=url, thumbnail=thumb,
|
||||
text_color=color3, contentTitle=title, contentSerieName=show, extra="completo",
|
||||
context=renumbertools.context, contentType=tipo, infoLabels=infoLabels))
|
||||
context=renumbertools.context(item), contentType=tipo, infoLabels=infoLabels))
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -227,7 +226,7 @@ def episodios(item):
|
||||
for url, title in matches:
|
||||
url = host + url
|
||||
epi = scrapertools.find_single_match(title, '(?i)%s.*? (\d+) (?:Sub|Audio|Español)' % item.contentSerieName)
|
||||
new_item = item.clone(action="findvideos", url=url, title=title, extra="", context=renumbertools.context)
|
||||
new_item = item.clone(action="findvideos", url=url, title=title, extra="")
|
||||
if epi:
|
||||
season, episode = renumbertools.numbered_for_tratk(
|
||||
item.channel, show, 1, int(epi))
|
||||
@@ -301,7 +300,7 @@ def emision(item):
|
||||
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
||||
itemlist.append(item.clone(action="episodios", title=scrapedtitle, url=url, thumbnail=thumb, text_color=color3,
|
||||
contentTitle=title, contentSerieName=title, extra="recientes",
|
||||
context=renumbertools.context, infoLabels=infoLabels))
|
||||
context=renumbertools.context(item), infoLabels=infoLabels))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "https://s21.postimg.org/b43i3ljav/animeshd.png",
|
||||
"banner": "https://s4.postimg.org/lulxulmql/animeshd-banner.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "03/06/2017",
|
||||
"description": "limpieza de codigo"
|
||||
},
|
||||
{
|
||||
"date": "25/05/2017",
|
||||
"description": "cambios esteticos"
|
||||
},
|
||||
{
|
||||
"date": "19/05/2017",
|
||||
"description": "First release"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"anime"
|
||||
]
|
||||
|
||||
@@ -5,13 +5,6 @@
|
||||
"adult": false,
|
||||
"language": "es",
|
||||
"thumbnail": "http://i.imgur.com/dHpupFk.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "17/05/2017",
|
||||
"description": "Fix novedades y replace en findvideos"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"anime"
|
||||
],
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "http://i.imgur.com/9Zu5NBc.png",
|
||||
"banner": "http://i.imgur.com/JQSXCaB.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "13/06/2017",
|
||||
"description": "Arreglado problema en nombre de servidores"
|
||||
},
|
||||
{
|
||||
"date": "02/06/2017",
|
||||
"description": "Primera Versión"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"tvshow",
|
||||
"anime"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
|
||||
@@ -127,11 +127,21 @@ def episodios(item):
|
||||
plot=scrapedplot, url=url, show=show))
|
||||
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||
itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca", url=item.url,
|
||||
itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]", url=item.url,
|
||||
action="add_serie_to_library", extra="episodios", show=show))
|
||||
|
||||
return itemlist
|
||||
|
||||
def googl(url):
|
||||
logger.info()
|
||||
a=url.split("/")
|
||||
link=a[3]
|
||||
link="http://www.trueurl.net/?q=http%3A%2F%2Fgoo.gl%2F"+link+"&lucky=on&Uncloak=Find+True+URL"
|
||||
data_other = httptools.downloadpage(link).data
|
||||
data_other = re.sub(r"\n|\r|\t|\s{2}| ", "", data_other)
|
||||
patron='<td class="withbg">Destination URL<\/td><td><A title="(.+?)"'
|
||||
trueurl = scrapertools.find_single_match(data_other, patron)
|
||||
return trueurl
|
||||
|
||||
def findvideos(item):
|
||||
logger.info()
|
||||
@@ -147,36 +157,23 @@ def findvideos(item):
|
||||
scrapedthumbnail = scrapertools.find_single_match(data, '<div class="caracteristicas"><img src="([^<]+)">')
|
||||
itemla = scrapertools.find_multiple_matches(data_vid, '<div class="serv">.+?-(.+?)-(.+?)<\/div><.+? src="(.+?)"')
|
||||
for server, quality, url in itemla:
|
||||
if "HQ" in quality:
|
||||
quality = "HD"
|
||||
if "Calidad Alta" in quality:
|
||||
quality = quality.replace("Calidad Alta", "HQ")
|
||||
server = server.lower().strip()
|
||||
if "ok" == server:
|
||||
server = 'okru'
|
||||
if "netu" == server:
|
||||
continue
|
||||
quality = "HQ"
|
||||
if " Calidad media - Carga mas rapido" in quality:
|
||||
quality = "360p"
|
||||
server = server.lower().strip()
|
||||
if "ok" in server:
|
||||
server = 'okru'
|
||||
if "rapid" in server:
|
||||
server = 'rapidvideo'
|
||||
if "netu" in server:
|
||||
server = 'netutv'
|
||||
url = googl(url)
|
||||
itemlist.append(item.clone(url=url, action="play", server=server, contentQuality=quality,
|
||||
thumbnail=scrapedthumbnail, plot=scrapedplot,
|
||||
title="Enlace encontrado en %s: [%s]" % (server.capitalize(), quality)))
|
||||
|
||||
title="Enlace encontrado en: %s [%s]" % (server.capitalize(), quality)))
|
||||
|
||||
autoplay.start(itemlist, item)
|
||||
return itemlist
|
||||
|
||||
|
||||
def play(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
# Buscamos video por servidor ...
|
||||
devuelve = servertools.findvideosbyserver(item.url, item.server)
|
||||
|
||||
if not devuelve:
|
||||
# ...sino lo encontramos buscamos en todos los servidores disponibles
|
||||
devuelve = servertools.findvideos(item.url, skip=True)
|
||||
|
||||
if devuelve:
|
||||
# logger.debug(devuelve)
|
||||
itemlist.append(Item(channel=item.channel, title=item.contentTitle, action="play", server=devuelve[0][2],
|
||||
url=devuelve[0][1], thumbnail=item.thumbnail))
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -4,21 +4,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"adult": false,
|
||||
"active": true,
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "16/02/2017",
|
||||
"description": "Canal reparado ya que no funcionaban los enlaces"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"banner": "areadocumental.png",
|
||||
"thumbnail": "areadocumental.png",
|
||||
"categories": [
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
{
|
||||
"id": "asialiveaction",
|
||||
"name": "Asialiveaction.",
|
||||
"name": "Asialiveaction",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "asialiveaction.png",
|
||||
"banner": "https://imgur.com/B1IOAu4.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "08/10/2017",
|
||||
"description": "Primera versión del canal"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"serie"
|
||||
"tvshow"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ def findvideos(item):
|
||||
show = item.show
|
||||
for videoitem in itemlist:
|
||||
videoitem.channel = item.channel
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie":
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie" and item.contentChannel!='videolibrary':
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
|
||||
action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
|
||||
|
||||
@@ -7,6 +7,7 @@ from core import jsontools
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
from platformcode import platformtools
|
||||
from platformcode import launcher
|
||||
|
||||
__channel__ = "autoplay"
|
||||
|
||||
@@ -78,7 +79,20 @@ def start(itemlist, item):
|
||||
:return: intenta autoreproducir, en caso de fallar devuelve el itemlist que recibio en un principio
|
||||
'''
|
||||
logger.info()
|
||||
|
||||
for videoitem in itemlist:
|
||||
#Nos dice de donde viene si del addon o videolibrary
|
||||
if item.contentChannel=='videolibrary':
|
||||
videoitem.contentEpisodeNumber=item.contentEpisodeNumber
|
||||
videoitem.contentPlot=item.contentPlot
|
||||
videoitem.contentSeason=item.contentSeason
|
||||
videoitem.contentSerieName=item.contentSerieName
|
||||
videoitem.contentTitle=item.contentTitle
|
||||
videoitem.contentType=item.contentType
|
||||
videoitem.episode_id=item.episode_id
|
||||
videoitem.hasContentDetails=item.hasContentDetails
|
||||
#videoitem.infoLabels=item.infoLabels
|
||||
videoitem.thumbnail=item.thumbnail
|
||||
#videoitem.title=item.title
|
||||
if not config.is_xbmc():
|
||||
#platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi')
|
||||
return itemlist
|
||||
@@ -261,8 +275,12 @@ def start(itemlist, item):
|
||||
else:
|
||||
videoitem = resolved_item[0]
|
||||
|
||||
# si no directamente reproduce
|
||||
platformtools.play_video(videoitem)
|
||||
# si no directamente reproduce y marca como visto
|
||||
from platformcode import xbmc_videolibrary
|
||||
xbmc_videolibrary.mark_auto_as_watched(item)
|
||||
#platformtools.play_video(videoitem)
|
||||
videoitem.contentChannel='videolibrary'
|
||||
launcher.run(videoitem)
|
||||
|
||||
try:
|
||||
if platformtools.is_playing():
|
||||
|
||||
19
plugin.video.alfa/channels/bajui2.json → plugin.video.alfa/channels/bajui.json
Executable file → Normal file
19
plugin.video.alfa/channels/bajui2.json → plugin.video.alfa/channels/bajui.json
Executable file → Normal file
@@ -1,27 +1,12 @@
|
||||
{
|
||||
"id": "bajui2",
|
||||
"name": "Bajui2",
|
||||
"id": "bajui",
|
||||
"name": "Bajui",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"thumbnail": "bajui.png",
|
||||
"banner": "bajui.png",
|
||||
"fanart": "bajui.png",
|
||||
"version": 2,
|
||||
"changes": [
|
||||
{
|
||||
"date": "07/08/2017",
|
||||
"description": "Fix URL HOST changed to Bajui2"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"tvshow",
|
||||
58
plugin.video.alfa/channels/bajui2.py → plugin.video.alfa/channels/bajui.py
Executable file → Normal file
58
plugin.video.alfa/channels/bajui2.py → plugin.video.alfa/channels/bajui.py
Executable file → Normal file
@@ -1,8 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
import urlparse
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from core import servertools
|
||||
from core.item import Item
|
||||
@@ -13,7 +14,7 @@ def mainlist(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
itemlist.append(Item(channel=item.channel, title="Películas", action="menupeliculas",
|
||||
url="http://www.bajui2.com/descargas/categoria/2/peliculas",
|
||||
url="http://www.bajui.org/descargas/categoria/2/peliculas",
|
||||
fanart=item.fanart))
|
||||
itemlist.append(Item(channel=item.channel, title="Series", action="menuseries",
|
||||
fanart=item.fanart))
|
||||
@@ -33,8 +34,7 @@ def menupeliculas(item):
|
||||
Item(channel=item.channel, title="Películas - A-Z", action="peliculas", url=item.url + "/orden:nombre",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
|
||||
# <ul class="submenu2 subcategorias"><li ><a href="/descargas/subcategoria/4/br-scr-dvdscr">BR-Scr / DVDScr</a></li><li ><a href="/descargas/subcategoria/6/dvdr-full">DVDR - Full</a></li><li ><a href="/descargas/subcategoria/1/dvdrip-vhsrip">DVDRip / VHSRip</a></li><li ><a href="/descargas/subcategoria/3/hd">HD</a></li><li ><a href="/descargas/subcategoria/2/hdrip-bdrip">HDRip / BDRip</a></li><li ><a href="/descargas/subcategoria/35/latino">Latino</a></li><li ><a href="/descargas/subcategoria/5/ts-scr-cam">TS-Scr / CAM</a></li><li ><a href="/descargas/subcategoria/7/vos">VOS</a></li></ul>
|
||||
data = scrapertools.cache_page(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = scrapertools.get_match(data, '<ul class="submenu2 subcategorias">(.*?)</ul>')
|
||||
patron = '<a href="([^"]+)">([^<]+)</a>'
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
@@ -51,13 +51,13 @@ def menuseries(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
itemlist.append(Item(channel=item.channel, title="Series - Novedades", action="peliculas",
|
||||
url="http://www.bajui2.com/descargas/categoria/3/series",
|
||||
url="http://www.bajui.org/descargas/categoria/3/series",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
itemlist.append(Item(channel=item.channel, title="Series - A-Z", action="peliculas",
|
||||
url="http://www.bajui2.com/descargas/categoria/3/series/orden:nombre",
|
||||
url="http://www.bajui.org/descargas/categoria/3/series/orden:nombre",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
itemlist.append(Item(channel=item.channel, title="Series - HD", action="peliculas",
|
||||
url="http://www.bajui2.com/descargas/subcategoria/11/hd/orden:nombre",
|
||||
url="http://www.bajui.org/descargas/subcategoria/11/hd/orden:nombre",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="",
|
||||
fanart=item.fanart))
|
||||
@@ -68,17 +68,16 @@ def menudocumentales(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
itemlist.append(Item(channel=item.channel, title="Documentales - Novedades", action="peliculas",
|
||||
url="http://www.bajui2.com/descargas/categoria/7/docus-y-tv",
|
||||
url="http://www.bajui.org/descargas/categoria/7/docus-y-tv",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
itemlist.append(Item(channel=item.channel, title="Documentales - A-Z", action="peliculas",
|
||||
url="http://www.bajui2.com/descargas/categoria/7/docus-y-tv/orden:nombre",
|
||||
url="http://www.bajui.org/descargas/categoria/7/docus-y-tv/orden:nombre",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="",
|
||||
fanart=item.fanart))
|
||||
return itemlist
|
||||
|
||||
|
||||
# Al llamarse "search" la función, el launcher pide un texto a buscar y lo añade como parámetro
|
||||
def search(item, texto, categoria=""):
|
||||
logger.info(item.url + " search " + texto)
|
||||
itemlist = []
|
||||
@@ -86,7 +85,7 @@ def search(item, texto, categoria=""):
|
||||
texto = texto.replace(" ", "+")
|
||||
logger.info("categoria: " + categoria + " url: " + url)
|
||||
try:
|
||||
item.url = "http://www.bajui2.com/descargas/busqueda/%s"
|
||||
item.url = "http://www.bajui.org/descargas/busqueda/%s"
|
||||
item.url = item.url % texto
|
||||
itemlist.extend(peliculas(item))
|
||||
return itemlist
|
||||
@@ -101,9 +100,7 @@ def search(item, texto, categoria=""):
|
||||
def peliculas(item, paginacion=True):
|
||||
logger.info()
|
||||
url = item.url
|
||||
|
||||
# Descarga la página
|
||||
data = scrapertools.cache_page(url)
|
||||
data = httptools.downloadpage(url).data
|
||||
patron = '<li id="ficha-\d+" class="ficha2[^<]+'
|
||||
patron += '<div class="detalles-ficha"[^<]+'
|
||||
patron += '<span class="nombre-det">Ficha\: ([^<]+)</span>[^<]+'
|
||||
@@ -118,22 +115,17 @@ def peliculas(item, paginacion=True):
|
||||
scrapedtitle = title
|
||||
scrapedplot = clean_plot(plot)
|
||||
scrapedurl = urlparse.urljoin(item.url, url)
|
||||
scrapedthumbnail = urlparse.urljoin("http://www.bajui2.com/", thumbnail.replace("_m.jpg", "_g.jpg"))
|
||||
logger.debug("title=[" + scrapedtitle + "], url=[" + scrapedurl + "], thumbnail=[" + scrapedthumbnail + "]")
|
||||
|
||||
# Añade al listado de XBMC
|
||||
scrapedthumbnail = urlparse.urljoin("http://bajui.org/", thumbnail.replace("_m.jpg", "_g.jpg"))
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, action="enlaces", title=scrapedtitle, fulltitle=title, url=scrapedurl,
|
||||
thumbnail=scrapedthumbnail, plot=scrapedplot, extra=scrapedtitle, context="4|5",
|
||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||
|
||||
# Extrae el paginador
|
||||
patron = '<a href="([^"]+)" class="pagina pag_sig">Siguiente \»\;</a>'
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
scrapertools.printMatches(matches)
|
||||
|
||||
if len(matches) > 0:
|
||||
scrapedurl = urlparse.urljoin("http://www.bajui2.com/", matches[0])
|
||||
scrapedurl = urlparse.urljoin("http://www.bajui.org/", matches[0])
|
||||
pagitem = Item(channel=item.channel, action="peliculas", title=">> Página siguiente", url=scrapedurl,
|
||||
fanart=item.fanart, viewmode="movie_with_plot")
|
||||
if not paginacion:
|
||||
@@ -187,7 +179,7 @@ def enlaces(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
data = scrapertools.cache_page(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
|
||||
try:
|
||||
item.plot = scrapertools.get_match(data, '<span class="ficha-descrip">(.*?)</span>')
|
||||
@@ -197,22 +189,10 @@ def enlaces(item):
|
||||
|
||||
try:
|
||||
item.thumbnail = scrapertools.get_match(data, '<div class="ficha-imagen"[^<]+<img src="([^"]+)"')
|
||||
item.thumbnail = urlparse.urljoin("http://www.bajui2.com/", item.thumbnail)
|
||||
item.thumbnail = urlparse.urljoin("http://www.bajui.org/", item.thumbnail)
|
||||
except:
|
||||
pass
|
||||
|
||||
'''
|
||||
<div id="enlaces-34769"><img id="enlaces-cargando-34769" src="/images/cargando.gif" style="display:none;"/></div>
|
||||
</li><li id="box-enlace-330690" class="box-enlace">
|
||||
<div class="box-enlace-cabecera">
|
||||
<div class="datos-usuario"><img class="avatar" src="images/avatars/116305_p.jpg" />Enlaces de:
|
||||
<a class="nombre-usuario" href="/usuario/jerobien">jerobien</a> </div>
|
||||
<div class="datos-act">Actualizado: Hace 8 minutos</div>
|
||||
<div class="datos-boton-mostrar"><a id="boton-mostrar-330690" class="boton" href="javascript:mostrar_enlaces(330690,'b01de63028139fdd348d');">Mostrar enlaces</a></div>
|
||||
<div class="datos-servidores"><div class="datos-servidores-cell"><img src="/images/servidores/ul.to.png" title="uploaded.com" border="0" alt="uploaded.com" /><img src="/images/servidores/bitshare.png" title="bitshare.com" border="0" alt="bitshare.com" /><img src="/images/servidores/freakshare.net.jpg" title="freakshare.com" border="0" alt="freakshare.com" /><img src="/images/servidores/letitbit.png" title="letitbit.net" border="0" alt="letitbit.net" /><img src="/images/servidores/turbobit.png" title="turbobit.net" border="0" alt="turbobit.net" /><img src="/images/servidores/rapidgator.png" title="rapidgator.net" border="0" alt="rapidgator.net" /><img src="/images/servidores/cloudzer.png" title="clz.to" border="0" alt="clz.to" /></div></div>
|
||||
</div>
|
||||
'''
|
||||
|
||||
patron = '<div class="box-enlace-cabecera"[^<]+'
|
||||
patron += '<div class="datos-usuario"><img class="avatar" src="([^"]+)" />Enlaces[^<]+'
|
||||
patron += '<a class="nombre-usuario" href="[^"]+">([^<]+)</a[^<]+</div>[^<]+'
|
||||
@@ -222,20 +202,16 @@ def enlaces(item):
|
||||
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
scrapertools.printMatches(matches)
|
||||
logger.debug("matches=" + repr(matches))
|
||||
|
||||
for thumbnail, usuario, fecha, id, id2, servidores in matches:
|
||||
# <img src="/images/servidores/bitshare.png" title="bitshare.com" border="0" alt="bitshare.com" /><img src="/images/servidores/freakshare.net.jpg" title="freakshare.com" border="0" alt="freakshare.com" /><img src="/images/servidores/rapidgator.png" title="rapidgator.net" border="0" alt="rapidgator.net" /><img src="/images/servidores/turbobit.png" title="turbobit.net" border="0" alt="turbobit.net" /><img src="/images/servidores/muchshare.png" title="muchshare.net" border="0" alt="muchshare.net" /><img src="/images/servidores/letitbit.png" title="letitbit.net" border="0" alt="letitbit.net" /><img src="/images/servidores/shareflare.png" title="shareflare.net" border="0" alt="shareflare.net" /><img src="/images/servidores/otros.gif" title="Otros servidores" border="0" alt="Otros" />
|
||||
patronservidores = '<img src="[^"]+" title="([^"]+)"'
|
||||
matches2 = re.compile(patronservidores, re.DOTALL).findall(servidores)
|
||||
lista_servidores = ""
|
||||
for servidor in matches2:
|
||||
lista_servidores = lista_servidores + servidor + ", "
|
||||
lista_servidores = lista_servidores[:-2]
|
||||
|
||||
scrapedthumbnail = item.thumbnail
|
||||
# http://www.bajui2.com/ajax/mostrar-enlaces.php?id=330582&code=124767d31bfbf14c3861
|
||||
scrapedurl = "http://www.bajui2.com/ajax/mostrar-enlaces.php?id=" + id + "&code=" + id2
|
||||
scrapedurl = "http://www.bajui.org/ajax/mostrar-enlaces.php?id=" + id + "&code=" + id2
|
||||
scrapedplot = item.plot
|
||||
scrapedtitle = "Enlaces de " + usuario + " (" + fecha + ") (" + lista_servidores + ")"
|
||||
|
||||
@@ -250,7 +226,7 @@ def enlaces(item):
|
||||
def findvideos(item):
|
||||
logger.info()
|
||||
|
||||
data = scrapertools.cache_page(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
itemlist = servertools.find_video_items(data=data)
|
||||
for videoitem in itemlist:
|
||||
videoitem.channel = item.channel
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "beeg.png",
|
||||
"banner": "beeg.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "03/06/2017",
|
||||
"description": "reliminado encoding y soporte multiples calidades"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
],
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://s6.postimg.org/6ash180up/bityoulogo.png",
|
||||
"banner": "bityouth.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
|
||||
@@ -5,17 +5,6 @@
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://imgur.com/BePrYmy.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "26/04/2017",
|
||||
"description": "Release"
|
||||
},
|
||||
{
|
||||
"date": "28/06/2017",
|
||||
"description": "Correciones código y mejoras"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://s6.postimg.org/9u8m1ep8x/bricocine.jpg",
|
||||
"banner": "bricocine.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
|
||||
@@ -7,13 +7,6 @@
|
||||
"fanart": "https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/canalpelisbg.jpg",
|
||||
"thumbnail": "http://www.canalpelis.com/wp-content/uploads/2016/11/logo_web.gif",
|
||||
"banner": "",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/08/17",
|
||||
"description": "Nuevo Canal"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"tvshow",
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "http://i.imgur.com/gAbPcvT.png?1",
|
||||
"banner": "canalporno.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "09/01/2017",
|
||||
"description": "Primera version."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
]
|
||||
|
||||
@@ -6,13 +6,6 @@
|
||||
"language": ["lat"],
|
||||
"thumbnail": "http://i.imgur.com/wk6fRDZ.png",
|
||||
"banner": "http://i.imgur.com/115c59F.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "07/06/2017",
|
||||
"description": "Primera version del canal"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"tvshow"
|
||||
]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
|
||||
@@ -9,6 +9,7 @@ from core import servertools
|
||||
from core import tmdb
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
from channels import autoplay
|
||||
|
||||
host = "http://www.cartoon-latino.com/"
|
||||
from channels import autoplay
|
||||
@@ -24,29 +25,15 @@ list_quality = ['default']
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
|
||||
thumb_series = get_thumb("channels_tvshow.png")
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
|
||||
itemlist = list()
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host,
|
||||
thumbnail=thumb_series))
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
"""
|
||||
def search(item, texto):
|
||||
logger.info()
|
||||
texto = texto.replace(" ","+")
|
||||
item.url = item.url+texto
|
||||
if texto!='':
|
||||
return lista(item)
|
||||
"""
|
||||
|
||||
|
||||
def lista_gen(item):
|
||||
logger.info()
|
||||
|
||||
@@ -149,8 +136,7 @@ def episodios(item):
|
||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show))
|
||||
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||
itemlist.append(Item(channel=item.channel, title="Añadir " + show + " a la videoteca", url=item.url,
|
||||
|
||||
itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir " + show + " a la videoteca[/COLOR]", url=item.url,
|
||||
action="add_serie_to_library", extra="episodios", show=show))
|
||||
|
||||
return itemlist
|
||||
@@ -179,35 +165,10 @@ def findvideos(item):
|
||||
for link in itemla:
|
||||
if server in link:
|
||||
url = link.replace('" + ID' + server + ' + "', str(id))
|
||||
if "drive" in server:
|
||||
server1 = 'Gvideo'
|
||||
else:
|
||||
server1 = server
|
||||
itemlist.append(item.clone(url=url, action="play", server=server1,
|
||||
title="Enlace encontrado en %s " % (server1.capitalize())))
|
||||
|
||||
itemlist.append(item.clone(url=url, action="play",
|
||||
title="Enlace encontrado en %s "
|
||||
))
|
||||
itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize())
|
||||
scrapertools.printMatches(itemlist)
|
||||
autoplay.start(itemlist, item)
|
||||
return itemlist
|
||||
|
||||
|
||||
def play(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
# Buscamos video por servidor ...
|
||||
|
||||
devuelve = servertools.findvideosbyserver(item.url, item.server)
|
||||
|
||||
if not devuelve:
|
||||
# ...sino lo encontramos buscamos en todos los servidores disponibles
|
||||
|
||||
devuelve = servertools.findvideos(item.url, skip=True)
|
||||
|
||||
if devuelve:
|
||||
# logger.debug(devuelve)
|
||||
itemlist.append(Item(channel=item.channel, title=item.contentTitle, action="play", server=devuelve[0][2],
|
||||
|
||||
url=devuelve[0][1], thumbnail=item.thumbnail, folder=False))
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,13 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "https://s9.postimg.org/secdb5s8v/ciberdocumentales.png",
|
||||
"banner": "https://s1.postimg.org/sa486z0of/ciberdocumentales_banner.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "18/06/2016",
|
||||
"descripcion": "First release"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"documentary"
|
||||
],
|
||||
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "http://i.imgur.com/5KOU8uy.png?3",
|
||||
"banner": "cineasiaenlinea.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "07/02/17",
|
||||
"description": "Fix bug in newest"
|
||||
},
|
||||
{
|
||||
"date": "09/01/2017",
|
||||
"description": "Primera version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"vos"
|
||||
|
||||
@@ -6,29 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "https://s31.postimg.org/puxmvsi7v/cinecalidad.png",
|
||||
"banner": "https://s32.postimg.org/kihkdpx1x/banner_cinecalidad.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "01/08/2017",
|
||||
"description": "Cambio de estructura"
|
||||
},
|
||||
{
|
||||
"date": "24/06/2017",
|
||||
"description": "Cambios para autoplay"
|
||||
},
|
||||
{
|
||||
"date": "06/06/2017",
|
||||
"description": "Compatibilidad con AutoPlay"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "18/06/2016",
|
||||
"description": "First release."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
],
|
||||
@@ -78,6 +55,22 @@
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_castellano",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Castellano",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -378,12 +378,14 @@ def newest(categoria):
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
item.url = 'http://www.cinecalidad.to'
|
||||
if categoria in ['peliculas','latino']:
|
||||
item.url = 'http://www.cinecalidad.com'
|
||||
elif categoria == 'infantiles':
|
||||
item.url = 'http://www.cinecalidad.to/genero-peliculas/infantil/'
|
||||
item.url = 'http://www.cinecalidad.com/genero-peliculas/infantil/'
|
||||
elif categoria == 'terror':
|
||||
item.url = 'http://www.cinecalidad.to/genero-peliculas/terror/'
|
||||
item.url = 'http://www.cinecalidad.com/genero-peliculas/terror/'
|
||||
elif categoria == 'castellano':
|
||||
item.url = 'http://www.cinecalidad.com/espana/'
|
||||
itemlist = peliculas(item)
|
||||
if itemlist[-1].title == 'Página siguiente >>':
|
||||
itemlist.pop()
|
||||
|
||||
@@ -4,27 +4,8 @@
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast", "lat"],
|
||||
"version": 1,
|
||||
"thumbnail": "cinefox.png",
|
||||
"banner": "cinefox.png",
|
||||
"changes": [
|
||||
{
|
||||
"date": "01/08/2017",
|
||||
"description": "Agregado servidor gvideo"
|
||||
},
|
||||
{
|
||||
"date": "05/04/2017",
|
||||
"description": "Cambio en los servidores"
|
||||
},
|
||||
{
|
||||
"date": "21/03/2017",
|
||||
"description": "Adaptado a httptools y corregido episodios para videoteca"
|
||||
},
|
||||
{
|
||||
"date": "18/07/2016",
|
||||
"description": "Primera version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"tvshow",
|
||||
|
||||
@@ -512,7 +512,7 @@ def episodios(item):
|
||||
else:
|
||||
action = "menu_info_episode"
|
||||
|
||||
seasons = scrapertools.find_multiple_matches(data, '<a href="([^"]+)"[^>]+><span class="season-toggle')
|
||||
seasons = scrapertools.find_single_match(data, '<a href="([^"]+)"[^>]+><span class="season-toggle')
|
||||
for i, url in enumerate(seasons):
|
||||
if i != 0:
|
||||
data_season = httptools.downloadpage(url, add_referer=True).data
|
||||
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["lat"],
|
||||
"thumbnail": "https://s28.postimg.org/lytn2q1tp/cinefoxtv.png",
|
||||
"banner": "cinefoxtv.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "22/05/2017",
|
||||
"description": "fix por cambio en la estructura"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "09/02/2017",
|
||||
"description": "First release."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
],
|
||||
@@ -33,6 +18,14 @@
|
||||
"enabled": false,
|
||||
"visible": false
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_peliculas",
|
||||
"type": "bool",
|
||||
@@ -50,4 +43,4 @@
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,7 +193,7 @@ def newest(categoria):
|
||||
item = Item()
|
||||
# categoria='peliculas'
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
if categoria in ['peliculas','latino']:
|
||||
item.url = host + 'page/1.html'
|
||||
elif categoria == 'infantiles':
|
||||
item.url = host + 'peliculas-de-genero/infantil/1.html'
|
||||
|
||||
@@ -6,13 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "cinehindi.png",
|
||||
"banner": "http://i.imgur.com/cau9TVe.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "25/05/2017",
|
||||
"description": "Primera versión completa del canal"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
]
|
||||
|
||||
@@ -123,7 +123,7 @@ def lista(item):
|
||||
|
||||
if next_page_url != "":
|
||||
item.url = next_page_url
|
||||
itemlist.append(Item(channel=item.channel, action="lista", title=">> Página siguiente", url=next_page_url,
|
||||
itemlist.append(Item(channel=item.channel, action="lista", title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=next_page_url,
|
||||
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
|
||||
return itemlist
|
||||
|
||||
@@ -132,14 +132,18 @@ def findvideos(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
itemlist1 = []
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
itemlist.extend(servertools.find_video_items(data=data))
|
||||
itemlist1.extend(servertools.find_video_items(data=data))
|
||||
patron_show = '<div class="data"><h1 itemprop="name">([^<]+)<\/h1>'
|
||||
show = scrapertools.find_single_match(data, patron_show)
|
||||
for videoitem in itemlist:
|
||||
for videoitem in itemlist1:
|
||||
videoitem.channel = item.channel
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||
for i in range(len(itemlist1)):
|
||||
if not 'youtube' in itemlist1[i].title:
|
||||
itemlist.append(itemlist1[i])
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentChannel!='videolibrary':
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
|
||||
action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "cinetemagay.png",
|
||||
"banner": "cinetemagay.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "05/08/2016",
|
||||
"description": "Eliminado de sección películas"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
]
|
||||
|
||||
@@ -7,25 +7,6 @@
|
||||
"thumbnail": "cinetux.png",
|
||||
"banner": "cinetux.png",
|
||||
"fanart": "cinetux.jpg",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "31/07/2017",
|
||||
"description": "Actualizado por cambio de estructura de la página"
|
||||
},
|
||||
{
|
||||
"date": "12/05/2017",
|
||||
"description": "Arreglada paginación y enlaces directos"
|
||||
},
|
||||
{
|
||||
"date": "16/02/2017",
|
||||
"description": "Adaptado a httptools y añadidos enlaces directos"
|
||||
},
|
||||
{
|
||||
"date": "08/07/2016",
|
||||
"description": "Correciones y adaptaciones a la nueva version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"direct",
|
||||
"movie"
|
||||
@@ -63,6 +44,30 @@
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_terror",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - terror",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_castellano",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Castellano",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "modo_grafico",
|
||||
"type": "bool",
|
||||
|
||||
@@ -28,9 +28,9 @@ def mainlist(item):
|
||||
itemlist = []
|
||||
item.viewmode = viewmode
|
||||
|
||||
data = httptools.downloadpage(CHANNEL_HOST).data
|
||||
total = scrapertools.find_single_match(data, "TENEMOS\s<b>(.*?)</b>")
|
||||
titulo = "Peliculas"
|
||||
data = httptools.downloadpage(CHANNEL_HOST + "pelicula").data
|
||||
total = scrapertools.find_single_match(data, "Películas</h1><span>(.*?)</span>")
|
||||
titulo = "Peliculas (%s)" %total
|
||||
itemlist.append(item.clone(title=titulo, text_color=color2, action="", text_bold=True))
|
||||
itemlist.append(item.clone(action="peliculas", title=" Novedades", url=CHANNEL_HOST + "pelicula",
|
||||
thumbnail="https://raw.githubusercontent.com/master-1970/resources/master/images/genres"
|
||||
@@ -90,26 +90,30 @@ def newest(categoria):
|
||||
if categoria == 'peliculas':
|
||||
item.url = CHANNEL_HOST
|
||||
item.action = "peliculas"
|
||||
itemlist = peliculas(item)
|
||||
|
||||
if itemlist[-1].action == "peliculas":
|
||||
itemlist.pop()
|
||||
|
||||
elif categoria == 'documentales':
|
||||
item.url = CHANNEL_HOST + "genero/documental/"
|
||||
item.action = "peliculas"
|
||||
itemlist = peliculas(item)
|
||||
|
||||
if itemlist[-1].action == "peliculas":
|
||||
itemlist.pop()
|
||||
|
||||
elif categoria == 'infantiles':
|
||||
item.url = CHANNEL_HOST + "genero/infantil/"
|
||||
item.url = CHANNEL_HOST + "genero/animacion/"
|
||||
item.action = "peliculas"
|
||||
itemlist = peliculas(item)
|
||||
|
||||
if itemlist[-1].action == "peliculas":
|
||||
itemlist.pop()
|
||||
elif categoria == 'terror':
|
||||
item.url = CHANNEL_HOST + "genero/terror/"
|
||||
item.action = "peliculas"
|
||||
|
||||
elif categoria == 'castellano':
|
||||
item.url = CHANNEL_HOST + "idioma/espanol/"
|
||||
item.action = "peliculas"
|
||||
|
||||
elif categoria == 'latino':
|
||||
item.url = CHANNEL_HOST + "idioma/latino/"
|
||||
item.action = "peliculas"
|
||||
|
||||
itemlist = peliculas(item)
|
||||
if itemlist[-1].action == "peliculas":
|
||||
itemlist.pop()
|
||||
|
||||
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||
except:
|
||||
@@ -263,15 +267,11 @@ def findvideos(item):
|
||||
if itemlist:
|
||||
itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="",
|
||||
text_color="magenta"))
|
||||
# Opción "Añadir esta película a la videoteca"
|
||||
if item.extra != "library":
|
||||
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, fulltitle = item.fulltitle
|
||||
))
|
||||
|
||||
else:
|
||||
itemlist.append(item.clone(title="No hay enlaces disponibles", action="", text_color=color3))
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -296,6 +296,8 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
|
||||
url = scrapertools.find_single_match(bloque1, patron)
|
||||
if "goo.gl" in url:
|
||||
url = httptools.downloadpage(url, follow_redirects=False, only_headers=True).headers.get("location", "")
|
||||
if "drive.php" in url:
|
||||
scrapedserver = "gvideo"
|
||||
if "player" in url:
|
||||
scrapedserver = scrapertools.find_single_match(url, 'player/(\w+)')
|
||||
if "ok" in scrapedserver: scrapedserver = "okru"
|
||||
@@ -348,10 +350,10 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
|
||||
def play(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
if "api.cinetux" in item.url or item.server == "okru":
|
||||
if "api.cinetux" in item.url or item.server == "okru" or "drive.php" in item.url:
|
||||
data = httptools.downloadpage(item.url, headers={'Referer': item.extra}).data.replace("\\", "")
|
||||
id = scrapertools.find_single_match(data, 'img src="[^#]+#(.*?)"')
|
||||
item.url = "https://youtube.googleapis.com/embed/?status=ok&hl=es&allow_embed=1&ps=docs&partnerid=30&hd=1&autoplay=0&cc_load_policy=1&showinfo=0&docid=" + id
|
||||
item.url = "http://docs.google.com/get_video_info?docid=" + id
|
||||
if item.server == "okru":
|
||||
item.url = "https://ok.ru/videoembed/" + id
|
||||
elif "links" in item.url or "www.cinetux.me" in item.url:
|
||||
@@ -365,6 +367,9 @@ def play(item):
|
||||
scrapedurl = httptools.downloadpage(scrapedurl, follow_redirects=False, only_headers=True).headers.get(
|
||||
"location", "")
|
||||
item.url = scrapedurl
|
||||
item.thumbnail = item.contentThumbnail
|
||||
item.server = servertools.get_server_from_url(item.url)
|
||||
return [item]
|
||||
item.server = ""
|
||||
itemlist.append(item.clone())
|
||||
itemlist = servertools.get_servers_itemlist(itemlist)
|
||||
for i in itemlist:
|
||||
i.thumbnail = i.contentThumbnail
|
||||
return itemlist
|
||||
|
||||
@@ -6,25 +6,6 @@
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://i.imgur.com/F7sevVu.jpg?1",
|
||||
"banner": "clasicofilm.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "28/05/2017",
|
||||
"description": "Corregido findvideos"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "07/02/17",
|
||||
"description": "Fix bug in newest"
|
||||
},
|
||||
{
|
||||
"date": "09/01/2017",
|
||||
"description": "Primera version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
],
|
||||
|
||||
@@ -2,11 +2,15 @@
|
||||
|
||||
import re
|
||||
|
||||
from core import filetools
|
||||
from core import jsontools
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from core import servertools
|
||||
from core import tmdb
|
||||
from core import videolibrarytools
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
from platformcode import config, platformtools, logger
|
||||
|
||||
host = "http://www.clasicofilm.com/"
|
||||
# Configuracion del canal
|
||||
@@ -47,7 +51,6 @@ def mainlist(item):
|
||||
|
||||
|
||||
def configuracion(item):
|
||||
from platformcode import platformtools
|
||||
ret = platformtools.show_channel_settings()
|
||||
platformtools.itemlist_refresh()
|
||||
return ret
|
||||
@@ -55,13 +58,9 @@ def configuracion(item):
|
||||
|
||||
def search(item, texto):
|
||||
logger.info()
|
||||
|
||||
data = httptools.downloadpage(host).data
|
||||
cx = scrapertools.find_single_match(data, "var cx = '([^']+)'")
|
||||
texto = texto.replace(" ", "%20")
|
||||
item.url = "https://www.googleapis.com/customsearch/v1element?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY&rsz=filtered_cse&num=20&hl=es&sig=0c3990ce7a056ed50667fe0c3873c9b6&cx=%s&q=%s&sort=&googlehost=www.google.com&start=0" % (
|
||||
cx, texto)
|
||||
|
||||
item.url = host + "search?q=%s" % texto
|
||||
try:
|
||||
return busqueda(item)
|
||||
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
|
||||
@@ -104,7 +103,6 @@ def peliculas(item):
|
||||
data = httptools.downloadpage(item.url).data
|
||||
|
||||
data = scrapertools.find_single_match(data, 'finddatepost\((\{.*?\]\}\})\);')
|
||||
from core import jsontools
|
||||
data = jsontools.load(data)["feed"]
|
||||
|
||||
for entry in data["entry"]:
|
||||
@@ -133,7 +131,6 @@ def peliculas(item):
|
||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||
except:
|
||||
pass
|
||||
|
||||
actualpage = int(scrapertools.find_single_match(item.url, 'start-index=(\d+)'))
|
||||
totalresults = int(data["openSearch$totalResults"]["$t"])
|
||||
if actualpage + 20 < totalresults:
|
||||
@@ -146,48 +143,22 @@ def peliculas(item):
|
||||
def busqueda(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item.text_color = color2
|
||||
|
||||
# Descarga la página
|
||||
data = httptools.downloadpage(item.url).data
|
||||
|
||||
from core import jsontools
|
||||
data = jsontools.load(data)
|
||||
|
||||
for entry in data["results"]:
|
||||
try:
|
||||
title = entry["richSnippet"]["metatags"]["ogTitle"]
|
||||
url = entry["richSnippet"]["metatags"]["ogUrl"]
|
||||
thumbnail = entry["richSnippet"]["metatags"]["ogImage"]
|
||||
except:
|
||||
continue
|
||||
|
||||
try:
|
||||
title_split = re.split(r"\s*\((\d)", title, 1)
|
||||
year = title_split[1] + scrapertools.find_single_match(title_split[2], '(\d{3})\)')
|
||||
fulltitle = title_split[0]
|
||||
except:
|
||||
fulltitle = title
|
||||
year = ""
|
||||
if not "DVD" in title and not "HDTV" in title and not "HD-" in title:
|
||||
continue
|
||||
infolabels = {'year': year}
|
||||
new_item = item.clone(action="findvideos", title=title, fulltitle=fulltitle,
|
||||
url=url, thumbnail=thumbnail, infoLabels=infolabels,
|
||||
contentTitle=fulltitle, contentType="movie")
|
||||
itemlist.append(new_item)
|
||||
|
||||
try:
|
||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||
except:
|
||||
pass
|
||||
|
||||
actualpage = int(scrapertools.find_single_match(item.url, 'start=(\d+)'))
|
||||
totalresults = int(data["cursor"]["resultCount"])
|
||||
if actualpage + 20 <= totalresults:
|
||||
url_next = item.url.replace("start=" + str(actualpage), "start=" + str(actualpage + 20))
|
||||
itemlist.append(Item(channel=item.channel, action="busqueda", title=">> Página Siguiente", url=url_next))
|
||||
|
||||
patron = """post-title entry-titl.*?href='([^']+)'"""
|
||||
patron += """>([^<]+).*?"""
|
||||
patron += """src="([^"]+)"""
|
||||
matches = scrapertools.find_multiple_matches(data, patron)
|
||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
||||
year = scrapertools.find_single_match(scrapedtitle, "\(([0-9]{4})\)")
|
||||
ctitle = scrapedtitle.split("(")[0].strip()
|
||||
itemlist.append(item.clone(action = "findvideos",
|
||||
contentTitle = ctitle,
|
||||
infoLabels = {"year" : year},
|
||||
thumbnail = scrapedthumbnail,
|
||||
title = scrapedtitle,
|
||||
url = scrapedurl
|
||||
))
|
||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -197,9 +168,10 @@ def generos(item):
|
||||
|
||||
# Descarga la página
|
||||
data = httptools.downloadpage(item.url).data
|
||||
patron = '<b>([^<]+)</b><br/>\s*<script src="([^"]+)"'
|
||||
patron = '<b>([^<]+)</b><br\s*/>\s*<script src="([^"]+)"'
|
||||
matches = scrapertools.find_multiple_matches(data, patron)
|
||||
for scrapedtitle, scrapedurl in matches:
|
||||
scrapedurl = scrapedurl.replace("&","&")
|
||||
scrapedurl = scrapedurl.replace("max-results=500", "start-index=1&max-results=20") \
|
||||
.replace("recentpostslist", "finddatepost")
|
||||
itemlist.append(Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl,
|
||||
@@ -210,13 +182,13 @@ def generos(item):
|
||||
|
||||
|
||||
def findvideos(item):
|
||||
from core import servertools
|
||||
|
||||
if item.infoLabels["tmdb_id"]:
|
||||
tmdb.set_infoLabels_item(item, __modo_grafico__)
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
iframe = scrapertools.find_single_match(data, '<iframe src="([^"]+)"')
|
||||
data = data.replace("googleusercontent","malo") # para que no busque enlaces erroneos de gvideo
|
||||
if "goo.gl/" in iframe:
|
||||
data += httptools.downloadpage(iframe, follow_redirects=False, only_headers=True).headers.get("location", "")
|
||||
itemlist = servertools.find_video_items(item, data)
|
||||
@@ -226,13 +198,11 @@ def findvideos(item):
|
||||
title = "Añadir película a la videoteca"
|
||||
if item.infoLabels["imdb_id"] and not library_path.lower().startswith("smb://"):
|
||||
try:
|
||||
from core import filetools
|
||||
movie_path = filetools.join(config.get_videolibrary_path(), 'CINE')
|
||||
files = filetools.walk(movie_path)
|
||||
for dirpath, dirname, filename in files:
|
||||
for f in filename:
|
||||
if item.infoLabels["imdb_id"] in f and f.endswith(".nfo"):
|
||||
from core import videolibrarytools
|
||||
head_nfo, it = videolibrarytools.read_nfo(filetools.join(dirpath, dirname, f))
|
||||
canales = it.library_urls.keys()
|
||||
canales.sort()
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "16/05/2017",
|
||||
"description": "Primera versión"
|
||||
}
|
||||
],
|
||||
"thumbnail": "http://i.imgur.com/O49fDS1.png",
|
||||
"categories": [
|
||||
"anime",
|
||||
|
||||
@@ -168,11 +168,11 @@ def episodios(item):
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = re.sub(r'\n|\t|\s{2,}', '', data)
|
||||
patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)" ' \
|
||||
'style="width: (.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \
|
||||
patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)"' \
|
||||
'style="width:(.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \
|
||||
'\s*(.*?)</p>.*?description":"([^"]+)"'
|
||||
if data.count('class="season-dropdown') > 1:
|
||||
bloques = scrapertools.find_multiple_matches(data, 'class="season-dropdown[^"]+" title="([^"]+)"(.*?)</ul>')
|
||||
bloques = scrapertools.find_multiple_matches(data, 'class="season-dropdown[^"]+".*?title="([^"]+)"(.*?)</ul>')
|
||||
for season, b in bloques:
|
||||
matches = scrapertools.find_multiple_matches(b, patron)
|
||||
if matches:
|
||||
@@ -209,7 +209,6 @@ def episodios(item):
|
||||
Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumb, media_id=media_id,
|
||||
server="crunchyroll", text_color=item.text_color, contentTitle=item.contentTitle,
|
||||
contentSerieName=item.contentSerieName, contentType="tvshow"))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
|
||||
@@ -4,21 +4,6 @@
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "10/12/2016",
|
||||
"description": "Reparado fanart y thumbs y correción código.Adaptado a Infoplus"
|
||||
},
|
||||
{
|
||||
"date": "04/04/2017",
|
||||
"description": "Migración a Httptools"
|
||||
},
|
||||
{
|
||||
"date": "28/06/2017",
|
||||
"description": "Correciones código.Algunas mejoras"
|
||||
}
|
||||
],
|
||||
"thumbnail": "cuelgame.png",
|
||||
"banner": "cuelgame.png",
|
||||
"categories": [
|
||||
@@ -36,6 +21,14 @@
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_torrent",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Torrent",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1223,3 +1223,25 @@ def browser(url):
|
||||
response = r.read()
|
||||
|
||||
return response
|
||||
|
||||
def newest(categoria):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'torrent':
|
||||
item.url = 'http://cuelgame.net/?category=4'
|
||||
|
||||
itemlist = scraper(item)
|
||||
|
||||
if itemlist[-1].action == "Página siguiente >>":
|
||||
itemlist.pop()
|
||||
|
||||
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("{0}".format(line))
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "cumlouder.png",
|
||||
"banner": "cumlouder.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "04/05/17",
|
||||
"description": "Corregido, usa proxy en caso de error con https"
|
||||
},
|
||||
{
|
||||
"date": "13/01/17",
|
||||
"description": "First version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
]
|
||||
|
||||
12
plugin.video.alfa/channels/danimados.json
Normal file
12
plugin.video.alfa/channels/danimados.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "danimados",
|
||||
"name": "Danimados",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["lat"],
|
||||
"thumbnail": "https://imgur.com/kU5Lx1S.png",
|
||||
"banner": "https://imgur.com/xG5xqBq.png",
|
||||
"categories": [
|
||||
"tvshow"
|
||||
]
|
||||
}
|
||||
203
plugin.video.alfa/channels/danimados.py
Normal file
203
plugin.video.alfa/channels/danimados.py
Normal file
@@ -0,0 +1,203 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
|
||||
from channelselector import get_thumb
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from core import servertools
|
||||
from core import tmdb
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
from channels import autoplay
|
||||
|
||||
host = "http://www.danimados.com/"
|
||||
|
||||
list_servers = ['openload',
|
||||
'okru',
|
||||
'rapidvideo'
|
||||
]
|
||||
list_quality = ['default']
|
||||
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
|
||||
thumb_series = get_thumb("channels_tvshow.png")
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
|
||||
itemlist = list()
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="mainpage", title="Categorías", url=host,
|
||||
thumbnail=thumb_series))
|
||||
itemlist.append(Item(channel=item.channel, action="mainpage", title="Más Populares", url=host,
|
||||
thumbnail=thumb_series))
|
||||
itemlist.append(Item(channel=item.channel, action="lista", title="Peliculas Animadas", url=host+"peliculas/",
|
||||
thumbnail=thumb_series))
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
return itemlist
|
||||
|
||||
|
||||
"""
|
||||
def search(item, texto):
|
||||
logger.info()
|
||||
texto = texto.replace(" ","+")
|
||||
item.url = item.url+texto
|
||||
if texto!='':
|
||||
return lista(item)
|
||||
"""
|
||||
|
||||
|
||||
def mainpage(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
data1 = httptools.downloadpage(item.url).data
|
||||
data1 = re.sub(r"\n|\r|\t|\s{2}| ", "", data1)
|
||||
if item.title=="Más Populares":
|
||||
patron_sec='<a class="lglossary" data-type.+?>(.+?)<\/ul>'
|
||||
patron='<img .+? src="([^"]+)".+?<a href="([^"]+)".+?>([^"]+)<\/a>' #scrapedthumbnail, #scrapedurl, #scrapedtitle
|
||||
if item.title=="Categorías":
|
||||
patron_sec='<ul id="main_header".+?>(.+?)<\/ul><\/div>'
|
||||
patron='<a href="([^"]+)">([^"]+)<\/a>'#scrapedurl, #scrapedtitle
|
||||
|
||||
data = scrapertools.find_single_match(data1, patron_sec)
|
||||
|
||||
matches = scrapertools.find_multiple_matches(data, patron)
|
||||
if item.title=="Géneros" or item.title=="Categorías":
|
||||
for scrapedurl, scrapedtitle in matches:
|
||||
if "Películas Animadas"!=scrapedtitle:
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title=scrapedtitle, url=scrapedurl, action="lista"))
|
||||
return itemlist
|
||||
else:
|
||||
for scraped1, scraped2, scrapedtitle in matches:
|
||||
scrapedthumbnail=scraped1
|
||||
scrapedurl=scraped2
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, action="episodios",
|
||||
show=scrapedtitle))
|
||||
tmdb.set_infoLabels(itemlist)
|
||||
return itemlist
|
||||
return itemlist
|
||||
|
||||
def lista(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
||||
if item.title=="Peliculas Animadas":
|
||||
data_lista = scrapertools.find_single_match(data,
|
||||
'<div id="archive-content" class="animation-2 items">(.*)<a href=\'')
|
||||
else:
|
||||
data_lista = scrapertools.find_single_match(data,
|
||||
'<div class="items">(.+?)<\/div><\/div><div class=.+?>')
|
||||
patron = '<img src="([^"]+)" alt="([^"]+)">.+?<a href="([^"]+)">.+?<div class="texto">(.+?)<\/div>'
|
||||
#scrapedthumbnail,#scrapedtitle, #scrapedurl, #scrapedplot
|
||||
matches = scrapertools.find_multiple_matches(data_lista, patron)
|
||||
for scrapedthumbnail,scrapedtitle, scrapedurl, scrapedplot in matches:
|
||||
if item.title=="Peliculas Animadas":
|
||||
itemlist.append(
|
||||
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, contentType="movie",
|
||||
plot=scrapedplot, action="findvideos", show=scrapedtitle))
|
||||
else:
|
||||
itemlist.append(
|
||||
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail,
|
||||
context=autoplay.context,plot=scrapedplot, action="episodios", show=scrapedtitle))
|
||||
if item.title!="Peliculas Animadas":
|
||||
tmdb.set_infoLabels(itemlist)
|
||||
return itemlist
|
||||
|
||||
|
||||
def episodios(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
||||
|
||||
data_lista = scrapertools.find_single_match(data,
|
||||
'<ul class="episodios">(.+?)<\/ul><\/div><\/div><\/div>')
|
||||
show = item.title
|
||||
patron_caps = '<img src="([^"]+)"><\/a><\/div><div class=".+?">([^"]+)<\/div>.+?<a .+? href="([^"]+)">([^"]+)<\/a>'
|
||||
#scrapedthumbnail,#scrapedtempepi, #scrapedurl, #scrapedtitle
|
||||
matches = scrapertools.find_multiple_matches(data_lista, patron_caps)
|
||||
for scrapedthumbnail, scrapedtempepi, scrapedurl, scrapedtitle in matches:
|
||||
tempepi=scrapedtempepi.split(" - ")
|
||||
if tempepi[0]=='Pel':
|
||||
tempepi[0]=0
|
||||
title="{0}x{1} - ({2})".format(tempepi[0], tempepi[1].zfill(2), scrapedtitle)
|
||||
itemlist.append(Item(channel=item.channel, thumbnail=scrapedthumbnail,
|
||||
action="findvideos", title=title, url=scrapedurl, show=show))
|
||||
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||
itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir " + show + " a la videoteca[/COLOR]", url=item.url,
|
||||
action="add_serie_to_library", extra="episodios", show=show))
|
||||
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def findvideos(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
||||
data = scrapertools.find_single_match(data,
|
||||
'<div id="playex" .+?>(.+?)<\/nav><\/div><\/div>')
|
||||
patron='src="(.+?)"'
|
||||
logger.info("assfxxv "+data)
|
||||
itemla = scrapertools.find_multiple_matches(data,patron)
|
||||
for i in range(len(itemla)):
|
||||
#for url in itemla:
|
||||
url=itemla[i]
|
||||
#verificar existencia del video (testing)
|
||||
codigo=verificar_video(itemla[i])
|
||||
if codigo==200:
|
||||
if "ok.ru" in url:
|
||||
server='okru'
|
||||
else:
|
||||
server=''
|
||||
if "youtube" in url:
|
||||
server='youtube'
|
||||
if "openload" in url:
|
||||
server='openload'
|
||||
if "google" in url:
|
||||
server='gvideo'
|
||||
if "rapidvideo" in url:
|
||||
server='rapidvideo'
|
||||
if "streamango" in url:
|
||||
server='streamango'
|
||||
if server!='':
|
||||
title="Enlace encontrado en %s " % (server.capitalize())
|
||||
else:
|
||||
title="NO DISPONIBLE"
|
||||
if title!="NO DISPONIBLE":
|
||||
itemlist.append(item.clone(title=title,url=url, action="play", server=server))
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie" and item.contentChannel!='videolibrary':
|
||||
itemlist.append(
|
||||
item.clone(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
|
||||
action="add_pelicula_to_library", contentTitle=item.show))
|
||||
|
||||
autoplay.start(itemlist, item)
|
||||
return itemlist
|
||||
|
||||
|
||||
def verificar_video(url):
|
||||
codigo=httptools.downloadpage(url).code
|
||||
if codigo==200:
|
||||
# Revise de otra forma
|
||||
data=httptools.downloadpage(url).data
|
||||
removed = scrapertools.find_single_match(data,'removed(.+)')
|
||||
if len(removed) != 0:
|
||||
codigo1=404
|
||||
else:
|
||||
codigo1=200
|
||||
else:
|
||||
codigo1=200
|
||||
return codigo1
|
||||
@@ -4,17 +4,6 @@
|
||||
"language": ["*"],
|
||||
"active": true,
|
||||
"adult": true,
|
||||
"changes": [
|
||||
{
|
||||
"date": "28/05/2017",
|
||||
"description": "Reparado por cambios en la página"
|
||||
},
|
||||
{
|
||||
"date": "21/02/2017",
|
||||
"description": "Primera versión"
|
||||
}
|
||||
],
|
||||
"version": 1,
|
||||
"thumbnail": "http://i.imgur.com/tBSWudd.png?1",
|
||||
"banner": "datoporn.png",
|
||||
"categories": [
|
||||
|
||||
@@ -4,17 +4,6 @@
|
||||
"language": ["cast"],
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"banner": "descargacineclasico2.png",
|
||||
"thumbnail": "descargacineclasico2.png",
|
||||
"categories": [
|
||||
|
||||
@@ -3,30 +3,7 @@
|
||||
"name": "DescargasMIX",
|
||||
"language": ["cast", "lat"],
|
||||
"active": true,
|
||||
"version": 1,
|
||||
"adult": false,
|
||||
"changes": [
|
||||
{
|
||||
"date": "06/05/17",
|
||||
"description": "Cambio de dominio"
|
||||
},
|
||||
{
|
||||
"date": "17/04/17",
|
||||
"description": "Mejorado en la deteccion del dominio para futuros cambios"
|
||||
},
|
||||
{
|
||||
"date": "09/04/17",
|
||||
"description": "Arreglado por cambios en la página"
|
||||
},
|
||||
{
|
||||
"date": "27/01/17",
|
||||
"description": "Sección online en películas modificada"
|
||||
},
|
||||
{
|
||||
"date": "08/07/16",
|
||||
"description": "Adaptado el canal a las nuevas funciones"
|
||||
}
|
||||
],
|
||||
"thumbnail": "descargasmix.png",
|
||||
"banner": "descargasmix.png",
|
||||
"categories": [
|
||||
@@ -66,6 +43,14 @@
|
||||
"default": false,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_torrent",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Torrent",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -42,12 +42,12 @@ def mainlist(item):
|
||||
fanart="http://i.imgur.com/ggFFR8o.png"))
|
||||
itemlist.append(item.clone(title="", action=""))
|
||||
itemlist.append(item.clone(title="Buscar...", action="search"))
|
||||
itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False))
|
||||
itemlist.append(item.clone(action="setting_channel", title="Configurar canal...", text_color="gold", folder=False))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def configuracion(item):
|
||||
def setting_channel(item):
|
||||
from platformcode import platformtools
|
||||
ret = platformtools.show_channel_settings()
|
||||
platformtools.itemlist_refresh()
|
||||
@@ -108,7 +108,7 @@ def busqueda(item):
|
||||
|
||||
def lista(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
itemlist = list()
|
||||
|
||||
itemlist.append(item.clone(title="Novedades", action="entradas", url="%s/peliculas" % host))
|
||||
itemlist.append(item.clone(title="Estrenos", action="entradas", url="%s/peliculas/estrenos" % host))
|
||||
@@ -125,7 +125,7 @@ def lista(item):
|
||||
|
||||
def lista_series(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
itemlist = list()
|
||||
|
||||
itemlist.append(item.clone(title="Novedades", action="entradas", url="%s/series/" % host))
|
||||
itemlist.append(item.clone(title="Miniseries", action="entradas", url="%s/series/miniseries" % host))
|
||||
@@ -254,7 +254,7 @@ def episodios(item):
|
||||
return itemlist
|
||||
|
||||
|
||||
def epienlaces(item):
|
||||
def episode_links(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item.text_color = color3
|
||||
@@ -286,7 +286,7 @@ def epienlaces(item):
|
||||
else:
|
||||
if servertools.is_server_enabled(scrapedserver):
|
||||
try:
|
||||
servers_module = __import__("servers." + scrapedserver)
|
||||
# servers_module = __import__("servers." + scrapedserver)
|
||||
lista_enlaces.append(item.clone(action="play", title=titulo, server=scrapedserver, url=scrapedurl,
|
||||
extra=item.url))
|
||||
except:
|
||||
@@ -302,13 +302,14 @@ def epienlaces(item):
|
||||
|
||||
def findvideos(item):
|
||||
logger.info()
|
||||
if (item.extra and item.extra != "findvideos") or item.path:
|
||||
return epienlaces(item)
|
||||
if item.contentSeason != '':
|
||||
return episode_links(item)
|
||||
|
||||
itemlist = []
|
||||
item.text_color = color3
|
||||
|
||||
data = get_data(item.url)
|
||||
|
||||
item.plot = scrapertools.find_single_match(data, 'SINOPSIS(?:</span>|</strong>):(.*?)</p>')
|
||||
year = scrapertools.find_single_match(data, '(?:<span class="bold">|<strong>)AÑO(?:</span>|</strong>):\s*(\d+)')
|
||||
if year:
|
||||
@@ -346,9 +347,9 @@ def findvideos(item):
|
||||
patron = 'make_links.*?,[\'"]([^"\']+)["\']'
|
||||
matches = scrapertools.find_multiple_matches(data_online, patron)
|
||||
for i, code in enumerate(matches):
|
||||
enlace = mostrar_enlaces(code)
|
||||
enlaces = servertools.findvideos(data=enlace[0])
|
||||
if enlaces and "peliculas.nu" not in enlaces:
|
||||
enlace = show_links(code)
|
||||
links = servertools.findvideos(data=enlace[0])
|
||||
if links and "peliculas.nu" not in links:
|
||||
if i == 0:
|
||||
extra_info = scrapertools.find_single_match(data_online, '<span class="tooltiptext">(.*?)</span>')
|
||||
size = scrapertools.find_single_match(data_online, '(?i)TAMAÑO:\s*(.*?)<').strip()
|
||||
@@ -362,8 +363,8 @@ def findvideos(item):
|
||||
new_item.title += " +INFO"
|
||||
itemlist.append(new_item)
|
||||
|
||||
title = " Ver vídeo en " + enlaces[0][2]
|
||||
itemlist.append(item.clone(action="play", server=enlaces[0][2], title=title, url=enlaces[0][1]))
|
||||
title = " Ver vídeo en " + links[0][2]
|
||||
itemlist.append(item.clone(action="play", server=links[0][2], title=title, url=links[0][1]))
|
||||
scriptg = scrapertools.find_single_match(data, "<script type='text/javascript'>str='([^']+)'")
|
||||
if scriptg:
|
||||
gvideo = urllib.unquote_plus(scriptg.replace("@", "%"))
|
||||
@@ -419,9 +420,9 @@ def findvideos(item):
|
||||
continue
|
||||
if servertools.is_server_enabled(scrapedserver):
|
||||
try:
|
||||
servers_module = __import__("servers." + scrapedserver)
|
||||
# servers_module = __import__("servers." + scrapedserver)
|
||||
# Saca numero de enlaces
|
||||
urls = mostrar_enlaces(scrapedurl)
|
||||
urls = show_links(scrapedurl)
|
||||
numero = str(len(urls))
|
||||
titulo = " %s - Nº enlaces: %s" % (titulo, numero)
|
||||
itemlist.append(item.clone(action="enlaces", title=titulo, extra=scrapedurl, server=scrapedserver))
|
||||
@@ -449,12 +450,13 @@ def play(item):
|
||||
headers=headers, follow_redirects=False).data
|
||||
|
||||
url = scrapertools.find_single_match(data, 'url":"([^"]+)"').replace("\\", "")
|
||||
if "enlacesmix" in url:
|
||||
|
||||
if "enlacesmix" in url or "enlacesws.com" in url:
|
||||
data = httptools.downloadpage(url, headers={'Referer': item.extra}, follow_redirects=False).data
|
||||
url = scrapertools.find_single_match(data, '<iframe.*?src="([^"]+)"')
|
||||
enlaces = servertools.findvideosbyserver(url, item.server)
|
||||
if enlaces:
|
||||
itemlist.append(item.clone(action="play", server=enlaces[0][2], url=enlaces[0][1]))
|
||||
links = servertools.findvideosbyserver(url, item.server)
|
||||
if links:
|
||||
itemlist.append(item.clone(action="play", server=links[0][2], url=links[0][1]))
|
||||
else:
|
||||
itemlist.append(item.clone())
|
||||
|
||||
@@ -465,13 +467,13 @@ def enlaces(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
urls = mostrar_enlaces(item.extra)
|
||||
urls = show_links(item.extra)
|
||||
numero = len(urls)
|
||||
for enlace in urls:
|
||||
enlaces = servertools.findvideos(data=enlace)
|
||||
if enlaces:
|
||||
for link in enlaces:
|
||||
if "/folder/" in enlace:
|
||||
for url in urls:
|
||||
links = servertools.findvideos(data=url)
|
||||
if links:
|
||||
for link in links:
|
||||
if "/folder/" in url:
|
||||
titulo = link[0]
|
||||
else:
|
||||
titulo = "%s - Enlace %s" % (item.title.split("-")[0], str(numero))
|
||||
@@ -482,7 +484,7 @@ def enlaces(item):
|
||||
return itemlist
|
||||
|
||||
|
||||
def mostrar_enlaces(data):
|
||||
def show_links(data):
|
||||
import base64
|
||||
data = data.split(",")
|
||||
len_data = len(data)
|
||||
@@ -535,3 +537,38 @@ def get_data(url_orig, get_host=False):
|
||||
break
|
||||
|
||||
return response.data
|
||||
|
||||
|
||||
def newest(categoria):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'torrent':
|
||||
item.url = host+'/peliculas'
|
||||
|
||||
itemlist = entradas(item)
|
||||
if itemlist[-1].title == ">> Siguiente":
|
||||
itemlist.pop()
|
||||
|
||||
item.url = host + '/series'
|
||||
|
||||
itemlist.extend(entradas(item))
|
||||
if itemlist[-1].title == ">> Siguiente":
|
||||
itemlist.pop()
|
||||
|
||||
item.url = host + '/anime'
|
||||
|
||||
itemlist.extend(entradas(item))
|
||||
|
||||
if itemlist[-1].title == ">> Siguiente":
|
||||
itemlist.pop()
|
||||
|
||||
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "discoverymx.png",
|
||||
"banner": "discoverymx.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"documentary"
|
||||
]
|
||||
|
||||
@@ -6,29 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "divxatope.png",
|
||||
"banner": "divxatope.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "17/04/17",
|
||||
"description": "Reparados torrents, añadidas nuevas secciones"
|
||||
},
|
||||
{
|
||||
"date": "13/01/17",
|
||||
"description": "Reparados torrents y paginacion. Añadida seccion Peliculas 4K ultraHD"
|
||||
},
|
||||
{
|
||||
"date": "31/12/16",
|
||||
"description": "Adaptado, por cambios en la web"
|
||||
},
|
||||
{
|
||||
"date": "01/07/16",
|
||||
"description": "Eliminado código innecesario."
|
||||
},
|
||||
{
|
||||
"date": "29/04/16",
|
||||
"description": "Adaptar a Buscador global y Novedades Peliculas y Series"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
@@ -58,6 +35,14 @@
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_torrent",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Torrent",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -94,7 +94,7 @@ def newest(categoria):
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
if categoria in ['peliculas', 'torrent']:
|
||||
item.url = "http://www.divxatope1.com/peliculas"
|
||||
|
||||
elif categoria == 'series':
|
||||
|
||||
@@ -5,17 +5,6 @@
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://imgur.com/Madj03A.jpg",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "26/04/2017",
|
||||
"description": "Release"
|
||||
},
|
||||
{
|
||||
"date": "28/06/2017",
|
||||
"description": "Correciones código por cambios web"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
@@ -37,6 +26,14 @@
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_torrent",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Torrent",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1020,3 +1020,26 @@ def ext_size(url):
|
||||
ext_v = ext_v + " -- No reproducible"
|
||||
size = ""
|
||||
return ext_v, size
|
||||
|
||||
def newest(categoria):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'torrent':
|
||||
item.url = 'http://www.divxtotal.com/peliculas/'
|
||||
item.contentType="movie"
|
||||
|
||||
itemlist = scraper(item)
|
||||
|
||||
if itemlist[-1].title == "[COLOR springgreen][B]Siguiente >>[/B][/COLOR]":
|
||||
itemlist.pop()
|
||||
|
||||
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("{0}".format(line))
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "http://i.imgur.com/qMR9sg9.png",
|
||||
"banner": "documaniatv.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "11/07/2016",
|
||||
"description": "Reparadas cuentas de usuario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"documentary"
|
||||
],
|
||||
|
||||
@@ -5,17 +5,6 @@
|
||||
"adult": false,
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "http://i.imgur.com/fsrnC4m.jpg",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/04/2017",
|
||||
"description": "fix novedades"
|
||||
},
|
||||
{
|
||||
"date": "09/03/2017",
|
||||
"description": "nueva web"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"documentary"
|
||||
],
|
||||
|
||||
@@ -55,6 +55,14 @@
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -202,7 +202,7 @@ def newest(categoria):
|
||||
item = Item()
|
||||
# categoria='peliculas'
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
if categoria in ['peliculas', 'latino']:
|
||||
item.url = host +'peliculas/page/1'
|
||||
elif categoria == 'infantiles':
|
||||
item.url = host + 'categoria/animacion/'
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "doramastv.png",
|
||||
"banner": "doramastv.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"tvshow"
|
||||
],
|
||||
|
||||
@@ -4,21 +4,6 @@
|
||||
"active": false,
|
||||
"adult": false,
|
||||
"language": ["*"],
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "12/03/17",
|
||||
"description": "Añadidas mas opciones de configuracion y corregidos fallos"
|
||||
},
|
||||
{
|
||||
"date": "12/01/17",
|
||||
"description": "release"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
],
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "ecarteleratrailers.png",
|
||||
"banner": "ecarteleratrailers.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
]
|
||||
|
||||
@@ -6,26 +6,21 @@
|
||||
"language": ["cast"],
|
||||
"thumbnail": "elitetorrent.png",
|
||||
"banner": "elitetorrent.png",
|
||||
"version": 2,
|
||||
"changes": [
|
||||
{
|
||||
"date": "2/08/2017",
|
||||
"description": "arreglada url canal"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
"tvshow",
|
||||
"documentary",
|
||||
"vos"
|
||||
],
|
||||
"settings":[
|
||||
{
|
||||
"id": "include_in_newest_torrent",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Torrent",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -105,3 +105,24 @@ def play(item):
|
||||
thumbnail=item.thumbnail, plot=item.plot, folder=False))
|
||||
|
||||
return itemlist
|
||||
|
||||
def newest(categoria):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'torrent':
|
||||
item.url = 'http://www.elitetorrent.wesconference.net/categoria/2/peliculas/modo:mini'
|
||||
|
||||
itemlist = peliculas(item)
|
||||
if itemlist[-1].title == "Página siguiente >>":
|
||||
itemlist.pop()
|
||||
|
||||
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("{0}".format(line))
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "elsenordelanillo.png",
|
||||
"banner": "elsenordelanillo.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
]
|
||||
|
||||
@@ -6,21 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "eporner.png",
|
||||
"banner": "eporner.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "03/06/2017",
|
||||
"description": "reparada seccion categorias"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "28/12/16",
|
||||
"description": "First version"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
]
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "http://www.youfreeporntube.com/uploads/custom-logo.png",
|
||||
"banner": "http://www.youfreeporntube.com/uploads/custom-logo.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "26/12/2016",
|
||||
"description": "Release."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
],
|
||||
|
||||
@@ -6,29 +6,6 @@
|
||||
"language": ["lat"],
|
||||
"thumbnail": "https://s24.postimg.org/nsgit7fhh/estadepelis.png",
|
||||
"banner": "https://s28.postimg.org/ud0l032ul/estadepelis_banner.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "24/06/2017",
|
||||
"description": "Cambios para autoplay"
|
||||
},
|
||||
{
|
||||
"date": "22/06/2017",
|
||||
"description": "ajustes para AutoPlay"
|
||||
},
|
||||
{
|
||||
"date": "25/05/2017",
|
||||
"description": "cambios esteticos"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "07/02/2017",
|
||||
"description": "Release"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
],
|
||||
@@ -54,6 +31,14 @@
|
||||
"VOS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_peliculas",
|
||||
"type": "bool",
|
||||
@@ -79,4 +64,4 @@
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,7 +457,7 @@ def newest(categoria):
|
||||
item = Item()
|
||||
# categoria='peliculas'
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
if categoria in ['peliculas','latino']:
|
||||
item.url = host
|
||||
elif categoria == 'infantiles':
|
||||
item.url = host + 'search?q=animación'
|
||||
|
||||
@@ -7,21 +7,6 @@
|
||||
"fanart": "https://github.com/master-1970/resources/raw/master/images/fanart/estrenosgo.png",
|
||||
"thumbnail": "https://github.com/master-1970/resources/raw/master/images/squares/estrenosgo.png",
|
||||
"banner": "estrenosgo.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/05/16",
|
||||
"description": "Compatibilidad con python anteriores a la 2.7"
|
||||
},
|
||||
{
|
||||
"date": "03/05/16",
|
||||
"description": "Modificado por cambios en la web"
|
||||
},
|
||||
{
|
||||
"date": "29/04/16",
|
||||
"description": "Version inicial"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"tvshow",
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "filesmonster_catalogue.png",
|
||||
"banner": "filesmonster_catalogue.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "05/08/2016",
|
||||
"description": "Eliminado de sección películas"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
],
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"language": ["*"],
|
||||
"active": true,
|
||||
"adult": true,
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "29/04/2017",
|
||||
"description": "Primera versión"
|
||||
}
|
||||
],
|
||||
"thumbnail": "http://i.imgur.com/wuzhOCt.png?1",
|
||||
"categories": [
|
||||
"adult"
|
||||
|
||||
@@ -4,15 +4,8 @@
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast", "lat"],
|
||||
"version": 1,
|
||||
"thumbnail": "http://gnula.mobi/wp-content/uploads/2016/08/Untitled-6.png",
|
||||
"banner": "",
|
||||
"changes": [
|
||||
{
|
||||
"date": "25/08/2017",
|
||||
"description": "Nuevo canal"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"adult"
|
||||
@@ -25,6 +18,22 @@
|
||||
"default": false,
|
||||
"enabled": false,
|
||||
"visible": false
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_castellano",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Castellano",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_latino",
|
||||
"type": "bool",
|
||||
"label": "Incluir en Novedades - Latino",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,10 +12,11 @@ from core import tmdb
|
||||
from core.item import Item
|
||||
from platformcode import logger
|
||||
|
||||
host = 'http://gnula.mobi/'
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
itemlist = list()
|
||||
itemlist.append(item.clone(title="Novedades", action="peliculas", url="http://gnula.mobi/"))
|
||||
itemlist.append(item.clone(title="Novedades", action="peliculas", url=host))
|
||||
itemlist.append(item.clone(title="Castellano", action="peliculas",
|
||||
url="http://www.gnula.mobi/tag/espanol/"))
|
||||
itemlist.append(item.clone(title="Latino", action="peliculas", url="http://gnula.mobi/tag/latino/"))
|
||||
@@ -113,3 +114,25 @@ def findvideos(item):
|
||||
def play(item):
|
||||
item.thumbnail = item.contentThumbnail
|
||||
return [item]
|
||||
|
||||
def newest(categoria):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == 'peliculas':
|
||||
item.url = host
|
||||
elif categoria == 'castellano':
|
||||
item.url = host +'tag/espanol/'
|
||||
elif categoria == 'latino':
|
||||
item.url = host +'tag/latino/'
|
||||
itemlist = peliculas(item)
|
||||
if "Pagina" in itemlist[-1].title:
|
||||
itemlist.pop()
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("{0}".format(line))
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "gnula.png",
|
||||
"banner": "gnula.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie"
|
||||
]
|
||||
|
||||
73
plugin.video.alfa/channels/pasateatorrent.json → plugin.video.alfa/channels/grantorrent.json
Executable file → Normal file
73
plugin.video.alfa/channels/pasateatorrent.json → plugin.video.alfa/channels/grantorrent.json
Executable file → Normal file
@@ -1,40 +1,33 @@
|
||||
{
|
||||
"id": "pasateatorrent",
|
||||
"name": "PasateaTorrent",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"thumbnail": "http://imgur.com/iLeISt0.png",
|
||||
"banner": "pasateatorrent.png",
|
||||
"fanart": "http://imgur.com/uexmGEg.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "25/08/2017",
|
||||
"description": "Revamp"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
"tvshow"
|
||||
],
|
||||
"settings": [
|
||||
{
|
||||
"id": "include_in_global_search",
|
||||
"type": "bool",
|
||||
"label": "Incluir en busqueda global",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "modo_grafico",
|
||||
"type": "bool",
|
||||
"label": "Buscar información extra (TMDB)",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"id": "grantorrent",
|
||||
"name": "GranTorrent",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast"],
|
||||
"thumbnail": "grantorrent.jpg",
|
||||
"banner": "grantorrent.png",
|
||||
"fanart": "grantorrent.png",
|
||||
"categories": [
|
||||
"torrent",
|
||||
"movie",
|
||||
"tvshow"
|
||||
],
|
||||
"settings": [
|
||||
{
|
||||
"id": "include_in_global_search",
|
||||
"type": "bool",
|
||||
"label": "Incluir en busqueda global",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "modo_grafico",
|
||||
"type": "bool",
|
||||
"label": "Buscar información extra (TMDB)",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
546
plugin.video.alfa/channels/pasateatorrent.py → plugin.video.alfa/channels/grantorrent.py
Executable file → Normal file
546
plugin.video.alfa/channels/pasateatorrent.py → plugin.video.alfa/channels/grantorrent.py
Executable file → Normal file
@@ -1,273 +1,273 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
|
||||
from channelselector import get_thumb
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
|
||||
host = "https://pasateatorrent.com/"
|
||||
|
||||
dict_url_seasons = dict()
|
||||
__modo_grafico__ = config.get_setting('modo_grafico', 'pasateatorrent')
|
||||
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
|
||||
thumb_movie = get_thumb("channels_movie.png")
|
||||
thumb_tvshow = get_thumb("channels_tvshow.png")
|
||||
|
||||
itemlist = list()
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title="Peliculas", action="peliculas", thumbnail=thumb_movie))
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title="Series", action="series", thumbnail=thumb_tvshow))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def peliculas(item):
|
||||
logger.info()
|
||||
|
||||
thumb_search = get_thumb("search.png")
|
||||
|
||||
itemlist = list()
|
||||
itemlist.append(item.clone(channel=item.channel, title="Novedades", action="listado", url=host))
|
||||
# itemlist.append(item.clone(channel=item.channel, title="Filtrar películas", action="listado", url=host))
|
||||
itemlist.append(item.clone(channel=item.channel, title="Buscar", action="search", url=host, media="película",
|
||||
thumbnail=thumb_search))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def series(item):
|
||||
logger.info()
|
||||
|
||||
thumb_search = get_thumb("search.png")
|
||||
|
||||
itemlist = list()
|
||||
itemlist.append(item.clone(channel=item.channel, title="Novedades", action="listado", url=host + "series/"))
|
||||
# itemlist.append(item.clone(channel=item.channel, title="Filtrar series", action="listado", url=host))
|
||||
itemlist.append(item.clone(channel=item.channel, title="Buscar", action="search", url=host + "series/",
|
||||
media="serie", thumbnail=thumb_search))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def search(item, texto):
|
||||
logger.info("texto:" + texto)
|
||||
texto = texto.replace(" ", "+")
|
||||
itemlist = []
|
||||
|
||||
try:
|
||||
url = "%s?s=%s&post_type=Buscar+%s" % (item.url, texto, item.media)
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
video_section = scrapertools.find_single_match(data, '<div class="contenedor_imagenes">(.*?)</div><center>')
|
||||
|
||||
pattern = '<a href="(?P<url>[^"]+)">.*?<img.*?src="(?P<thumb>[^"]+)".*?class="bloque_inferior">' \
|
||||
'(?P<title>.*?)</div>'
|
||||
|
||||
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
||||
|
||||
for url, thumb, title in matches:
|
||||
if item.media == "serie":
|
||||
action = "episodios"
|
||||
else:
|
||||
action = "findvideos"
|
||||
itemlist.append(Item(channel=item.channel, action=action, title=title, url=url, thumbnail=thumb,
|
||||
contentTitle=title, contentType="movie"))
|
||||
|
||||
return itemlist
|
||||
|
||||
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
|
||||
def listado(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
video_section = scrapertools.find_single_match(data, '<div class="contenedor_imagenes">(.*?)</div><center>')
|
||||
# logger.debug("data %s \n\n" % video_section)
|
||||
|
||||
pattern = '<a href="(?P<url>[^"]+)">.*?<img.*?src="(?P<thumb>[^"]+)".*?class="bloque_superior">\s*' \
|
||||
'(?P<quality>.*?)\s*</div>.*?src="(?P<lang>[^"]+)".*?class="bloque_inferior">\s*(?P<title>.*?)\s*' \
|
||||
'</div>.*?class="div_inferior_date">\s*(?P<date>.*?)\s*</div>'
|
||||
|
||||
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
||||
|
||||
for url, thumb, quality, lang, title, date in matches:
|
||||
title = scrapertools.htmlclean(title)
|
||||
title = re.sub(r"\s{2}", " ", title)
|
||||
|
||||
if "/series" in item.url:
|
||||
if quality:
|
||||
title2 = "%s [%s]" % (title, quality)
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="episodios", title=title2, url=url, thumbnail=thumb,
|
||||
quality=quality, contentTitle=title, contentType="tvshow"))
|
||||
else:
|
||||
|
||||
if quality:
|
||||
title2 = "%s [%s]" % (title, quality)
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title2, url=url, thumbnail=thumb,
|
||||
quality=quality, contentTitle=title, contentType="movie"))
|
||||
|
||||
pagination = scrapertools.find_single_match(data, '<div class="navigation">(.*?)</ul>')
|
||||
if pagination:
|
||||
next_page = scrapertools.find_single_match(pagination, 'class="active"><a.*?<a.*?href="([^"]+)')
|
||||
# logger.debug("next %s" % next_page)
|
||||
if next_page:
|
||||
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=next_page,
|
||||
thumbnail=get_thumb("next.png")))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def episodios(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
dict_data = dict()
|
||||
dict_data, item = get_episodes(item, dict_data)
|
||||
|
||||
for key in dict_data.keys():
|
||||
d = dict_data[key]
|
||||
quality = "[%s]" % "][".join(d["quality"])
|
||||
|
||||
d["s_e"] = re.sub(r"\(Contrase.*?\)\s*", "NO REPRODUCIBLE-RAR", d["s_e"])
|
||||
title = "%s [%s] %s" % (d["s_e"], d["lang"], quality)
|
||||
logger.debug("bla %s" % d["s_e"])
|
||||
|
||||
if "temporada" in d["s_e"].lower():
|
||||
regex = re.compile('temporada\s*', re.I)
|
||||
d["s_e"] = regex.sub("", d["s_e"])
|
||||
season = scrapertools.find_single_match(d["s_e"], "(\d+)")
|
||||
episode = 1
|
||||
else:
|
||||
season, episode = scrapertools.find_single_match(d["s_e"], "(\d+)×(\d+)")
|
||||
|
||||
itemlist.append(item.clone(action="findvideos", title=title, thumbnail=item.thumbnail, url=d["url"],
|
||||
server="torrent", contentSeason=season, contentEpisodeNumber=episode,
|
||||
contentType="tvshow", fulltitle=item.title, quality=d["quality"], lang=d["lang"]))
|
||||
|
||||
# order list
|
||||
if len(itemlist) > 1:
|
||||
itemlist = sorted(itemlist, key=lambda it: (int(it.contentSeason), int(it.contentEpisodeNumber)))
|
||||
|
||||
try:
|
||||
from core import tmdb
|
||||
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
|
||||
except:
|
||||
pass
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def get_episodes(item, dict_data):
|
||||
global dict_url_seasons
|
||||
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
if item.contentTitle != "":
|
||||
title = scrapertools.find_single_match(data, '<div class="titulo_page_exit">(.*?)[.]</div>')
|
||||
year = scrapertools.find_single_match(data, '<div class="ano_page_exit">(\d+)</div>')
|
||||
# logger.debug("title es %s" % title)
|
||||
if title:
|
||||
item.contentTitle = title
|
||||
item.show = title
|
||||
if year:
|
||||
item.infoLabels['year'] = year
|
||||
|
||||
links_section = scrapertools.find_single_match(data, 'div id="Tokyo" [^>]+>(.*?)</div>')
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<s_e>.*?)</td><td>(?P<quality>.*?)</td><td>' \
|
||||
'<a href="(?P<url>[^"]+)"'
|
||||
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
||||
for lang, s_e, quality, url in matches:
|
||||
if s_e + lang not in dict_data:
|
||||
dict_data[s_e + lang] = {"url": [url], "lang": lang, "s_e": s_e,
|
||||
"quality": [quality]}
|
||||
else:
|
||||
if quality not in dict_data[s_e+lang]["quality"]:
|
||||
dict_data[s_e + lang]["quality"].append(quality)
|
||||
dict_data[s_e + lang]["url"].append(url)
|
||||
|
||||
url_to_check = scrapertools.find_single_match(links_section, '</table><p><a .*?href="([^"]+)">Temporada.*?</a>')
|
||||
# logger.debug("url es %s " % url_to_check)
|
||||
|
||||
# if url doesn't exist we add it into the dict
|
||||
if url_to_check not in dict_url_seasons:
|
||||
dict_url_seasons[url_to_check] = False
|
||||
|
||||
for key, value in dict_url_seasons.items():
|
||||
if not value:
|
||||
item.url = key
|
||||
dict_url_seasons[key] = True
|
||||
dict_data, item = get_episodes(item, dict_data)
|
||||
|
||||
# logger.debug("URL_LIST es %s " % dict_url_seasons)
|
||||
|
||||
return dict_data, item
|
||||
|
||||
|
||||
def findvideos(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
if item.contentType == "movie":
|
||||
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
if item.contentTitle != "":
|
||||
title = scrapertools.find_single_match(data, '<div class="titulo_page_exit">(.*?)[.]</div>')
|
||||
year = scrapertools.find_single_match(data, '<div class="ano_page_exit">(\d+)</div>')
|
||||
logger.debug("title es %s" % title)
|
||||
if title:
|
||||
item.contentTitle = title
|
||||
item.show = title
|
||||
if year:
|
||||
item.infoLabels['year'] = year
|
||||
|
||||
links_section = scrapertools.find_single_match(data, 'div id="Tokyo" [^>]+>(.*?)</div>')
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<quality>.*?)</td><td>(?P<size>.*?)</td><td>' \
|
||||
'<a href="(?P<url>[^"]+)"'
|
||||
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
||||
|
||||
for lang, quality, size, url in matches:
|
||||
title = "[%s] [%s] (%s)" % (lang, quality, size)
|
||||
|
||||
itemlist.append(item.clone(action="play", title=title, url=url, thumbnail=item.thumbnail, server="torrent",
|
||||
fulltitle=item.title))
|
||||
|
||||
try:
|
||||
from core import tmdb
|
||||
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
|
||||
except:
|
||||
pass
|
||||
|
||||
else:
|
||||
for index, url in enumerate(item.url):
|
||||
title = "%sx%s [%s] [%s]" % (item.contentSeason, item.contentEpisodeNumber, item.lang, item.quality[index])
|
||||
itemlist.append(item.clone(action="play", title=title, url=url, thumbnail=item.thumbnail, server="torrent",
|
||||
quality=item.quality[index]))
|
||||
|
||||
return itemlist
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
|
||||
from channelselector import get_thumb
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from core.item import Item
|
||||
from platformcode import config, logger
|
||||
|
||||
host = "https://grantorrent.com/"
|
||||
|
||||
dict_url_seasons = dict()
|
||||
__modo_grafico__ = config.get_setting('modo_grafico', 'grantorrent')
|
||||
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
|
||||
thumb_movie = get_thumb("channels_movie.png")
|
||||
thumb_tvshow = get_thumb("channels_tvshow.png")
|
||||
|
||||
itemlist = list()
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title="Peliculas", action="peliculas", thumbnail=thumb_movie))
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, title="Series", action="series", thumbnail=thumb_tvshow))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def peliculas(item):
|
||||
logger.info()
|
||||
|
||||
thumb_search = get_thumb("search.png")
|
||||
|
||||
itemlist = list()
|
||||
itemlist.append(item.clone(channel=item.channel, title="Novedades", action="listado", url=host))
|
||||
# itemlist.append(item.clone(channel=item.channel, title="Filtrar películas", action="listado", url=host))
|
||||
itemlist.append(item.clone(channel=item.channel, title="Buscar", action="search", url=host, media="película",
|
||||
thumbnail=thumb_search))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def series(item):
|
||||
logger.info()
|
||||
|
||||
thumb_search = get_thumb("search.png")
|
||||
|
||||
itemlist = list()
|
||||
itemlist.append(item.clone(channel=item.channel, title="Novedades", action="listado", url=host + "series/"))
|
||||
# itemlist.append(item.clone(channel=item.channel, title="Filtrar series", action="listado", url=host))
|
||||
itemlist.append(item.clone(channel=item.channel, title="Buscar", action="search", url=host + "series/",
|
||||
media="serie", thumbnail=thumb_search))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def search(item, texto):
|
||||
logger.info("texto:" + texto)
|
||||
texto = texto.replace(" ", "+")
|
||||
itemlist = []
|
||||
|
||||
try:
|
||||
url = "%s?s=%s" % (item.url, texto)
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
video_section = scrapertools.find_single_match(data, '<div class="contenedor-imagen">(.*?</div>)</div></div>')
|
||||
|
||||
pattern = '<a href="(?P<url>[^"]+)"><img.*?src="(?P<thumb>[^"]+)".*?class="bloque-inferior">' \
|
||||
'\s*(?P<title>.*?)\s*</div>'
|
||||
|
||||
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
||||
|
||||
for url, thumb, title in matches:
|
||||
if item.media == "serie":
|
||||
action = "episodios"
|
||||
else:
|
||||
action = "findvideos"
|
||||
itemlist.append(Item(channel=item.channel, action=action, title=title, url=url, thumbnail=thumb,
|
||||
contentTitle=title, contentType="movie"))
|
||||
|
||||
return itemlist
|
||||
|
||||
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
|
||||
def listado(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
video_section = scrapertools.find_single_match(data, '<br><div class="contenedor-home">(.*?</div>)</div></div>')
|
||||
# logger.debug("data %s \n\n" % video_section)
|
||||
|
||||
pattern = '<a href="(?P<url>[^"]+)"><img.*?src="(?P<thumb>[^"]+)".*?.*?class="bloque-superior">\s*' \
|
||||
'(?P<quality>.*?)\s*<div class="imagen-idioma">\s*<img src=".*?icono_(?P<lang>[^\.]+).*?<div class=' \
|
||||
'"bloque-inferior">\s*(?P<title>.*?)\s*</div><div class="bloque-date">\s*(?P<date>.*?)\s*</div>'
|
||||
|
||||
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
||||
|
||||
for url, thumb, quality, lang, title, date in matches:
|
||||
title = scrapertools.htmlclean(title)
|
||||
title = re.sub(r"\s{2}", " ", title)
|
||||
|
||||
if "/series" in item.url:
|
||||
if quality:
|
||||
title2 = "%s [%s]" % (title, quality)
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="episodios", title=title2, url=url, thumbnail=thumb,
|
||||
quality=quality, contentTitle=title, contentType="tvshow"))
|
||||
else:
|
||||
|
||||
if quality:
|
||||
title2 = "%s [%s]" % (title, quality)
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title2, url=url, thumbnail=thumb,
|
||||
quality=quality, contentTitle=title, contentType="movie"))
|
||||
|
||||
pagination = scrapertools.find_single_match(data, '<div class="nav-links">(.*?)</ul>')
|
||||
if pagination:
|
||||
next_page = scrapertools.find_single_match(pagination, "class='page-numbers current'.*?<a.*?href='([^']+)'")
|
||||
# logger.debug("next %s" % next_page)
|
||||
if next_page:
|
||||
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=next_page,
|
||||
thumbnail=get_thumb("next.png")))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def episodios(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
dict_data = dict()
|
||||
dict_data, item = get_episodes(item, dict_data)
|
||||
|
||||
for key in dict_data.keys():
|
||||
d = dict_data[key]
|
||||
quality = "[%s]" % "][".join(d["quality"])
|
||||
|
||||
d["s_e"] = re.sub(r"\(Contrase.*?\)\s*", "NO REPRODUCIBLE-RAR", d["s_e"])
|
||||
title = "%s [%s] %s" % (d["s_e"], d["lang"], quality)
|
||||
# logger.debug("%s" % d["s_e"])
|
||||
|
||||
if "temporada" in d["s_e"].lower():
|
||||
regex = re.compile('temporada\s*', re.I)
|
||||
d["s_e"] = regex.sub("", d["s_e"])
|
||||
season = scrapertools.find_single_match(d["s_e"], "(\d+)")
|
||||
episode = 1
|
||||
else:
|
||||
season, episode = scrapertools.find_single_match(d["s_e"], "(\d+)×(\d+)")
|
||||
|
||||
itemlist.append(item.clone(action="findvideos", title=title, thumbnail=item.thumbnail, url=d["url"],
|
||||
server="torrent", contentSeason=season, contentEpisodeNumber=episode,
|
||||
contentType="tvshow", fulltitle=item.title, quality=d["quality"], lang=d["lang"]))
|
||||
|
||||
# order list
|
||||
if len(itemlist) > 1:
|
||||
itemlist = sorted(itemlist, key=lambda it: (int(it.contentSeason), int(it.contentEpisodeNumber)))
|
||||
|
||||
try:
|
||||
from core import tmdb
|
||||
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
|
||||
except:
|
||||
pass
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def get_episodes(item, dict_data):
|
||||
global dict_url_seasons
|
||||
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
if item.contentTitle != "":
|
||||
title = scrapertools.find_single_match(data, '<h3 class="bold">.*?original:\s*(.*?)[.]</h3>')
|
||||
year = scrapertools.find_single_match(data, '<h3 class="bold">\s*Estreno:\s*(\d+)[.]</h')
|
||||
# logger.debug("title es %s" % title)
|
||||
if title:
|
||||
item.contentTitle = title
|
||||
item.show = title
|
||||
if year:
|
||||
item.infoLabels['year'] = year
|
||||
|
||||
links_section = scrapertools.find_single_match(data, 'div id="Tokyo" [^>]+>(.*?)</div>')
|
||||
# logger.debug("data %s \n\n" % links_section)
|
||||
|
||||
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<s_e>.*?)</td><td>(?P<quality>.*?)</td><td>' \
|
||||
'<a class="link" href="(?P<url>[^"]+)"'
|
||||
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
||||
for lang, s_e, quality, url in matches:
|
||||
if s_e + lang not in dict_data:
|
||||
dict_data[s_e + lang] = {"url": [url], "lang": lang, "s_e": s_e,
|
||||
"quality": [quality]}
|
||||
else:
|
||||
if quality not in dict_data[s_e+lang]["quality"]:
|
||||
dict_data[s_e + lang]["quality"].append(quality)
|
||||
dict_data[s_e + lang]["url"].append(url)
|
||||
|
||||
url_to_check = scrapertools.find_single_match(links_section, '</table><p><a.*?href="([^"]+)".*?>\s*Temporada.*?</a>')
|
||||
# logger.debug("url es %s " % url_to_check)
|
||||
|
||||
# if url doesn't exist we add it into the dict
|
||||
if url_to_check and url_to_check not in dict_url_seasons:
|
||||
dict_url_seasons[url_to_check] = False
|
||||
|
||||
for key, value in dict_url_seasons.items():
|
||||
if not value:
|
||||
item.url = key
|
||||
dict_url_seasons[key] = True
|
||||
dict_data, item = get_episodes(item, dict_data)
|
||||
|
||||
# logger.debug("URL_LIST es %s " % dict_url_seasons)
|
||||
|
||||
return dict_data, item
|
||||
|
||||
|
||||
def findvideos(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
if item.contentType == "movie":
|
||||
|
||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
if item.contentTitle != "":
|
||||
title = scrapertools.find_single_match(data, '<div class="titulo_page_exit">(.*?)[.]</div>')
|
||||
year = scrapertools.find_single_match(data, '<div class="ano_page_exit">(\d+)</div>')
|
||||
logger.debug("title es %s" % title)
|
||||
if title:
|
||||
item.contentTitle = title
|
||||
item.show = title
|
||||
if year:
|
||||
item.infoLabels['year'] = year
|
||||
|
||||
links_section = scrapertools.find_single_match(data, 'div id="Tokyo" [^>]+>(.*?)</div>')
|
||||
# logger.debug("data %s \n\n" % data)
|
||||
|
||||
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<quality>.*?)</td><td>(?P<size>.*?)</td><td>' \
|
||||
'<a class="link" href="(?P<url>[^"]+)"'
|
||||
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
||||
|
||||
for lang, quality, size, url in matches:
|
||||
title = "[%s] [%s] (%s)" % (lang, quality, size)
|
||||
|
||||
itemlist.append(item.clone(action="play", title=title, url=url, thumbnail=item.thumbnail, server="torrent",
|
||||
fulltitle=item.title))
|
||||
|
||||
try:
|
||||
from core import tmdb
|
||||
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
|
||||
except:
|
||||
pass
|
||||
|
||||
else:
|
||||
for index, url in enumerate(item.url):
|
||||
title = "%sx%s [%s] [%s]" % (item.contentSeason, item.contentEpisodeNumber, item.lang, item.quality[index])
|
||||
itemlist.append(item.clone(action="play", title=title, url=url, thumbnail=item.thumbnail, server="torrent",
|
||||
quality=item.quality[index]))
|
||||
|
||||
return itemlist
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast"],
|
||||
"thumbnail": "guaridavalencianista.png",
|
||||
"banner": "guaridavalencianista.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/07/2016",
|
||||
"description": "Eliminado código innecesario."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"documentary"
|
||||
]
|
||||
|
||||
@@ -6,29 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "hdfull.png",
|
||||
"banner": "hdfull.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "30/05/2017",
|
||||
"description": "Arreglada la extracción de enlaces por cambios en la web"
|
||||
},
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "21/03/2017",
|
||||
"description": "Pequeño fix para corregir algunas urls de los vídeos que se extraían mal"
|
||||
},
|
||||
{
|
||||
"date": "02/02/2017",
|
||||
"description": "Arreglada la extracción de enlaces por cambios en la web"
|
||||
},
|
||||
{
|
||||
"date": "05/01/2017",
|
||||
"description": "Corregido debido a cloudflare"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"movie",
|
||||
"tvshow"
|
||||
|
||||
@@ -310,7 +310,8 @@ def fichas(item):
|
||||
|
||||
for scrapedurl, scrapedthumbnail, scrapedlangs, scrapedrating, scrapedtitle, scrapedid in matches:
|
||||
|
||||
thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/")
|
||||
#thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/")
|
||||
thumbnail = scrapedthumbnail
|
||||
language = ''
|
||||
title = scrapedtitle.strip()
|
||||
show = title
|
||||
@@ -692,12 +693,10 @@ def findvideos(item):
|
||||
fanart = scrapertools.find_single_match(data, '<div style="background-image.url. ([^\s]+)')
|
||||
if account:
|
||||
url += "###" + id + ";" + type
|
||||
|
||||
it2.append(
|
||||
item.clone(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail,
|
||||
plot=plot, fanart=fanart, show=item.show, folder=True, infoLabels=infolabels,
|
||||
contentTitle=item.title, contentType=item.contentType, tipo=option, tipo1=option1, idioma=idioma))
|
||||
|
||||
contentTitle=item.show, contentType=item.contentType, tipo=option, tipo1=option1, idioma=idioma))
|
||||
it2 = servertools.get_servers_itemlist(it2, lambda i: i.title % i.server.capitalize())
|
||||
it2.sort(key=lambda it: (it.tipo1, it.idioma, it.server))
|
||||
for item in it2:
|
||||
|
||||
7
plugin.video.alfa/channels/help.json
Normal file
7
plugin.video.alfa/channels/help.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"id": "help",
|
||||
"name": "Ayuda",
|
||||
"active": false,
|
||||
"adult": false,
|
||||
"language": ["*"]
|
||||
}
|
||||
224
plugin.video.alfa/channels/help.py
Normal file
224
plugin.video.alfa/channels/help.py
Normal file
@@ -0,0 +1,224 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import xbmc
|
||||
|
||||
from core.item import Item
|
||||
from platformcode import config, logger, platformtools
|
||||
from channelselector import get_thumb
|
||||
|
||||
if config.is_xbmc():
|
||||
|
||||
import xbmcgui
|
||||
|
||||
class TextBox(xbmcgui.WindowXMLDialog):
|
||||
""" Create a skinned textbox window """
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.title = kwargs.get('title')
|
||||
self.text = kwargs.get('text')
|
||||
self.doModal()
|
||||
|
||||
def onInit(self):
|
||||
try:
|
||||
self.getControl(5).setText(self.text)
|
||||
self.getControl(1).setLabel(self.title)
|
||||
except:
|
||||
pass
|
||||
|
||||
def onClick(self, control_id):
|
||||
pass
|
||||
|
||||
def onFocus(self, control_id):
|
||||
pass
|
||||
|
||||
def onAction(self, action):
|
||||
# self.close()
|
||||
if action in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]:
|
||||
self.close()
|
||||
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
if config.is_xbmc():
|
||||
itemlist.append(Item(channel=item.channel, action="", title="FAQ:",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - ¿Cómo reportar un error?",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="report_error"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - ¿Se pueden activar/desactivar los canales?",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="onoff_canales"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - ¿Es posible la sincronización automática con Trakt?",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="trakt_sync"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - ¿Es posible mostrar todos los resultados juntos en el buscador global?",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="buscador_juntos"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - Los enlaces tardan en aparecer.",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="tiempo_enlaces"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - La búsqueda de contenido no se hace correctamente.",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="prob_busquedacont"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - Algún canal no funciona correctamente.",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="canal_fallo"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - Los enlaces Torrent no funcionan.",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra="prob_torrent"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - No se actualiza correctamente la videoteca.",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=True, extra="prob_bib"))
|
||||
itemlist.append(Item(channel=item.channel, action="faq",
|
||||
title=" - Enlaces de interés",
|
||||
thumbnail=get_thumb("help.png"),
|
||||
folder=False, extra=""))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def faq(item):
|
||||
|
||||
if item.extra == "onoff_canales":
|
||||
respuesta = platformtools.dialog_yesno("Alfa",
|
||||
"Esto se puede hacer en 'Configuración'>'Activar/Desactivar canales'. "
|
||||
"Puedes activar/desactivar los canales uno por uno o todos a la vez. ",
|
||||
"¿Deseas gestionar ahora los canales?")
|
||||
if respuesta == 1:
|
||||
from channels import setting
|
||||
setting.conf_tools(Item(extra='channels_onoff'))
|
||||
|
||||
elif item.extra == "trakt_sync":
|
||||
respuesta = platformtools.dialog_yesno("Alfa",
|
||||
"Actualmente se puede activar la sincronización (silenciosa) "
|
||||
"tras marcar como visto un episodio (esto se hace automáticamente). "
|
||||
"Esta opción se puede activar en 'Configuración'>'Ajustes "
|
||||
"de la videoteca'.",
|
||||
"¿Deseas acceder a dichos ajustes?")
|
||||
if respuesta == 1:
|
||||
from channels import videolibrary
|
||||
videolibrary.channel_config(Item(channel='videolibrary'))
|
||||
|
||||
elif item.extra == "tiempo_enlaces":
|
||||
respuesta = platformtools.dialog_yesno("Alfa",
|
||||
"Esto puede mejorarse limitando el número máximo de "
|
||||
"enlaces o mostrandolos en una ventana emergente. "
|
||||
"Estas opciones se encuentran en 'Configuración'>'Ajustes "
|
||||
"de la videoteca'.",
|
||||
"¿Deseas acceder a dichos ajustes?")
|
||||
if respuesta == 1:
|
||||
from channels import videolibrary
|
||||
videolibrary.channel_config(Item(channel='videolibrary'))
|
||||
|
||||
elif item.extra == "prob_busquedacont":
|
||||
title = "Alfa - FAQ - %s" % item.title[6:]
|
||||
text = ("Puede que no hayas escrito la ruta de la librería correctamente en "
|
||||
"'Configuración'>'Preferencias'.\n"
|
||||
"La ruta específicada debe ser exactamente la misma de la 'fuente' "
|
||||
"introducida en 'Archivos' de la videoteca de Kodi.\n"
|
||||
"AVANZADO: Esta ruta también se encuentra en 'sources.xml'.\n"
|
||||
"También puedes estar experimentando problemas por estar "
|
||||
"usando algun fork de Kodi y rutas con 'special://'. "
|
||||
"SPMC, por ejemplo, tiene problemas con esto, y no parece tener solución, "
|
||||
"ya que es un problema ajeno a Alfa que existe desde hace mucho.\n"
|
||||
"Puedes intentar subsanar estos problemas en 'Configuración'>'Ajustes de "
|
||||
"la videoteca', cambiando el ajuste 'Realizar búsqueda de contenido en' "
|
||||
"de 'La carpeta de cada serie' a 'Toda la videoteca'."
|
||||
"También puedes acudir a 'http://alfa-addon.com' en busca de ayuda.")
|
||||
|
||||
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
|
||||
|
||||
elif item.extra == "canal_fallo":
|
||||
title = "Alfa - FAQ - %s" % item.title[6:]
|
||||
text = ("Puede ser que la página web del canal no funcione. "
|
||||
"En caso de que funcione la página web puede que no seas el primero"
|
||||
" en haberlo visto y que el canal este arreglado. "
|
||||
"Puedes mirar en 'alfa-addon.com' o en el "
|
||||
"repositorio de GitHub (github.com/alfa-addon/addon). "
|
||||
"Si no encuentras el canal arreglado puedes reportar un "
|
||||
"problema en el foro.")
|
||||
|
||||
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
|
||||
|
||||
elif item.extra == "prob_bib":
|
||||
platformtools.dialog_ok("Alfa",
|
||||
"Puede ser que hayas actualizado el plugin recientemente "
|
||||
"y que las actualizaciones no se hayan aplicado del todo "
|
||||
"bien. Puedes probar en 'Configuración'>'Otras herramientas', "
|
||||
"comprobando los archivos *_data.json o "
|
||||
"volviendo a añadir toda la videoteca.")
|
||||
|
||||
respuesta = platformtools.dialog_yesno("Alfa",
|
||||
"¿Deseas acceder ahora a esa seccion?")
|
||||
if respuesta == 1:
|
||||
itemlist = []
|
||||
from channels import setting
|
||||
new_item = Item(channel="setting", action="submenu_tools", folder=True)
|
||||
itemlist.extend(setting.submenu_tools(new_item))
|
||||
return itemlist
|
||||
|
||||
elif item.extra == "prob_torrent":
|
||||
title = "Alfa - FAQ - %s" % item.title[6:]
|
||||
text = ("Puedes probar descargando el modulo 'libtorrent' de Kodi o "
|
||||
"instalando algun addon como 'Quasar' o 'Torrenter', "
|
||||
"los cuales apareceran entre las opciones de la ventana emergente "
|
||||
"que aparece al pulsar sobre un enlace torrent. "
|
||||
"'Torrenter' es más complejo pero también más completo "
|
||||
"y siempre funciona.")
|
||||
|
||||
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
|
||||
|
||||
elif item.extra == "buscador_juntos":
|
||||
respuesta = platformtools.dialog_yesno("Alfa",
|
||||
"Si. La opcion de mostrar los resultados juntos "
|
||||
"o divididos por canales se encuentra en "
|
||||
"'setting'>'Ajustes del buscador global'>"
|
||||
"'Otros ajustes'.",
|
||||
"¿Deseas acceder a ahora dichos ajustes?")
|
||||
if respuesta == 1:
|
||||
from channels import search
|
||||
search.settings("")
|
||||
|
||||
elif item.extra == "report_error":
|
||||
if config.get_platform(True)['num_version'] < 14:
|
||||
log_name = "xbmc.log"
|
||||
else:
|
||||
log_name = "kodi.log"
|
||||
ruta = xbmc.translatePath("special://logpath") + log_name
|
||||
title = "Alfa - FAQ - %s" % item.title[6:]
|
||||
text = ("Para reportar un problema en 'http://alfa-addon.com' es necesario:\n"
|
||||
" - Versión que usas de Alfa.\n"
|
||||
" - Versión que usas de kodi, mediaserver, etc.\n"
|
||||
" - Versión y nombre del sistema operativo que usas.\n"
|
||||
" - Nombre del skin (en el caso que uses Kodi) y si se "
|
||||
"te ha resuelto el problema al usar el skin por defecto.\n"
|
||||
" - Descripción del problema y algún caso de prueba.\n"
|
||||
" - Agregar el log en modo detallado, una vez hecho esto, "
|
||||
"zipea el log y lo puedes adjuntar en un post.\n\n"
|
||||
"Para activar el log en modo detallado, ingresar a:\n"
|
||||
" - Configuración.\n"
|
||||
" - Preferencias.\n"
|
||||
" - En la pestaña General - Marcar la opción: Generar log detallado.\n\n"
|
||||
"El archivo de log detallado se encuentra en la siguiente ruta: \n\n"
|
||||
"%s" % ruta)
|
||||
|
||||
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
|
||||
|
||||
else:
|
||||
platformtools.dialog_ok("Alfa",
|
||||
"Entérate de novedades, consejos u opciones que desconoces en Telegram: @alfa_addon.\n"
|
||||
"Si tienes problemas o dudas, puedes acudir al Foro: http://alfa-addon.com")
|
||||
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "https://s11.postimg.org/cmuwcvvpf/hentaienespanol.png",
|
||||
"banner": "https://s3.postimg.org/j3qkfut8z/hentaienespanol_banner.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "15/03/2017",
|
||||
"description": "limpieza código"
|
||||
},
|
||||
{
|
||||
"date": "01/12/2016",
|
||||
"description": "Release."
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"adult"
|
||||
],
|
||||
|
||||
@@ -6,9 +6,6 @@
|
||||
"language": ["*"],
|
||||
"thumbnail": "https://dl.dropboxusercontent.com/u/30248079/hentai_id.png",
|
||||
"banner": "https://dl.dropboxusercontent.com/u/30248079/hentai_id2.png",
|
||||
"version": 1,
|
||||
"date": "09/03/2017",
|
||||
"changes": "Fix web",
|
||||
"categories": [
|
||||
"adult"
|
||||
]
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
"language": ["cast", "lat"],
|
||||
"thumbnail": "https://s27.postimg.org/pjq3y552b/idocumentales.png",
|
||||
"banner": "https://s16.postimg.org/6d8bh1z1x/idocumentales_banner.png",
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "25/05/2017",
|
||||
"description": "cambios esteticos"
|
||||
},
|
||||
{
|
||||
"date": "18/06/2016",
|
||||
"description": "First release"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"documentary"
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,21 +4,6 @@
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["cast", "lat"],
|
||||
"changes": [
|
||||
{
|
||||
"date": "12/03/2017",
|
||||
"description": "Reparados enlaces directos"
|
||||
},
|
||||
{
|
||||
"date": "27/02/2017",
|
||||
"description": "Añadidos enlaces directos y adaptado al uso de httptools"
|
||||
},
|
||||
{
|
||||
"date": "16/01/2016",
|
||||
"description": "Corregido por cambios en el enmascaramiento de enlaces"
|
||||
}
|
||||
],
|
||||
"version": 1,
|
||||
"thumbnail": "http://i.imgur.com/I7MxHZI.png",
|
||||
"banner": "inkapelis.png",
|
||||
"categories": [
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"language": ["*"],
|
||||
"active": true,
|
||||
"adult": true,
|
||||
"version": 1,
|
||||
"changes": [
|
||||
{
|
||||
"date": "29/04/2017",
|
||||
"description": "Primera versión"
|
||||
}
|
||||
],
|
||||
"thumbnail": "http://i.imgur.com/OTYwbAa.png?1",
|
||||
"categories": [
|
||||
"adult"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user