Compare commits
409 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78b4a8d768 | ||
|
|
537c640771 | ||
|
|
d76430c6d7 | ||
|
|
b97f01d4d4 | ||
|
|
9059a6d14f | ||
|
|
b8f66623da | ||
|
|
1a1c8f2547 | ||
|
|
0fc75a5305 | ||
|
|
f4238302a5 | ||
|
|
ba2a6c682e | ||
|
|
02abbfcc64 | ||
|
|
4a0f1b5c41 | ||
|
|
738fb50ce9 | ||
|
|
64396b3a4f | ||
|
|
9e1c190c0b | ||
|
|
7b8c1c6eb7 | ||
|
|
9a5b8cb4e7 | ||
|
|
2793ea9952 | ||
|
|
3067d137cb | ||
|
|
825d9f2198 | ||
|
|
b41c2c08fc | ||
|
|
1f4825dd05 | ||
|
|
4f760040bc | ||
|
|
5391152408 | ||
|
|
815857404d | ||
|
|
239a73219e | ||
|
|
b7787e0ee5 | ||
|
|
14fce6ebac | ||
|
|
16a530a9d4 | ||
|
|
f4bc398f9e | ||
|
|
841f5e5f3d | ||
|
|
ee80f9c4d2 | ||
|
|
50c42fbc4b | ||
|
|
76170820bb | ||
|
|
b5083d16b5 | ||
|
|
6927f1f955 | ||
|
|
a3b70aba22 | ||
|
|
1fb8db8496 | ||
|
|
201e7f1e2e | ||
|
|
245190ca70 | ||
|
|
23ebf3d19b | ||
|
|
5c699ed892 | ||
|
|
2da412890e | ||
|
|
b47db3ae04 | ||
|
|
660a05f39d | ||
|
|
1f1b860715 | ||
|
|
bc318f7a18 | ||
|
|
87e8ee4d46 | ||
|
|
de5eda5477 | ||
|
|
0738a82372 | ||
|
|
c3ca5b472f | ||
|
|
4008c63e12 | ||
|
|
f5a5328620 | ||
|
|
48d7f754be | ||
|
|
f1ffdf425e | ||
|
|
fac578f631 | ||
|
|
f7df5e9494 | ||
|
|
aeea88395a | ||
|
|
8cc0ac4083 | ||
|
|
ba2e824ec6 | ||
|
|
3aabe7eb75 | ||
|
|
b3c345fd11 | ||
|
|
9ddc0c7eec | ||
|
|
6a25a4add4 | ||
|
|
b339965287 | ||
|
|
800d6ae02e | ||
|
|
f441d34222 | ||
|
|
57001ef13e | ||
|
|
19df05e956 | ||
|
|
9f20d50a79 | ||
|
|
d8052c4bab | ||
|
|
4aca9a2306 | ||
|
|
5729e04cb5 | ||
|
|
eb27cd53bc | ||
|
|
afaf2fd4b4 | ||
|
|
e264614a2e | ||
|
|
de439ff8ea | ||
|
|
37df471d60 | ||
|
|
98b61f1b50 | ||
|
|
65648bca9b | ||
|
|
e7fd77bcee | ||
|
|
27f93b9d98 | ||
|
|
a77a009c3a | ||
|
|
94d4244cd1 | ||
|
|
c2b9f1f009 | ||
|
|
7c887bf546 | ||
|
|
05535344c2 | ||
|
|
0caea46619 | ||
|
|
c49439bdc7 | ||
|
|
b5f1e7180c | ||
|
|
29324c4302 | ||
|
|
b88ef13772 | ||
|
|
b7b0c02589 | ||
|
|
f0e07b7b28 | ||
|
|
735b4a6584 | ||
|
|
120e77b44b | ||
|
|
ac27cd2f00 | ||
|
|
002e62aa19 | ||
|
|
4b9bbd0540 | ||
|
|
b474db07e3 | ||
|
|
9a6e070799 | ||
|
|
e0997a387b | ||
|
|
02797b5571 | ||
|
|
de8f6af086 | ||
|
|
98c06a1140 | ||
|
|
2e9573b6e9 | ||
|
|
fd5b972281 | ||
|
|
30e32ac133 | ||
|
|
1a7d23d7dc | ||
|
|
34f4e474fd | ||
|
|
c546976329 | ||
|
|
fe4c2685d7 | ||
|
|
1b7e71e3bf | ||
|
|
0ab5deba05 | ||
|
|
dd4bcb8ef4 | ||
|
|
796bf25e6f | ||
|
|
f136e6e2aa | ||
|
|
bad4e91aee | ||
|
|
48d76ad6d4 | ||
|
|
4d248cab54 | ||
|
|
df3022353c | ||
|
|
48a8f2fa1a | ||
|
|
5304271782 | ||
|
|
3701aba7fa | ||
|
|
ef962d7ed2 | ||
|
|
9d03b4de54 | ||
|
|
6bbf26a9a9 | ||
|
|
392435e6fb | ||
|
|
8b445165df | ||
|
|
ba28a426e6 | ||
|
|
aa5fa6d275 | ||
|
|
6d8de2efec | ||
|
|
0c65e2d20c | ||
|
|
2a5c27355b | ||
|
|
cad93526ce | ||
|
|
4cfe60c2a8 | ||
|
|
10a7535242 | ||
|
|
489cd02192 | ||
|
|
089098c58f | ||
|
|
57e5d32567 | ||
|
|
9adcafc343 | ||
|
|
cf068bc13f | ||
|
|
7579428087 | ||
|
|
5ca2ed6212 | ||
|
|
11494549b9 | ||
|
|
77423ec5a8 | ||
|
|
be2c691909 | ||
|
|
8fb445edaf | ||
|
|
fada17bb78 | ||
|
|
5c90256a3d | ||
|
|
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 | ||
|
|
3f1baae10c | ||
|
|
a91643694b | ||
|
|
3bd8507889 | ||
|
|
f97a283175 | ||
|
|
3b02b62a29 | ||
|
|
25f8a9dc4b | ||
|
|
860bd0f834 | ||
|
|
6bede726f8 | ||
|
|
f045d2ee7c | ||
|
|
51c4d7d746 | ||
|
|
f340cbce3a | ||
|
|
16bcfdcb15 | ||
|
|
11ef80c3e0 | ||
|
|
4d2562eaac | ||
|
|
5a1a1a97f1 | ||
|
|
035f27f887 | ||
|
|
f1db1236f1 | ||
|
|
790420df0d | ||
|
|
6999f615c8 | ||
|
|
78a6eecf2e | ||
|
|
c9a96831d8 | ||
|
|
e6cfcd3151 | ||
|
|
4fda116759 | ||
|
|
3c2902d5ea | ||
|
|
b9bd644e0a | ||
|
|
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 | ||
|
|
3032770580 | ||
|
|
742ff3feff | ||
|
|
df0607ec90 | ||
|
|
d83a49743c | ||
|
|
66762b2c46 | ||
|
|
79c761206d | ||
|
|
f04647f348 | ||
|
|
0f81113225 | ||
|
|
169c09db16 | ||
|
|
306bb6533d | ||
|
|
210e90cb96 | ||
|
|
74e53f362b | ||
|
|
947cb7f51f | ||
|
|
f88ca81ff5 | ||
|
|
42cd9ac14b | ||
|
|
b7520145bb | ||
|
|
209af696b2 | ||
|
|
3965fdd1c6 | ||
|
|
03589b9c39 | ||
|
|
a3337df4da | ||
|
|
acf7f9a27a | ||
|
|
8082e1b244 | ||
|
|
689e2cc534 | ||
|
|
d37f911d3f | ||
|
|
9345115869 | ||
|
|
7ae8b203b6 | ||
|
|
56c16f2922 | ||
|
|
7e47e3ae59 | ||
|
|
9eef89d1b0 | ||
|
|
2b3d81c9a0 | ||
|
|
876b02b81f | ||
|
|
8028290051 | ||
|
|
78252d3452 | ||
|
|
9aa77400d5 | ||
|
|
c7850cef56 | ||
|
|
783b8a11c1 | ||
|
|
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.
|
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 Controller
|
||||||
from controller import Platformtools
|
from controller import Platformtools
|
||||||
from platformcode import config
|
from platformcode import config
|
||||||
from core import versiontools
|
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from core.tmdb import Tmdb
|
from core.tmdb import Tmdb
|
||||||
from platformcode import launcher, logger
|
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):
|
class html(Controller):
|
||||||
pattern = re.compile("##")
|
pattern = re.compile("##")
|
||||||
@@ -29,8 +35,8 @@ class html(Controller):
|
|||||||
if self.handler:
|
if self.handler:
|
||||||
self.client_ip = handler.client.getpeername()[0]
|
self.client_ip = handler.client.getpeername()[0]
|
||||||
self.send_message({"action": "connect",
|
self.send_message({"action": "connect",
|
||||||
"data": {"version": "Alfa %s" % versiontools.get_current_plugin_version_tag(),
|
"data": {"version": "Alfa %s" % version,
|
||||||
"date": versiontools.get_current_plugin_date()}})
|
"date": "--/--/----"}})
|
||||||
t = threading.Thread(target=launcher.start, name=ID)
|
t = threading.Thread(target=launcher.start, name=ID)
|
||||||
t.setDaemon(True)
|
t.setDaemon(True)
|
||||||
t.start()
|
t.start()
|
||||||
|
|||||||
@@ -87,33 +87,16 @@ def run(item):
|
|||||||
if item.action == "mainlist":
|
if item.action == "mainlist":
|
||||||
itemlist = channelselector.getmainlist("banner_")
|
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":
|
if item.action == "getchanneltypes":
|
||||||
itemlist = channelselector.getchanneltypes("banner_")
|
itemlist = channelselector.getchanneltypes("banner_")
|
||||||
if item.action == "filterchannels":
|
if item.action == "filterchannels":
|
||||||
itemlist = channelselector.filterchannels(item.channel_type, "banner_")
|
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:
|
# Todas las demas las intenta ejecturaren el siguiente orden:
|
||||||
# 1. En el canal
|
# 1. En el canal
|
||||||
# 2. En el launcher
|
# 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_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 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>
|
</category>
|
||||||
|
|
||||||
<!-- Path downloads and subtitles -->
|
<!-- Path downloads -->
|
||||||
<category label="30501">
|
<category label="30501">
|
||||||
<setting type="sep"/>
|
<setting type="sep"/>
|
||||||
<setting id="downloadpath" type="text" label="30017" default=""/>
|
<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_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"/>
|
<setting id="folder_movies" type="text" label="Nombre de carpeta para 'Peliculas'" default="CINE"/>
|
||||||
</category>
|
</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>
|
</settings>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?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.9" provider-name="Alfa Addon">
|
||||||
<requires>
|
<requires>
|
||||||
<import addon="xbmc.python" version="2.1.0"/>
|
<import addon="xbmc.python" version="2.1.0"/>
|
||||||
<import addon="script.module.libtorrent" optional="true"/>
|
<import addon="script.module.libtorrent" optional="true"/>
|
||||||
@@ -19,15 +19,12 @@
|
|||||||
</assets>
|
</assets>
|
||||||
<news>[B]Estos son los cambios para esta versión:[/B]
|
<news>[B]Estos son los cambios para esta versión:[/B]
|
||||||
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
|
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
|
||||||
» cartoonlatino » serieslan
|
» pelisfox » pelisgratis
|
||||||
» pelisplus » pedropolis
|
» gamovideo » doomtv
|
||||||
» flashx » cinetux
|
» usercloud » ciberpeliculashd
|
||||||
» animeflv_ru » streamixcloud
|
» pordede ¤ arreglos internos
|
||||||
» estrenosgo » animemovil
|
[COLOR green]Gracias a [B][COLOR yellow]f_y_m[/COLOR][/B] por su colaboración en esta versión[/COLOR]
|
||||||
» allpeliculas » pelismundo
|
</news>
|
||||||
¤ arreglos internos
|
|
||||||
[COLOR green]Gracias a [COLOR yellow]Danielr460[/COLOR] por su colaboración en esta versión[/COLOR]
|
|
||||||
</news>
|
|
||||||
<description lang="es">Navega con Kodi por páginas web para ver sus videos de manera fácil.</description>
|
<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>
|
<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>
|
<description lang="en">Browse web pages using Kodi, you can easily watch their video content.</description>
|
||||||
|
|||||||
@@ -6,13 +6,6 @@
|
|||||||
"language": ["lat"],
|
"language": ["lat"],
|
||||||
"thumbnail": "https://s22.postimg.org/irnlwuizh/allcalidad1.png",
|
"thumbnail": "https://s22.postimg.org/irnlwuizh/allcalidad1.png",
|
||||||
"banner": "https://s22.postimg.org/9y1athlep/allcalidad2.png",
|
"banner": "https://s22.postimg.org/9y1athlep/allcalidad2.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "14/07/2017",
|
|
||||||
"description": "Primera version"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"direct"
|
"direct"
|
||||||
@@ -26,6 +19,14 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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",
|
"id": "include_in_global_search",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ def newest(categoria):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
item = Item()
|
item = Item()
|
||||||
try:
|
try:
|
||||||
if categoria == 'peliculas':
|
if categoria in ['peliculas','latino']:
|
||||||
item.url = host
|
item.url = host
|
||||||
elif categoria == 'infantiles':
|
elif categoria == 'infantiles':
|
||||||
item.url = host + 'category/animacion/'
|
item.url = host + 'category/animacion/'
|
||||||
|
|||||||
@@ -4,29 +4,6 @@
|
|||||||
"language": ["lat"],
|
"language": ["lat"],
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"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",
|
"thumbnail": "http://i.imgur.com/aWCDWtn.png",
|
||||||
"banner": "allpeliculas.png",
|
"banner": "allpeliculas.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
@@ -43,6 +20,14 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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",
|
"id": "include_in_newest_peliculas",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import urlparse
|
|
||||||
|
|
||||||
from core import httptools
|
from core import httptools
|
||||||
from core import jsontools
|
from core import jsontools
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
@@ -59,6 +57,7 @@ def colecciones(item):
|
|||||||
title = scrapedtitle.capitalize() + " (" + scrapedcantidad + ")"
|
title = scrapedtitle.capitalize() + " (" + scrapedcantidad + ")"
|
||||||
itemlist.append(Item(channel = item.channel,
|
itemlist.append(Item(channel = item.channel,
|
||||||
action = "listado_colecciones",
|
action = "listado_colecciones",
|
||||||
|
page = 1,
|
||||||
thumbnail = host + scrapedthumbnail,
|
thumbnail = host + scrapedthumbnail,
|
||||||
title = title,
|
title = title,
|
||||||
url = host + scrapedurl
|
url = host + scrapedurl
|
||||||
@@ -71,7 +70,7 @@ def listado_colecciones(item):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
data_url = scrapertools.find_single_match(data, "data_url: '([^']+)")
|
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
|
data = httptools.downloadpage(host + data_url, post=post).data
|
||||||
patron = 'a href="(/peli[^"]+).*?'
|
patron = 'a href="(/peli[^"]+).*?'
|
||||||
patron += 'src="([^"]+).*?'
|
patron += 'src="([^"]+).*?'
|
||||||
@@ -88,6 +87,16 @@ def listado_colecciones(item):
|
|||||||
url = host + scrapedurl
|
url = host + scrapedurl
|
||||||
))
|
))
|
||||||
tmdb.set_infoLabels(itemlist)
|
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
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -159,6 +168,7 @@ def lista(item):
|
|||||||
params = jsontools.dump(dict_param)
|
params = jsontools.dump(dict_param)
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, post=params).data
|
data = httptools.downloadpage(item.url, post=params).data
|
||||||
|
data = data.replace("<mark>","").replace("<\/mark>","")
|
||||||
dict_data = jsontools.load(data)
|
dict_data = jsontools.load(data)
|
||||||
|
|
||||||
for it in dict_data["items"]:
|
for it in dict_data["items"]:
|
||||||
@@ -167,7 +177,7 @@ def lista(item):
|
|||||||
rating = it["imdb"]
|
rating = it["imdb"]
|
||||||
year = it["year"]
|
year = it["year"]
|
||||||
url = host + "pelicula/" + it["slug"]
|
url = host + "pelicula/" + it["slug"]
|
||||||
thumb = urlparse.urljoin(host, it["image"])
|
thumb = host + it["image"]
|
||||||
item.infoLabels['year'] = year
|
item.infoLabels['year'] = year
|
||||||
itemlist.append(item.clone(action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumb,
|
itemlist.append(item.clone(action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumb,
|
||||||
plot=plot, context=["buscar_trailer"], contentTitle=title, contentType="movie"))
|
plot=plot, context=["buscar_trailer"], contentTitle=title, contentType="movie"))
|
||||||
@@ -207,7 +217,7 @@ def newest(categoria):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
item = Item()
|
item = Item()
|
||||||
try:
|
try:
|
||||||
if categoria == "peliculas":
|
if categoria in ['peliculas','latino']:
|
||||||
item.url = host + "movies/newmovies?page=1"
|
item.url = host + "movies/newmovies?page=1"
|
||||||
item.action = "lista"
|
item.action = "lista"
|
||||||
itemlist = lista(item)
|
itemlist = lista(item)
|
||||||
|
|||||||
@@ -5,13 +5,6 @@
|
|||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "http://imgur.com/sLaXHvp.png",
|
"thumbnail": "http://imgur.com/sLaXHvp.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "26/04/2017",
|
|
||||||
"description": "Release"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"torrent",
|
"torrent",
|
||||||
"movie"
|
"movie"
|
||||||
@@ -32,6 +25,14 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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_key = "2e2160006592024ba87ccdf78c28f49f"
|
||||||
api_fankey = "dffe90fba4d02c199ae7a9e71330c987"
|
api_fankey = "dffe90fba4d02c199ae7a9e71330c987"
|
||||||
|
|
||||||
|
host = 'http://alltorrent.net/'
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
@@ -392,3 +393,26 @@ def get_art(item):
|
|||||||
item.extra = item.extra + "|" + item.thumbnail
|
item.extra = item.extra + "|" + item.thumbnail
|
||||||
else:
|
else:
|
||||||
item.extra = item.extra + "|" + item.thumbnail
|
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"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "animeflv.png",
|
"thumbnail": "animeflv.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "http://i.imgur.com/x9AdvBx.png",
|
"thumbnail": "http://i.imgur.com/x9AdvBx.png",
|
||||||
"banner": "http://i.imgur.com/dTZwCPq.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": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ from core import scrapertools
|
|||||||
from core import servertools
|
from core import servertools
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
from channels import autoplay
|
||||||
|
|
||||||
|
list_servers = ['openload',
|
||||||
|
'directo'
|
||||||
|
]
|
||||||
|
list_quality = ['default']
|
||||||
|
|
||||||
CHANNEL_HOST = "http://animeflv.co"
|
CHANNEL_HOST = "http://animeflv.co"
|
||||||
CHANNEL_DEFAULT_HEADERS = [
|
CHANNEL_DEFAULT_HEADERS = [
|
||||||
@@ -118,6 +124,7 @@ def __find_series(html):
|
|||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
|
autoplay.init(item.channel, list_servers, list_quality)
|
||||||
itemlist = list()
|
itemlist = list()
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="letras",
|
itemlist.append(Item(channel=item.channel, action="letras",
|
||||||
@@ -134,6 +141,7 @@ def mainlist(item):
|
|||||||
url=CHANNEL_HOST + "/Buscar?s="))
|
url=CHANNEL_HOST + "/Buscar?s="))
|
||||||
|
|
||||||
itemlist = renumbertools.show_option(item.channel, itemlist)
|
itemlist = renumbertools.show_option(item.channel, itemlist)
|
||||||
|
autoplay.show_option(item.channel, itemlist)
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -179,10 +187,13 @@ def search(item, texto):
|
|||||||
show_list = __find_series(html)
|
show_list = __find_series(html)
|
||||||
|
|
||||||
items = []
|
items = []
|
||||||
|
context = renumbertools.context(item)
|
||||||
|
context2 = autoplay.context
|
||||||
|
context.extend(context2)
|
||||||
for show in show_list:
|
for show in show_list:
|
||||||
title, url, thumbnail, plot = show
|
title, url, thumbnail, plot = show
|
||||||
items.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail,
|
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:
|
except:
|
||||||
import sys
|
import sys
|
||||||
for line in sys.exc_info():
|
for line in sys.exc_info():
|
||||||
@@ -197,10 +208,13 @@ def series(item):
|
|||||||
page_html = get_url_contents(item.url)
|
page_html = get_url_contents(item.url)
|
||||||
show_list = __find_series(page_html)
|
show_list = __find_series(page_html)
|
||||||
items = []
|
items = []
|
||||||
|
context = renumbertools.context(item)
|
||||||
|
context2 = autoplay.context
|
||||||
|
context.extend(context2)
|
||||||
for show in show_list:
|
for show in show_list:
|
||||||
title, url, thumbnail, plot = show
|
title, url, thumbnail, plot = show
|
||||||
items.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail,
|
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)
|
url_next_page = scrapertools.find_single_match(page_html, REGEX_NEXT_PAGE)
|
||||||
if url_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),
|
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,
|
title="Ver en calidad [%s]" % (qualities[quality_id]), plot=item.plot,
|
||||||
fulltitle=item.title))
|
fulltitle=item.title))
|
||||||
|
autoplay.start(__sort_by_quality(itemlist), item)
|
||||||
return __sort_by_quality(itemlist)
|
return __sort_by_quality(itemlist)
|
||||||
|
|||||||
@@ -6,22 +6,9 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "http://i.imgur.com/5nRR9qq.png",
|
"thumbnail": "http://i.imgur.com/5nRR9qq.png",
|
||||||
"banner": "animeflv_ru.png",
|
"banner": "animeflv_ru.png",
|
||||||
"version": 1,
|
|
||||||
"compatible": {
|
"compatible": {
|
||||||
"python": "2.7.9"
|
"python": "2.7.9"
|
||||||
},
|
},
|
||||||
"changes": {
|
|
||||||
"change": [
|
|
||||||
{
|
|
||||||
"date": "06/04/2017",
|
|
||||||
"description": "fix"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"date": "01/03/2017",
|
|
||||||
"description": "fix nueva web"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "animeid.png",
|
"thumbnail": "animeid.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -134,8 +134,7 @@ def novedades_episodios(item):
|
|||||||
contentTitle = scrapedtitle.replace('#' + episodio, '')
|
contentTitle = scrapedtitle.replace('#' + episodio, '')
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=scrapedtitle, url=scrapedurl,
|
itemlist.append(Item(channel=item.channel, action="findvideos", title=scrapedtitle, url=scrapedurl,
|
||||||
thumbnail=scrapedthumbnail, plot=scrapedplot,
|
thumbnail=scrapedthumbnail, plot=scrapedplot, contentSeason=1, contentTitle=contentTitle))
|
||||||
hasContentDetails=True, contentSeason=1, contentTitle=contentTitle))
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|||||||
@@ -3,16 +3,9 @@
|
|||||||
"name": "Animemovil",
|
"name": "Animemovil",
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["*"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "https://s1.postimg.org/92ji7stii7/animemovil1.png",
|
"thumbnail": "https://s1.postimg.org/92ji7stii7/animemovil1.png",
|
||||||
"banner": "",
|
"banner": "",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "24/10/2017",
|
|
||||||
"description": "Primera version"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ def recientes(item):
|
|||||||
tipo = "tvshow"
|
tipo = "tvshow"
|
||||||
show = contentTitle
|
show = contentTitle
|
||||||
action = "episodios"
|
action = "episodios"
|
||||||
context = renumbertools.context
|
context = renumbertools.context(item)
|
||||||
if item.extra == "recientes":
|
if item.extra == "recientes":
|
||||||
action = "findvideos"
|
action = "findvideos"
|
||||||
context = ""
|
context = ""
|
||||||
@@ -96,7 +96,6 @@ def recientes(item):
|
|||||||
action = "peliculas"
|
action = "peliculas"
|
||||||
if not thumb.startswith("http"):
|
if not thumb.startswith("http"):
|
||||||
thumb = "http:%s" % thumb
|
thumb = "http:%s" % thumb
|
||||||
|
|
||||||
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
||||||
itemlist.append(item.clone(action=action, title=title, url=url, thumbnail=thumb, text_color=color3,
|
itemlist.append(item.clone(action=action, title=title, url=url, thumbnail=thumb, text_color=color3,
|
||||||
contentTitle=contentTitle, contentSerieName=show, infoLabels=infoLabels,
|
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,
|
itemlist.append(item.clone(action=action, title=scrapedtitle, url=url, thumbnail=thumb, text_color=color3,
|
||||||
contentTitle=title, contentSerieName=show, infoLabels=infoLabels,
|
contentTitle=title, contentSerieName=show, infoLabels=infoLabels,
|
||||||
context=renumbertools.context, contentType=tipo))
|
context=renumbertools.context(item), contentType=tipo))
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -205,7 +204,7 @@ def completo(item):
|
|||||||
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
||||||
itemlist.append(Item(channel=item.channel, action=action, title=scrapedtitle, url=url, thumbnail=thumb,
|
itemlist.append(Item(channel=item.channel, action=action, title=scrapedtitle, url=url, thumbnail=thumb,
|
||||||
text_color=color3, contentTitle=title, contentSerieName=show, extra="completo",
|
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
|
return itemlist
|
||||||
|
|
||||||
@@ -227,7 +226,7 @@ def episodios(item):
|
|||||||
for url, title in matches:
|
for url, title in matches:
|
||||||
url = host + url
|
url = host + url
|
||||||
epi = scrapertools.find_single_match(title, '(?i)%s.*? (\d+) (?:Sub|Audio|Español)' % item.contentSerieName)
|
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:
|
if epi:
|
||||||
season, episode = renumbertools.numbered_for_tratk(
|
season, episode = renumbertools.numbered_for_tratk(
|
||||||
item.channel, show, 1, int(epi))
|
item.channel, show, 1, int(epi))
|
||||||
@@ -301,7 +300,7 @@ def emision(item):
|
|||||||
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
infoLabels = {'filtro': {"original_language": "ja"}.items()}
|
||||||
itemlist.append(item.clone(action="episodios", title=scrapedtitle, url=url, thumbnail=thumb, text_color=color3,
|
itemlist.append(item.clone(action="episodios", title=scrapedtitle, url=url, thumbnail=thumb, text_color=color3,
|
||||||
contentTitle=title, contentSerieName=title, extra="recientes",
|
contentTitle=title, contentSerieName=title, extra="recientes",
|
||||||
context=renumbertools.context, infoLabels=infoLabels))
|
context=renumbertools.context(item), infoLabels=infoLabels))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "https://s21.postimg.org/b43i3ljav/animeshd.png",
|
"thumbnail": "https://s21.postimg.org/b43i3ljav/animeshd.png",
|
||||||
"banner": "https://s4.postimg.org/lulxulmql/animeshd-banner.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": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -5,13 +5,6 @@
|
|||||||
"adult": false,
|
"adult": false,
|
||||||
"language": "es",
|
"language": "es",
|
||||||
"thumbnail": "http://i.imgur.com/dHpupFk.png",
|
"thumbnail": "http://i.imgur.com/dHpupFk.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "17/05/2017",
|
|
||||||
"description": "Fix novedades y replace en findvideos"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"anime"
|
"anime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "http://i.imgur.com/9Zu5NBc.png",
|
"thumbnail": "http://i.imgur.com/9Zu5NBc.png",
|
||||||
"banner": "http://i.imgur.com/JQSXCaB.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": [
|
"categories": [
|
||||||
"tvshow",
|
"tvshow",
|
||||||
"anime"
|
"anime"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@@ -127,11 +127,21 @@ def episodios(item):
|
|||||||
plot=scrapedplot, url=url, show=show))
|
plot=scrapedplot, url=url, show=show))
|
||||||
|
|
||||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
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))
|
action="add_serie_to_library", extra="episodios", show=show))
|
||||||
|
|
||||||
return itemlist
|
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):
|
def findvideos(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
@@ -147,36 +157,23 @@ def findvideos(item):
|
|||||||
scrapedthumbnail = scrapertools.find_single_match(data, '<div class="caracteristicas"><img src="([^<]+)">')
|
scrapedthumbnail = scrapertools.find_single_match(data, '<div class="caracteristicas"><img src="([^<]+)">')
|
||||||
itemla = scrapertools.find_multiple_matches(data_vid, '<div class="serv">.+?-(.+?)-(.+?)<\/div><.+? src="(.+?)"')
|
itemla = scrapertools.find_multiple_matches(data_vid, '<div class="serv">.+?-(.+?)-(.+?)<\/div><.+? src="(.+?)"')
|
||||||
for server, quality, url in itemla:
|
for server, quality, url in itemla:
|
||||||
|
if "HQ" in quality:
|
||||||
|
quality = "HD"
|
||||||
if "Calidad Alta" in quality:
|
if "Calidad Alta" in quality:
|
||||||
quality = quality.replace("Calidad Alta", "HQ")
|
quality = "HQ"
|
||||||
server = server.lower().strip()
|
if " Calidad media - Carga mas rapido" in quality:
|
||||||
if "ok" == server:
|
quality = "360p"
|
||||||
server = 'okru'
|
server = server.lower().strip()
|
||||||
if "netu" == server:
|
if "ok" in server:
|
||||||
continue
|
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,
|
itemlist.append(item.clone(url=url, action="play", server=server, contentQuality=quality,
|
||||||
thumbnail=scrapedthumbnail, plot=scrapedplot,
|
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)
|
autoplay.start(itemlist, item)
|
||||||
return itemlist
|
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"],
|
"language": ["cast", "lat"],
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"active": true,
|
"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",
|
"banner": "areadocumental.png",
|
||||||
"thumbnail": "areadocumental.png",
|
"thumbnail": "areadocumental.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
|
|||||||
@@ -1,20 +1,13 @@
|
|||||||
{
|
{
|
||||||
"id": "asialiveaction",
|
"id": "asialiveaction",
|
||||||
"name": "Asialiveaction.",
|
"name": "Asialiveaction",
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "asialiveaction.png",
|
"thumbnail": "asialiveaction.png",
|
||||||
"banner": "https://imgur.com/B1IOAu4.png",
|
"banner": "https://imgur.com/B1IOAu4.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "08/10/2017",
|
|
||||||
"description": "Primera versión del canal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"serie"
|
"tvshow"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ def findvideos(item):
|
|||||||
show = item.show
|
show = item.show
|
||||||
for videoitem in itemlist:
|
for videoitem in itemlist:
|
||||||
videoitem.channel = item.channel
|
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(
|
itemlist.append(
|
||||||
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
|
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))
|
action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ from core import jsontools
|
|||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
from platformcode import platformtools
|
from platformcode import platformtools
|
||||||
|
from platformcode import launcher
|
||||||
|
|
||||||
__channel__ = "autoplay"
|
__channel__ = "autoplay"
|
||||||
|
|
||||||
@@ -78,7 +79,19 @@ def start(itemlist, item):
|
|||||||
:return: intenta autoreproducir, en caso de fallar devuelve el itemlist que recibio en un principio
|
:return: intenta autoreproducir, en caso de fallar devuelve el itemlist que recibio en un principio
|
||||||
'''
|
'''
|
||||||
logger.info()
|
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.infoLabels=item.infoLabels
|
||||||
|
videoitem.thumbnail=item.thumbnail
|
||||||
|
#videoitem.title=item.title
|
||||||
if not config.is_xbmc():
|
if not config.is_xbmc():
|
||||||
#platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi')
|
#platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi')
|
||||||
return itemlist
|
return itemlist
|
||||||
@@ -261,8 +274,12 @@ def start(itemlist, item):
|
|||||||
else:
|
else:
|
||||||
videoitem = resolved_item[0]
|
videoitem = resolved_item[0]
|
||||||
|
|
||||||
# si no directamente reproduce
|
# si no directamente reproduce y marca como visto
|
||||||
platformtools.play_video(videoitem)
|
from platformcode import xbmc_videolibrary
|
||||||
|
xbmc_videolibrary.mark_auto_as_watched(item)
|
||||||
|
#platformtools.play_video(videoitem)
|
||||||
|
videoitem.contentChannel='videolibrary'
|
||||||
|
launcher.run(videoitem)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if platformtools.is_playing():
|
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",
|
"id": "bajui",
|
||||||
"name": "Bajui2",
|
"name": "Bajui",
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "bajui.png",
|
"thumbnail": "bajui.png",
|
||||||
"banner": "bajui.png",
|
"banner": "bajui.png",
|
||||||
"fanart": "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": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow",
|
"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 re
|
||||||
import urlparse
|
import urlparse
|
||||||
|
|
||||||
|
from core import httptools
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
from core import servertools
|
from core import servertools
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
@@ -13,7 +14,7 @@ def mainlist(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
itemlist.append(Item(channel=item.channel, title="Películas", action="menupeliculas",
|
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))
|
fanart=item.fanart))
|
||||||
itemlist.append(Item(channel=item.channel, title="Series", action="menuseries",
|
itemlist.append(Item(channel=item.channel, title="Series", action="menuseries",
|
||||||
fanart=item.fanart))
|
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",
|
Item(channel=item.channel, title="Películas - A-Z", action="peliculas", url=item.url + "/orden:nombre",
|
||||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
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 = httptools.downloadpage(item.url).data
|
||||||
data = scrapertools.cache_page(item.url)
|
|
||||||
data = scrapertools.get_match(data, '<ul class="submenu2 subcategorias">(.*?)</ul>')
|
data = scrapertools.get_match(data, '<ul class="submenu2 subcategorias">(.*?)</ul>')
|
||||||
patron = '<a href="([^"]+)">([^<]+)</a>'
|
patron = '<a href="([^"]+)">([^<]+)</a>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
@@ -51,13 +51,13 @@ def menuseries(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
itemlist.append(Item(channel=item.channel, title="Series - Novedades", action="peliculas",
|
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"))
|
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||||
itemlist.append(Item(channel=item.channel, title="Series - A-Z", action="peliculas",
|
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"))
|
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||||
itemlist.append(Item(channel=item.channel, title="Series - HD", action="peliculas",
|
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"))
|
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||||
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="",
|
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="",
|
||||||
fanart=item.fanart))
|
fanart=item.fanart))
|
||||||
@@ -68,17 +68,16 @@ def menudocumentales(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
itemlist.append(Item(channel=item.channel, title="Documentales - Novedades", action="peliculas",
|
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"))
|
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||||
itemlist.append(Item(channel=item.channel, title="Documentales - A-Z", action="peliculas",
|
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"))
|
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||||
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="",
|
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="",
|
||||||
fanart=item.fanart))
|
fanart=item.fanart))
|
||||||
return itemlist
|
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=""):
|
def search(item, texto, categoria=""):
|
||||||
logger.info(item.url + " search " + texto)
|
logger.info(item.url + " search " + texto)
|
||||||
itemlist = []
|
itemlist = []
|
||||||
@@ -86,7 +85,7 @@ def search(item, texto, categoria=""):
|
|||||||
texto = texto.replace(" ", "+")
|
texto = texto.replace(" ", "+")
|
||||||
logger.info("categoria: " + categoria + " url: " + url)
|
logger.info("categoria: " + categoria + " url: " + url)
|
||||||
try:
|
try:
|
||||||
item.url = "http://www.bajui2.com/descargas/busqueda/%s"
|
item.url = "http://www.bajui.org/descargas/busqueda/%s"
|
||||||
item.url = item.url % texto
|
item.url = item.url % texto
|
||||||
itemlist.extend(peliculas(item))
|
itemlist.extend(peliculas(item))
|
||||||
return itemlist
|
return itemlist
|
||||||
@@ -101,9 +100,7 @@ def search(item, texto, categoria=""):
|
|||||||
def peliculas(item, paginacion=True):
|
def peliculas(item, paginacion=True):
|
||||||
logger.info()
|
logger.info()
|
||||||
url = item.url
|
url = item.url
|
||||||
|
data = httptools.downloadpage(url).data
|
||||||
# Descarga la página
|
|
||||||
data = scrapertools.cache_page(url)
|
|
||||||
patron = '<li id="ficha-\d+" class="ficha2[^<]+'
|
patron = '<li id="ficha-\d+" class="ficha2[^<]+'
|
||||||
patron += '<div class="detalles-ficha"[^<]+'
|
patron += '<div class="detalles-ficha"[^<]+'
|
||||||
patron += '<span class="nombre-det">Ficha\: ([^<]+)</span>[^<]+'
|
patron += '<span class="nombre-det">Ficha\: ([^<]+)</span>[^<]+'
|
||||||
@@ -118,22 +115,17 @@ def peliculas(item, paginacion=True):
|
|||||||
scrapedtitle = title
|
scrapedtitle = title
|
||||||
scrapedplot = clean_plot(plot)
|
scrapedplot = clean_plot(plot)
|
||||||
scrapedurl = urlparse.urljoin(item.url, url)
|
scrapedurl = urlparse.urljoin(item.url, url)
|
||||||
scrapedthumbnail = urlparse.urljoin("http://www.bajui2.com/", thumbnail.replace("_m.jpg", "_g.jpg"))
|
scrapedthumbnail = urlparse.urljoin("http://bajui.org/", thumbnail.replace("_m.jpg", "_g.jpg"))
|
||||||
logger.debug("title=[" + scrapedtitle + "], url=[" + scrapedurl + "], thumbnail=[" + scrapedthumbnail + "]")
|
|
||||||
|
|
||||||
# Añade al listado de XBMC
|
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, action="enlaces", title=scrapedtitle, fulltitle=title, url=scrapedurl,
|
Item(channel=item.channel, action="enlaces", title=scrapedtitle, fulltitle=title, url=scrapedurl,
|
||||||
thumbnail=scrapedthumbnail, plot=scrapedplot, extra=scrapedtitle, context="4|5",
|
thumbnail=scrapedthumbnail, plot=scrapedplot, extra=scrapedtitle, context="4|5",
|
||||||
fanart=item.fanart, viewmode="movie_with_plot"))
|
fanart=item.fanart, viewmode="movie_with_plot"))
|
||||||
|
|
||||||
# Extrae el paginador
|
|
||||||
patron = '<a href="([^"]+)" class="pagina pag_sig">Siguiente \»\;</a>'
|
patron = '<a href="([^"]+)" class="pagina pag_sig">Siguiente \»\;</a>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matches)
|
scrapertools.printMatches(matches)
|
||||||
|
|
||||||
if len(matches) > 0:
|
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,
|
pagitem = Item(channel=item.channel, action="peliculas", title=">> Página siguiente", url=scrapedurl,
|
||||||
fanart=item.fanart, viewmode="movie_with_plot")
|
fanart=item.fanart, viewmode="movie_with_plot")
|
||||||
if not paginacion:
|
if not paginacion:
|
||||||
@@ -187,7 +179,7 @@ def enlaces(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url)
|
data = httptools.downloadpage(item.url).data
|
||||||
|
|
||||||
try:
|
try:
|
||||||
item.plot = scrapertools.get_match(data, '<span class="ficha-descrip">(.*?)</span>')
|
item.plot = scrapertools.get_match(data, '<span class="ficha-descrip">(.*?)</span>')
|
||||||
@@ -197,22 +189,10 @@ def enlaces(item):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
item.thumbnail = scrapertools.get_match(data, '<div class="ficha-imagen"[^<]+<img src="([^"]+)"')
|
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:
|
except:
|
||||||
pass
|
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="box-enlace-cabecera"[^<]+'
|
||||||
patron += '<div class="datos-usuario"><img class="avatar" src="([^"]+)" />Enlaces[^<]+'
|
patron += '<div class="datos-usuario"><img class="avatar" src="([^"]+)" />Enlaces[^<]+'
|
||||||
patron += '<a class="nombre-usuario" href="[^"]+">([^<]+)</a[^<]+</div>[^<]+'
|
patron += '<a class="nombre-usuario" href="[^"]+">([^<]+)</a[^<]+</div>[^<]+'
|
||||||
@@ -222,20 +202,16 @@ def enlaces(item):
|
|||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matches)
|
scrapertools.printMatches(matches)
|
||||||
logger.debug("matches=" + repr(matches))
|
|
||||||
|
|
||||||
for thumbnail, usuario, fecha, id, id2, servidores in 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="([^"]+)"'
|
patronservidores = '<img src="[^"]+" title="([^"]+)"'
|
||||||
matches2 = re.compile(patronservidores, re.DOTALL).findall(servidores)
|
matches2 = re.compile(patronservidores, re.DOTALL).findall(servidores)
|
||||||
lista_servidores = ""
|
lista_servidores = ""
|
||||||
for servidor in matches2:
|
for servidor in matches2:
|
||||||
lista_servidores = lista_servidores + servidor + ", "
|
lista_servidores = lista_servidores + servidor + ", "
|
||||||
lista_servidores = lista_servidores[:-2]
|
lista_servidores = lista_servidores[:-2]
|
||||||
|
|
||||||
scrapedthumbnail = item.thumbnail
|
scrapedthumbnail = item.thumbnail
|
||||||
# http://www.bajui2.com/ajax/mostrar-enlaces.php?id=330582&code=124767d31bfbf14c3861
|
scrapedurl = "http://www.bajui.org/ajax/mostrar-enlaces.php?id=" + id + "&code=" + id2
|
||||||
scrapedurl = "http://www.bajui2.com/ajax/mostrar-enlaces.php?id=" + id + "&code=" + id2
|
|
||||||
scrapedplot = item.plot
|
scrapedplot = item.plot
|
||||||
scrapedtitle = "Enlaces de " + usuario + " (" + fecha + ") (" + lista_servidores + ")"
|
scrapedtitle = "Enlaces de " + usuario + " (" + fecha + ") (" + lista_servidores + ")"
|
||||||
|
|
||||||
@@ -250,7 +226,7 @@ def enlaces(item):
|
|||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url)
|
data = httptools.downloadpage(item.url).data
|
||||||
itemlist = servertools.find_video_items(data=data)
|
itemlist = servertools.find_video_items(data=data)
|
||||||
for videoitem in itemlist:
|
for videoitem in itemlist:
|
||||||
videoitem.channel = item.channel
|
videoitem.channel = item.channel
|
||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "beeg.png",
|
"thumbnail": "beeg.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "bityouth",
|
|
||||||
"name": "Bityouth",
|
|
||||||
"active": true,
|
|
||||||
"adult": false,
|
|
||||||
"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",
|
|
||||||
"tvshow"
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": "include_in_global_search",
|
|
||||||
"type": "bool",
|
|
||||||
"label": "Incluir en busqueda global",
|
|
||||||
"default": false,
|
|
||||||
"enabled": true,
|
|
||||||
"visible": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "borrachodetorrent",
|
|
||||||
"name": "BorrachodeTorrent",
|
|
||||||
"active": true,
|
|
||||||
"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",
|
|
||||||
"tvshow"
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": "modo_grafico",
|
|
||||||
"type": "bool",
|
|
||||||
"label": "Buscar información extra",
|
|
||||||
"default": true,
|
|
||||||
"enabled": true,
|
|
||||||
"visible": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "include_in_global_search",
|
|
||||||
"type": "bool",
|
|
||||||
"label": "Incluir en busqueda global",
|
|
||||||
"default": true,
|
|
||||||
"enabled": true,
|
|
||||||
"visible": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "bricocine",
|
|
||||||
"name": "Bricocine",
|
|
||||||
"active": true,
|
|
||||||
"adult": false,
|
|
||||||
"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",
|
|
||||||
"tvshow"
|
|
||||||
],
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"id": "include_in_global_search",
|
|
||||||
"type": "bool",
|
|
||||||
"label": "Incluir en busqueda global",
|
|
||||||
"default": true,
|
|
||||||
"enabled": true,
|
|
||||||
"visible": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -7,13 +7,6 @@
|
|||||||
"fanart": "https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/canalpelisbg.jpg",
|
"fanart": "https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/canalpelisbg.jpg",
|
||||||
"thumbnail": "http://www.canalpelis.com/wp-content/uploads/2016/11/logo_web.gif",
|
"thumbnail": "http://www.canalpelis.com/wp-content/uploads/2016/11/logo_web.gif",
|
||||||
"banner": "",
|
"banner": "",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "15/08/17",
|
|
||||||
"description": "Nuevo Canal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow",
|
"tvshow",
|
||||||
|
|||||||
@@ -143,14 +143,10 @@ def peliculas(item):
|
|||||||
contentTitle = scrapedtitle.partition(':')[0].partition(',')[0]
|
contentTitle = scrapedtitle.partition(':')[0].partition(',')[0]
|
||||||
title = "%s [COLOR green][%s][/COLOR] [COLOR yellow][%s][/COLOR]" % (
|
title = "%s [COLOR green][%s][/COLOR] [COLOR yellow][%s][/COLOR]" % (
|
||||||
scrapedtitle, year, quality)
|
scrapedtitle, year, quality)
|
||||||
thumb_id = scrapertools.find_single_match(scrapedthumbnail, '.*?\/uploads\/(.*?)-')
|
|
||||||
thumbnail = "/%s.jpg" % thumb_id
|
|
||||||
filtro_list = {"poster_path": thumbnail}
|
|
||||||
filtro_list = filtro_list.items()
|
|
||||||
|
|
||||||
itemlist.append(item.clone(channel=__channel__, action="findvideos", text_color=color3,
|
itemlist.append(item.clone(channel=__channel__, action="findvideos", text_color=color3,
|
||||||
url=scrapedurl, infoLabels={'filtro':filtro_list},
|
url=scrapedurl, infoLabels={'year': year},
|
||||||
contentTitle=contentTitle, thumbnail=thumbnail,
|
contentTitle=contentTitle, thumbnail=scrapedthumbnail,
|
||||||
title=title, context="buscar_trailer", quality = quality))
|
title=title, context="buscar_trailer", quality = quality))
|
||||||
|
|
||||||
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
|
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
|
||||||
@@ -168,17 +164,17 @@ def peliculas(item):
|
|||||||
|
|
||||||
for item in itemlist:
|
for item in itemlist:
|
||||||
if item.infoLabels['plot'] == '':
|
if item.infoLabels['plot'] == '':
|
||||||
data = httptools.downloadpage(item.url).data
|
datas = httptools.downloadpage(item.url).data
|
||||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
datas = re.sub(r"\n|\r|\t|\s{2}| ", "", datas)
|
||||||
item.fanart = scrapertools.find_single_match(
|
item.fanart = scrapertools.find_single_match(
|
||||||
data, "<meta property='og:image' content='([^']+)' />")
|
datas, "<meta property='og:image' content='([^']+)' />")
|
||||||
item.fanart = item.fanart.replace('w780', 'original')
|
item.fanart = item.fanart.replace('w780', 'original')
|
||||||
item.plot = scrapertools.find_single_match(data, '</span></h4><p>([^*]+)</p><h4')
|
item.plot = scrapertools.find_single_match(datas, '</h4><p>(.*?)</p>')
|
||||||
item.plot = scrapertools.htmlclean(item.plot)
|
item.plot = scrapertools.htmlclean(item.plot)
|
||||||
item.infoLabels['director'] = scrapertools.find_single_match(
|
item.infoLabels['director'] = scrapertools.find_single_match(
|
||||||
data, '<div class="name"><a href="[^"]+">([^<]+)</a>')
|
datas, '<div class="name"><a href="[^"]+">([^<]+)</a>')
|
||||||
item.infoLabels['genre'] = scrapertools.find_single_match(
|
item.infoLabels['genre'] = scrapertools.find_single_match(
|
||||||
data, 'rel="tag">[^<]+</a><a href="[^"]+" rel="tag">([^<]+)</a>')
|
datas, 'rel="tag">[^<]+</a><a href="[^"]+" rel="tag">([^<]+)</a>')
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -189,8 +185,7 @@ def generos(item):
|
|||||||
|
|
||||||
data = scrapertools.cache_page(item.url)
|
data = scrapertools.cache_page(item.url)
|
||||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
||||||
# logger.info(data)
|
|
||||||
# url, title, cantidad
|
|
||||||
patron = '<li class="cat-item cat-item-[^"]+"><a href="([^"]+)" title="[^"]+">([^<]+)</a> <i>([^<]+)</i></li>'
|
patron = '<li class="cat-item cat-item-[^"]+"><a href="([^"]+)" title="[^"]+">([^<]+)</a> <i>([^<]+)</i></li>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
@@ -216,34 +211,34 @@ def year_release(item):
|
|||||||
for scrapedurl, scrapedtitle in matches:
|
for scrapedurl, scrapedtitle in matches:
|
||||||
|
|
||||||
itemlist.append(item.clone(channel=item.channel, action="peliculas", title=scrapedtitle, page=0,
|
itemlist.append(item.clone(channel=item.channel, action="peliculas", title=scrapedtitle, page=0,
|
||||||
url=scrapedurl, text_color=color3, viewmode="movie_with_plot", extra='next'))
|
url=scrapedurl, text_color=color3, viewmode="movie_with_plot", extra='next'))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def series(item):
|
def series(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
data = re.sub(r"\n|\r|\t| |<br>", "", data)
|
data = re.sub(r"\n|\r|\t|\(.*?\)| |<br>", "", data)
|
||||||
# logger.info(datas)
|
|
||||||
|
|
||||||
patron = '<div class="poster"><img src="([^"]+)" alt="([^"]+)">.*?<a href="([^"]+)">'
|
patron = '<div class="poster"><img src="([^"]+)" alt="([^"]+)">.*?<a href="([^"]+)">.*?'
|
||||||
|
patron += '<div class="texto">([^<]+)</div>'
|
||||||
|
|
||||||
matches = scrapertools.find_multiple_matches(data, patron)
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
|
|
||||||
for scrapedthumbnail, scrapedtitle, scrapedurl in matches:
|
for scrapedthumbnail, scrapedtitle, scrapedurl, plot in matches:
|
||||||
|
if plot == '':
|
||||||
|
plot = scrapertools.find_single_match(data, '<div class="texto">([^<]+)</div>')
|
||||||
scrapedtitle = scrapedtitle.replace('Ver ', '').replace(
|
scrapedtitle = scrapedtitle.replace('Ver ', '').replace(
|
||||||
' Online HD', '').replace('ver ', '').replace(' Online', '')
|
' Online HD', '').replace('ver ', '').replace(' Online', '').replace(' (Serie TV)', '').strip()
|
||||||
itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, action="temporadas",
|
itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, action="temporadas",
|
||||||
contentSerieName=scrapedtitle, show=scrapedtitle,
|
contentSerieName=scrapedtitle, show=scrapedtitle, plot=plot,
|
||||||
thumbnail=scrapedthumbnail, contentType='tvshow'))
|
thumbnail=scrapedthumbnail, contentType='tvshow'))
|
||||||
|
|
||||||
url_next_page = scrapertools.find_single_match(data, '<link rel="next" href="([^"]+)" />')
|
url_next_page = scrapertools.find_single_match(data, '<link rel="next" href="([^"]+)" />')
|
||||||
|
|
||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
|
||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
|
|
||||||
if url_next_page:
|
if url_next_page:
|
||||||
@@ -259,7 +254,6 @@ def temporadas(item):
|
|||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
datas = re.sub(r"\n|\r|\t| |<br>", "", data)
|
datas = re.sub(r"\n|\r|\t| |<br>", "", data)
|
||||||
# logger.info(datas)
|
|
||||||
patron = '<span class="title">([^<]+)<i>.*?' # numeros de temporadas
|
patron = '<span class="title">([^<]+)<i>.*?' # numeros de temporadas
|
||||||
patron += '<img src="([^"]+)"></a></div>' # capitulos
|
patron += '<img src="([^"]+)"></a></div>' # capitulos
|
||||||
|
|
||||||
@@ -268,13 +262,13 @@ def temporadas(item):
|
|||||||
for scrapedseason, scrapedthumbnail in matches:
|
for scrapedseason, scrapedthumbnail in matches:
|
||||||
scrapedseason = " ".join(scrapedseason.split())
|
scrapedseason = " ".join(scrapedseason.split())
|
||||||
temporada = scrapertools.find_single_match(scrapedseason, '(\d+)')
|
temporada = scrapertools.find_single_match(scrapedseason, '(\d+)')
|
||||||
new_item = item.clone(action="episodios", season=temporada, thumbnail=scrapedthumbnail)
|
new_item = item.clone(action="episodios", season=temporada, thumbnail=scrapedthumbnail, extra='temporadas')
|
||||||
new_item.infoLabels['season'] = temporada
|
new_item.infoLabels['season'] = temporada
|
||||||
new_item.extra = ""
|
new_item.extra = ""
|
||||||
itemlist.append(new_item)
|
itemlist.append(new_item)
|
||||||
|
|
||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
|
||||||
for i in itemlist:
|
for i in itemlist:
|
||||||
i.title = "%s. %s" % (i.infoLabels['season'], i.infoLabels['tvshowtitle'])
|
i.title = "%s. %s" % (i.infoLabels['season'], i.infoLabels['tvshowtitle'])
|
||||||
if i.infoLabels['title']:
|
if i.infoLabels['title']:
|
||||||
@@ -286,6 +280,11 @@ def temporadas(item):
|
|||||||
|
|
||||||
itemlist.sort(key=lambda it: it.title)
|
itemlist.sort(key=lambda it: it.title)
|
||||||
|
|
||||||
|
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||||
|
itemlist.append(Item(channel=__channel__, title="Añadir esta serie a la videoteca", url=item.url,
|
||||||
|
action="add_serie_to_library", extra="episodios", show=item.show, category="Series",
|
||||||
|
text_color=color1, thumbnail=thumbnail_host, fanart=fanart_host))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
else:
|
else:
|
||||||
return episodios(item)
|
return episodios(item)
|
||||||
@@ -328,7 +327,6 @@ def episodios(item):
|
|||||||
if not item.extra:
|
if not item.extra:
|
||||||
# Obtenemos los datos de todos los capitulos de la temporada mediante multihilos
|
# Obtenemos los datos de todos los capitulos de la temporada mediante multihilos
|
||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
|
||||||
for i in itemlist:
|
for i in itemlist:
|
||||||
if i.infoLabels['title']:
|
if i.infoLabels['title']:
|
||||||
# Si el capitulo tiene nombre propio añadirselo al titulo del item
|
# Si el capitulo tiene nombre propio añadirselo al titulo del item
|
||||||
@@ -355,13 +353,17 @@ def findvideos(item):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
|
|
||||||
data = re.sub(r"\n|\r|\t|\(.*?\)|\s{2}| ", "", data)
|
data = re.sub(r"\n|\r|\t|\(.*?\)|\s{2}| ", "", data)
|
||||||
patron = '<div id="option-(\d+)" class="play-box-iframe.*?src="([^"]+)" frameborder="0" scrolling="no" allowfullscreen></iframe>'
|
|
||||||
|
|
||||||
|
patron = '<div id="option-(\d+)" class="play-box-iframe.*?src="([^"]+)" frameborder="0" scrolling="no" allowfullscreen></iframe>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
for option, url in matches:
|
for option, url in matches:
|
||||||
|
datas = httptools.downloadpage(urlparse.urljoin(host, url),
|
||||||
|
headers={'Referer': item.url}).data
|
||||||
|
|
||||||
|
patron = '<iframe[^>]+src="([^"]+)"'
|
||||||
|
url = scrapertools.find_single_match(datas, patron)
|
||||||
lang = scrapertools.find_single_match(
|
lang = scrapertools.find_single_match(
|
||||||
data, '<li><a class="options" href="#option-%s"><b class="icon-play_arrow"><\/b> (.*?)<span class="dt_flag">' % option)
|
data, '<li><a class="options" href="#option-%s"><b class="icon-play_arrow"><\/b> (.*?)<span class="dt_flag">' % option)
|
||||||
lang = lang.replace('Español ', '').replace('B.S.O. ', '')
|
lang = lang.replace('Español ', '').replace('B.S.O. ', '')
|
||||||
@@ -371,10 +373,9 @@ def findvideos(item):
|
|||||||
itemlist.append(item.clone(action='play', url=url, title=title, extra1=title,
|
itemlist.append(item.clone(action='play', url=url, title=title, extra1=title,
|
||||||
server=server, language = lang, text_color=color3))
|
server=server, language = lang, text_color=color3))
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel,
|
if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'episodios':
|
||||||
title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]',
|
itemlist.append(Item(channel=__channel__, url=item.url, action="add_pelicula_to_library", extra="findvideos",
|
||||||
url=item.url, action="add_pelicula_to_library",
|
title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]',
|
||||||
thumbnail='https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/libreria.png',
|
thumbnail=thumbnail_host, contentTitle=item.contentTitle))
|
||||||
extra="findvideos", contentTitle=item.contentTitle))
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "http://i.imgur.com/gAbPcvT.png?1",
|
"thumbnail": "http://i.imgur.com/gAbPcvT.png?1",
|
||||||
"banner": "canalporno.png",
|
"banner": "canalporno.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "15/03/2017",
|
|
||||||
"description": "limpieza código"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"date": "09/01/2017",
|
|
||||||
"description": "Primera version."
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,13 +6,6 @@
|
|||||||
"language": ["lat"],
|
"language": ["lat"],
|
||||||
"thumbnail": "http://i.imgur.com/wk6fRDZ.png",
|
"thumbnail": "http://i.imgur.com/wk6fRDZ.png",
|
||||||
"banner": "http://i.imgur.com/115c59F.png",
|
"banner": "http://i.imgur.com/115c59F.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "07/06/2017",
|
|
||||||
"description": "Primera version del canal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"tvshow"
|
"tvshow"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@@ -9,6 +9,7 @@ from core import servertools
|
|||||||
from core import tmdb
|
from core import tmdb
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
from channels import autoplay
|
||||||
|
|
||||||
host = "http://www.cartoon-latino.com/"
|
host = "http://www.cartoon-latino.com/"
|
||||||
from channels import autoplay
|
from channels import autoplay
|
||||||
@@ -24,29 +25,15 @@ list_quality = ['default']
|
|||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
thumb_series = get_thumb("channels_tvshow.png")
|
thumb_series = get_thumb("channels_tvshow.png")
|
||||||
autoplay.init(item.channel, list_servers, list_quality)
|
autoplay.init(item.channel, list_servers, list_quality)
|
||||||
|
|
||||||
itemlist = list()
|
itemlist = list()
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host,
|
itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host,
|
||||||
thumbnail=thumb_series))
|
thumbnail=thumb_series))
|
||||||
autoplay.show_option(item.channel, itemlist)
|
autoplay.show_option(item.channel, itemlist)
|
||||||
|
|
||||||
return 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):
|
def lista_gen(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
@@ -149,8 +136,7 @@ def episodios(item):
|
|||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show))
|
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show))
|
||||||
|
|
||||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
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))
|
action="add_serie_to_library", extra="episodios", show=show))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
@@ -179,35 +165,10 @@ def findvideos(item):
|
|||||||
for link in itemla:
|
for link in itemla:
|
||||||
if server in link:
|
if server in link:
|
||||||
url = link.replace('" + ID' + server + ' + "', str(id))
|
url = link.replace('" + ID' + server + ' + "', str(id))
|
||||||
if "drive" in server:
|
itemlist.append(item.clone(url=url, action="play",
|
||||||
server1 = 'Gvideo'
|
title="Enlace encontrado en %s "
|
||||||
else:
|
))
|
||||||
server1 = server
|
itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize())
|
||||||
itemlist.append(item.clone(url=url, action="play", server=server1,
|
scrapertools.printMatches(itemlist)
|
||||||
title="Enlace encontrado en %s " % (server1.capitalize())))
|
|
||||||
|
|
||||||
autoplay.start(itemlist, item)
|
autoplay.start(itemlist, item)
|
||||||
return itemlist
|
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"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "https://s9.postimg.org/secdb5s8v/ciberdocumentales.png",
|
"thumbnail": "https://s9.postimg.org/secdb5s8v/ciberdocumentales.png",
|
||||||
"banner": "https://s1.postimg.org/sa486z0of/ciberdocumentales_banner.png",
|
"banner": "https://s1.postimg.org/sa486z0of/ciberdocumentales_banner.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "18/06/2016",
|
|
||||||
"descripcion": "First release"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"documentary"
|
"documentary"
|
||||||
],
|
],
|
||||||
|
|||||||
62
plugin.video.alfa/channels/ciberpeliculashd.json
Normal file
62
plugin.video.alfa/channels/ciberpeliculashd.json
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
"id": "ciberpeliculashd",
|
||||||
|
"name": "Ciberpeliculashd",
|
||||||
|
"active": true,
|
||||||
|
"adult": false,
|
||||||
|
"language": ["lat"],
|
||||||
|
"thumbnail": "https://s17.postimg.org/78tekxeov/ciberpeliculashd1.png",
|
||||||
|
"banner": "",
|
||||||
|
"categories": [
|
||||||
|
"movie"
|
||||||
|
],
|
||||||
|
"settings": [
|
||||||
|
{
|
||||||
|
"id": "modo_grafico",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Buscar información extra",
|
||||||
|
"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": "include_in_global_search",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Incluir en busqueda global",
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "include_in_newest_peliculas",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Incluir en Novedades - Peliculas",
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "include_in_newest_infantiles",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Incluir en Novedades - Infantiles",
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "include_in_newest_terror",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Incluir en Novedades - terror",
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
271
plugin.video.alfa/channels/ciberpeliculashd.py
Normal file
271
plugin.video.alfa/channels/ciberpeliculashd.py
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
__channel__='ciberpeliculashd'
|
||||||
|
|
||||||
|
host = "http://ciberpeliculashd.net"
|
||||||
|
|
||||||
|
try:
|
||||||
|
__modo_grafico__ = config.get_setting('modo_grafico', __channel__)
|
||||||
|
except:
|
||||||
|
__modo_grafico__ = True
|
||||||
|
|
||||||
|
|
||||||
|
def mainlist(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
itemlist.append(Item(channel = item.channel, title = "Películas", text_bold = True, folder = False))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = " Novedades", action = "peliculas", url = host + "/?peli=1"))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = " Por género", action = "filtro", url = host, extra = "categories" ))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = " Por calidad", action = "filtro", url = host, extra = "qualitys"))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = " Por idioma", action = "filtro", url = host, extra = "languages"))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = ""))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = "Series", text_bold = True, folder = False))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = " Novedades", action = "series", url = host + "/series/?peli=1"))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = " Nuevos Capitulos", action = "nuevos_capitulos", url = host + "/series/?peli=1"))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = ""))
|
||||||
|
itemlist.append(Item(channel = item.channel, title = "Buscar", action = "search", url = host + "/?s="))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
def nuevos_capitulos(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
patron = 'class="episode" href="([^"]+).*?'
|
||||||
|
patron += 'src="([^"]+).*?'
|
||||||
|
patron += 'title="([^"]+).*?'
|
||||||
|
patron += '-->([^<]+).*?'
|
||||||
|
patron += 'created_at">([^<]+)'
|
||||||
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
|
for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedepisode, scrapeddays in matches:
|
||||||
|
scrapedtitle = scrapedtitle + " %s (%s)" %(scrapedepisode.strip(), scrapeddays.strip())
|
||||||
|
itemlist.append(Item(action = "findvideos",
|
||||||
|
channel = item.channel,
|
||||||
|
title = scrapedtitle,
|
||||||
|
thumbnail = scrapedthumbnail,
|
||||||
|
url = scrapedurl
|
||||||
|
))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
def series(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
bloque = scrapertools.find_single_match(data, 'loop-posts series.*?panel-pagination pagination-bottom')
|
||||||
|
patron = 'a href="([^"]+).*?'
|
||||||
|
patron += '((?:http|https)://image.tmdb.org[^"]+).*?'
|
||||||
|
patron += 'title="([^"]+)'
|
||||||
|
matches = scrapertools.find_multiple_matches(bloque, patron)
|
||||||
|
for scrapedurl, scrapedthumbnail, scrapedtitle in matches:
|
||||||
|
itemlist.append(Item(action = "temporadas",
|
||||||
|
channel = item.channel,
|
||||||
|
thumbnail = scrapedthumbnail,
|
||||||
|
title = scrapedtitle,
|
||||||
|
contentSerieName = scrapedtitle,
|
||||||
|
url = scrapedurl
|
||||||
|
))
|
||||||
|
if itemlist:
|
||||||
|
tmdb.set_infoLabels(itemlist)
|
||||||
|
page = int(scrapertools.find_single_match(item.url,"peli=([0-9]+)")) + 1
|
||||||
|
next_page = scrapertools.find_single_match(item.url,".*?peli=")
|
||||||
|
next_page += "%s" %page
|
||||||
|
itemlist.append(Item(action = "series",
|
||||||
|
channel = item.channel,
|
||||||
|
title = "Página siguiente",
|
||||||
|
url = next_page
|
||||||
|
))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def temporadas(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
bloque = scrapertools.find_single_match(data, 'Lista de Temporadas.*?</ul>')
|
||||||
|
matches = scrapertools.find_multiple_matches(bloque, '</i> (.*?[0-9]+)')
|
||||||
|
for scrapedtitle in matches:
|
||||||
|
season = scrapertools.find_single_match(scrapedtitle, '[0-9]+')
|
||||||
|
item.infoLabels["season"] = season
|
||||||
|
url = item.url + "?temporada=%s" %season
|
||||||
|
itemlist.append(item.clone(action = "capitulos",
|
||||||
|
title = scrapedtitle,
|
||||||
|
url = url
|
||||||
|
))
|
||||||
|
tmdb.set_infoLabels(itemlist)
|
||||||
|
if config.get_videolibrary_support():
|
||||||
|
itemlist.append(Item(channel=item.channel, title =""))
|
||||||
|
itemlist.append(item.clone(action = "add_serie_to_library",
|
||||||
|
channel = item.channel,
|
||||||
|
extra = "episodios",
|
||||||
|
title = '[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]',
|
||||||
|
url = item.url
|
||||||
|
))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def episodios(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
templist = temporadas(item)
|
||||||
|
for tempitem in templist:
|
||||||
|
itemlist += capitulos(tempitem)
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def capitulos(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
patron = '<td><a href="([^"]+).*?'
|
||||||
|
patron += '<b>(.*?)</a>'
|
||||||
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
|
for scrapedurl, scrapedtitle in matches:
|
||||||
|
scrapedtitle = scrapedtitle.replace("</b>", "")
|
||||||
|
episode = scrapertools.find_single_match(scrapedtitle, "Capitulo ([0-9]+)")
|
||||||
|
scrapedtitle = scrapedtitle.split(":")[1]
|
||||||
|
scrapedtitle = "%sx%s %s" %(item.infoLabels["season"], episode, scrapedtitle)
|
||||||
|
item.infoLabels["episode"] = episode
|
||||||
|
itemlist.append(item.clone(action = "findvideos",
|
||||||
|
title = scrapedtitle,
|
||||||
|
url = scrapedurl
|
||||||
|
))
|
||||||
|
tmdb.set_infoLabels(itemlist)
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def newest(categoria):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
item = Item()
|
||||||
|
try:
|
||||||
|
if categoria in ['peliculas','latino']:
|
||||||
|
item.url = host + "/?peli=1"
|
||||||
|
elif categoria == 'infantiles':
|
||||||
|
item.url = host + '/categories/animacion/?peli=1'
|
||||||
|
elif categoria == 'terror':
|
||||||
|
item.url = host + '/categories/terror/?peli=1'
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
def search(item, texto):
|
||||||
|
logger.info()
|
||||||
|
texto = texto.replace(" ", "+")
|
||||||
|
item.url = item.url + texto + "&peli=1"
|
||||||
|
item.extra = "busca"
|
||||||
|
if texto != '':
|
||||||
|
return peliculas(item)
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
def filtro(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
patron = 'uk-navbar-nav-subtitle taxonomy-menu-title">%s.*?</ul>' %item.extra
|
||||||
|
bloque = scrapertools.find_single_match(data, patron)
|
||||||
|
patron = "href='([^']+)"
|
||||||
|
patron += "'>([^<]+)"
|
||||||
|
matches = scrapertools.find_multiple_matches(bloque, patron)
|
||||||
|
for url, titulo in matches:
|
||||||
|
itemlist.append(Item(channel = item.channel,
|
||||||
|
action = "peliculas",
|
||||||
|
title = titulo,
|
||||||
|
url = url + "/?peli=1"
|
||||||
|
))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def peliculas(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
infoLabels = dict()
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
bloque = scrapertools.find_single_match(data, 'loop-posts".*?panel-pagination pagination-bottom')
|
||||||
|
patron = 'a href="([^"]+)".*?'
|
||||||
|
patron += 'img alt="([^"]+)".*?'
|
||||||
|
patron += '((?:http|https)://image.tmdb.org[^"]+)".*?'
|
||||||
|
patron += 'a href="([^"]+)".*?'
|
||||||
|
matches = scrapertools.find_multiple_matches(bloque, patron)
|
||||||
|
for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedurl1 in matches:
|
||||||
|
scrapedtitle = scrapedtitle.replace(" Online imagen","").replace("Pelicula ","")
|
||||||
|
year = scrapertools.find_single_match(scrapedtitle, "\(([0-9]+)\)")
|
||||||
|
if year:
|
||||||
|
year = int(year)
|
||||||
|
else:
|
||||||
|
year = 0
|
||||||
|
fulltitle = scrapertools.find_single_match(scrapedtitle, "(.*?) \(")
|
||||||
|
if "serie" in scrapedurl:
|
||||||
|
action = "temporadas"
|
||||||
|
infoLabels ['tvshowtitle'] = scrapedtitle
|
||||||
|
else:
|
||||||
|
action = "findvideos"
|
||||||
|
infoLabels ['tvshowtitle'] = ""
|
||||||
|
infoLabels ['year'] = year
|
||||||
|
itemlist.append(Item(action = action,
|
||||||
|
channel = item.channel,
|
||||||
|
fulltitle = fulltitle,
|
||||||
|
thumbnail = scrapedthumbnail,
|
||||||
|
infoLabels = infoLabels,
|
||||||
|
title = scrapedtitle,
|
||||||
|
url = scrapedurl
|
||||||
|
))
|
||||||
|
if itemlist:
|
||||||
|
tmdb.set_infoLabels(itemlist)
|
||||||
|
page = int(scrapertools.find_single_match(item.url,"peli=([0-9]+)")) + 1
|
||||||
|
next_page = scrapertools.find_single_match(item.url,".*?peli=")
|
||||||
|
next_page += "%s" %page
|
||||||
|
itemlist.append(Item(action = "peliculas",
|
||||||
|
channel = item.channel,
|
||||||
|
title = "Página siguiente",
|
||||||
|
url = next_page
|
||||||
|
))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def findvideos(item):
|
||||||
|
logger.info()
|
||||||
|
itemlist = []
|
||||||
|
data = httptools.downloadpage(item.url).data
|
||||||
|
patron = 'src="([^&]+)'
|
||||||
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
|
for scrapedurl in matches:
|
||||||
|
title = "Ver en: %s"
|
||||||
|
itemlist.append(item.clone(action = "play",
|
||||||
|
title = title,
|
||||||
|
url = scrapedurl
|
||||||
|
))
|
||||||
|
tmdb.set_infoLabels(itemlist)
|
||||||
|
itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize())
|
||||||
|
if itemlist:
|
||||||
|
itemlist.append(Item(channel = item.channel))
|
||||||
|
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 biblioteca de KODI"
|
||||||
|
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, thumbnail = item.thumbnail,
|
||||||
|
fulltitle = item.fulltitle
|
||||||
|
))
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def play(item):
|
||||||
|
item.thumbnail = item.contentThumbnail
|
||||||
|
return [item]
|
||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "http://i.imgur.com/5KOU8uy.png?3",
|
"thumbnail": "http://i.imgur.com/5KOU8uy.png?3",
|
||||||
"banner": "cineasiaenlinea.png",
|
"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": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"vos"
|
"vos"
|
||||||
|
|||||||
@@ -6,29 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "https://s31.postimg.org/puxmvsi7v/cinecalidad.png",
|
"thumbnail": "https://s31.postimg.org/puxmvsi7v/cinecalidad.png",
|
||||||
"banner": "https://s32.postimg.org/kihkdpx1x/banner_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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
],
|
],
|
||||||
@@ -78,6 +55,22 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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 = []
|
itemlist = []
|
||||||
item = Item()
|
item = Item()
|
||||||
try:
|
try:
|
||||||
if categoria == 'peliculas':
|
if categoria in ['peliculas','latino']:
|
||||||
item.url = 'http://www.cinecalidad.to'
|
item.url = 'http://www.cinecalidad.com'
|
||||||
elif categoria == 'infantiles':
|
elif categoria == 'infantiles':
|
||||||
item.url = 'http://www.cinecalidad.to/genero-peliculas/infantil/'
|
item.url = 'http://www.cinecalidad.com/genero-peliculas/infantil/'
|
||||||
elif categoria == 'terror':
|
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)
|
itemlist = peliculas(item)
|
||||||
if itemlist[-1].title == 'Página siguiente >>':
|
if itemlist[-1].title == 'Página siguiente >>':
|
||||||
itemlist.pop()
|
itemlist.pop()
|
||||||
|
|||||||
@@ -4,27 +4,8 @@
|
|||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"version": 1,
|
|
||||||
"thumbnail": "cinefox.png",
|
"thumbnail": "cinefox.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow",
|
"tvshow",
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ def episodios(item):
|
|||||||
else:
|
else:
|
||||||
action = "menu_info_episode"
|
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):
|
for i, url in enumerate(seasons):
|
||||||
if i != 0:
|
if i != 0:
|
||||||
data_season = httptools.downloadpage(url, add_referer=True).data
|
data_season = httptools.downloadpage(url, add_referer=True).data
|
||||||
|
|||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["lat"],
|
"language": ["lat"],
|
||||||
"thumbnail": "https://s28.postimg.org/lytn2q1tp/cinefoxtv.png",
|
"thumbnail": "https://s28.postimg.org/lytn2q1tp/cinefoxtv.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
],
|
],
|
||||||
@@ -33,6 +18,14 @@
|
|||||||
"enabled": false,
|
"enabled": false,
|
||||||
"visible": 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",
|
"id": "include_in_newest_peliculas",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from core import tmdb
|
|||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
|
||||||
host = 'http://cinefoxtv.net/'
|
host = 'http://verhdpelis.com/'
|
||||||
headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'],
|
headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'],
|
||||||
['Referer', host]]
|
['Referer', host]]
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ def newest(categoria):
|
|||||||
item = Item()
|
item = Item()
|
||||||
# categoria='peliculas'
|
# categoria='peliculas'
|
||||||
try:
|
try:
|
||||||
if categoria == 'peliculas':
|
if categoria in ['peliculas','latino']:
|
||||||
item.url = host + 'page/1.html'
|
item.url = host + 'page/1.html'
|
||||||
elif categoria == 'infantiles':
|
elif categoria == 'infantiles':
|
||||||
item.url = host + 'peliculas-de-genero/infantil/1.html'
|
item.url = host + 'peliculas-de-genero/infantil/1.html'
|
||||||
|
|||||||
@@ -6,13 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "cinehindi.png",
|
"thumbnail": "cinehindi.png",
|
||||||
"banner": "http://i.imgur.com/cau9TVe.png",
|
"banner": "http://i.imgur.com/cau9TVe.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "25/05/2017",
|
|
||||||
"description": "Primera versión completa del canal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ def lista(item):
|
|||||||
|
|
||||||
if next_page_url != "":
|
if next_page_url != "":
|
||||||
item.url = 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'))
|
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -132,14 +132,18 @@ def findvideos(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
itemlist1 = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
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>'
|
patron_show = '<div class="data"><h1 itemprop="name">([^<]+)<\/h1>'
|
||||||
show = scrapertools.find_single_match(data, patron_show)
|
show = scrapertools.find_single_match(data, patron_show)
|
||||||
for videoitem in itemlist:
|
for videoitem in itemlist1:
|
||||||
videoitem.channel = item.channel
|
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(
|
itemlist.append(
|
||||||
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
|
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))
|
action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "cinetemagay.png",
|
"thumbnail": "cinetemagay.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -7,25 +7,6 @@
|
|||||||
"thumbnail": "cinetux.png",
|
"thumbnail": "cinetux.png",
|
||||||
"banner": "cinetux.png",
|
"banner": "cinetux.png",
|
||||||
"fanart": "cinetux.jpg",
|
"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": [
|
"categories": [
|
||||||
"direct",
|
"direct",
|
||||||
"movie"
|
"movie"
|
||||||
@@ -63,6 +44,30 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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",
|
"id": "modo_grafico",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ def mainlist(item):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
item.viewmode = viewmode
|
item.viewmode = viewmode
|
||||||
|
|
||||||
data = httptools.downloadpage(CHANNEL_HOST).data
|
data = httptools.downloadpage(CHANNEL_HOST + "pelicula").data
|
||||||
total = scrapertools.find_single_match(data, "TENEMOS\s<b>(.*?)</b>")
|
total = scrapertools.find_single_match(data, "Películas</h1><span>(.*?)</span>")
|
||||||
titulo = "Peliculas"
|
titulo = "Peliculas (%s)" %total
|
||||||
itemlist.append(item.clone(title=titulo, text_color=color2, action="", text_bold=True))
|
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",
|
itemlist.append(item.clone(action="peliculas", title=" Novedades", url=CHANNEL_HOST + "pelicula",
|
||||||
thumbnail="https://raw.githubusercontent.com/master-1970/resources/master/images/genres"
|
thumbnail="https://raw.githubusercontent.com/master-1970/resources/master/images/genres"
|
||||||
@@ -90,26 +90,30 @@ def newest(categoria):
|
|||||||
if categoria == 'peliculas':
|
if categoria == 'peliculas':
|
||||||
item.url = CHANNEL_HOST
|
item.url = CHANNEL_HOST
|
||||||
item.action = "peliculas"
|
item.action = "peliculas"
|
||||||
itemlist = peliculas(item)
|
|
||||||
|
|
||||||
if itemlist[-1].action == "peliculas":
|
|
||||||
itemlist.pop()
|
|
||||||
|
|
||||||
elif categoria == 'documentales':
|
elif categoria == 'documentales':
|
||||||
item.url = CHANNEL_HOST + "genero/documental/"
|
item.url = CHANNEL_HOST + "genero/documental/"
|
||||||
item.action = "peliculas"
|
item.action = "peliculas"
|
||||||
itemlist = peliculas(item)
|
|
||||||
|
|
||||||
if itemlist[-1].action == "peliculas":
|
|
||||||
itemlist.pop()
|
|
||||||
|
|
||||||
elif categoria == 'infantiles':
|
elif categoria == 'infantiles':
|
||||||
item.url = CHANNEL_HOST + "genero/infantil/"
|
item.url = CHANNEL_HOST + "genero/animacion/"
|
||||||
item.action = "peliculas"
|
item.action = "peliculas"
|
||||||
itemlist = peliculas(item)
|
|
||||||
|
|
||||||
if itemlist[-1].action == "peliculas":
|
elif categoria == 'terror':
|
||||||
itemlist.pop()
|
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
|
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
|
||||||
except:
|
except:
|
||||||
@@ -178,18 +182,15 @@ def destacadas(item):
|
|||||||
matches = scrapertools.find_multiple_matches(bloque, patron)
|
matches = scrapertools.find_multiple_matches(bloque, patron)
|
||||||
for scrapedtitle, scrapedurl, scrapedthumbnail in matches:
|
for scrapedtitle, scrapedurl, scrapedthumbnail in matches:
|
||||||
scrapedurl = CHANNEL_HOST + scrapedurl
|
scrapedurl = CHANNEL_HOST + scrapedurl
|
||||||
scrapedtitle = scrapedtitle.replace("Ver ", "")
|
itemlist.append(item.clone(action="findvideos", title=scrapedtitle, fulltitle=scrapedtitle,
|
||||||
new_item = item.clone(action="findvideos", title=scrapedtitle, fulltitle=scrapedtitle,
|
|
||||||
url=scrapedurl, thumbnail=scrapedthumbnail,
|
url=scrapedurl, thumbnail=scrapedthumbnail,
|
||||||
contentType="movie")
|
contentType="movie"
|
||||||
itemlist.append(new_item)
|
))
|
||||||
|
|
||||||
# Extrae el paginador
|
# Extrae el paginador
|
||||||
next_page_link = scrapertools.find_single_match(data, '<a href="([^"]+)"\s+><span [^>]+>»</span>')
|
next_page_link = scrapertools.find_single_match(data, '<a href="([^"]+)"\s+><span [^>]+>»</span>')
|
||||||
if next_page_link:
|
if next_page_link:
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
item.clone(action="destacadas", title=">> Página siguiente", url=next_page_link, text_color=color3))
|
item.clone(action="destacadas", title=">> Página siguiente", url=next_page_link, text_color=color3))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -239,13 +240,9 @@ def findvideos(item):
|
|||||||
|
|
||||||
# Busca el argumento
|
# Busca el argumento
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
year = scrapertools.find_single_match(item.title, "\(([0-9]+)")
|
|
||||||
|
|
||||||
tmdb.set_infoLabels(item, __modo_grafico__)
|
if item.infoLabels["year"]:
|
||||||
|
tmdb.set_infoLabels(item, __modo_grafico__)
|
||||||
if not item.infoLabels.get('plot'):
|
|
||||||
plot = scrapertools.find_single_match(data, '<div class="sinopsis"><p>(.*?)</p>')
|
|
||||||
item.infoLabels['plot'] = plot
|
|
||||||
|
|
||||||
if filtro_enlaces != 0:
|
if filtro_enlaces != 0:
|
||||||
list_enlaces = bloque_enlaces(data, filtro_idioma, dict_idiomas, "online", item)
|
list_enlaces = bloque_enlaces(data, filtro_idioma, dict_idiomas, "online", item)
|
||||||
@@ -263,15 +260,11 @@ def findvideos(item):
|
|||||||
if itemlist:
|
if itemlist:
|
||||||
itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="",
|
itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="",
|
||||||
text_color="magenta"))
|
text_color="magenta"))
|
||||||
# Opción "Añadir esta película a la videoteca"
|
|
||||||
if item.extra != "library":
|
if item.extra != "library":
|
||||||
if config.get_videolibrary_support():
|
if config.get_videolibrary_support():
|
||||||
itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green",
|
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
|
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
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -296,6 +289,8 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
|
|||||||
url = scrapertools.find_single_match(bloque1, patron)
|
url = scrapertools.find_single_match(bloque1, patron)
|
||||||
if "goo.gl" in url:
|
if "goo.gl" in url:
|
||||||
url = httptools.downloadpage(url, follow_redirects=False, only_headers=True).headers.get("location", "")
|
url = httptools.downloadpage(url, follow_redirects=False, only_headers=True).headers.get("location", "")
|
||||||
|
if "drive.php" in url:
|
||||||
|
scrapedserver = "gvideo"
|
||||||
if "player" in url:
|
if "player" in url:
|
||||||
scrapedserver = scrapertools.find_single_match(url, 'player/(\w+)')
|
scrapedserver = scrapertools.find_single_match(url, 'player/(\w+)')
|
||||||
if "ok" in scrapedserver: scrapedserver = "okru"
|
if "ok" in scrapedserver: scrapedserver = "okru"
|
||||||
@@ -348,12 +343,14 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
|
|||||||
def play(item):
|
def play(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
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 or "youtube" in item.url:
|
||||||
data = httptools.downloadpage(item.url, headers={'Referer': item.extra}).data.replace("\\", "")
|
data = httptools.downloadpage(item.url, headers={'Referer': item.extra}).data.replace("\\", "")
|
||||||
id = scrapertools.find_single_match(data, 'img src="[^#]+#(.*?)"')
|
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":
|
if item.server == "okru":
|
||||||
item.url = "https://ok.ru/videoembed/" + id
|
item.url = "https://ok.ru/videoembed/" + id
|
||||||
|
if item.server == "youtube":
|
||||||
|
item.url = "https://www.youtube.com/embed/" + id
|
||||||
elif "links" in item.url or "www.cinetux.me" in item.url:
|
elif "links" in item.url or "www.cinetux.me" in item.url:
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
scrapedurl = scrapertools.find_single_match(data, '<a href="(http[^"]+)')
|
scrapedurl = scrapertools.find_single_match(data, '<a href="(http[^"]+)')
|
||||||
@@ -365,6 +362,9 @@ def play(item):
|
|||||||
scrapedurl = httptools.downloadpage(scrapedurl, follow_redirects=False, only_headers=True).headers.get(
|
scrapedurl = httptools.downloadpage(scrapedurl, follow_redirects=False, only_headers=True).headers.get(
|
||||||
"location", "")
|
"location", "")
|
||||||
item.url = scrapedurl
|
item.url = scrapedurl
|
||||||
item.thumbnail = item.contentThumbnail
|
item.server = ""
|
||||||
item.server = servertools.get_server_from_url(item.url)
|
itemlist.append(item.clone())
|
||||||
return [item]
|
itemlist = servertools.get_servers_itemlist(itemlist)
|
||||||
|
for i in itemlist:
|
||||||
|
i.thumbnail = i.contentThumbnail
|
||||||
|
return itemlist
|
||||||
|
|||||||
@@ -6,25 +6,6 @@
|
|||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "http://i.imgur.com/F7sevVu.jpg?1",
|
"thumbnail": "http://i.imgur.com/F7sevVu.jpg?1",
|
||||||
"banner": "clasicofilm.png",
|
"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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from core import filetools
|
||||||
|
from core import jsontools
|
||||||
from core import httptools
|
from core import httptools
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
|
from core import servertools
|
||||||
from core import tmdb
|
from core import tmdb
|
||||||
|
from core import videolibrarytools
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, platformtools, logger
|
||||||
|
|
||||||
host = "http://www.clasicofilm.com/"
|
host = "http://www.clasicofilm.com/"
|
||||||
# Configuracion del canal
|
# Configuracion del canal
|
||||||
@@ -47,7 +51,6 @@ def mainlist(item):
|
|||||||
|
|
||||||
|
|
||||||
def configuracion(item):
|
def configuracion(item):
|
||||||
from platformcode import platformtools
|
|
||||||
ret = platformtools.show_channel_settings()
|
ret = platformtools.show_channel_settings()
|
||||||
platformtools.itemlist_refresh()
|
platformtools.itemlist_refresh()
|
||||||
return ret
|
return ret
|
||||||
@@ -55,13 +58,9 @@ def configuracion(item):
|
|||||||
|
|
||||||
def search(item, texto):
|
def search(item, texto):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
data = httptools.downloadpage(host).data
|
data = httptools.downloadpage(host).data
|
||||||
cx = scrapertools.find_single_match(data, "var cx = '([^']+)'")
|
|
||||||
texto = texto.replace(" ", "%20")
|
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" % (
|
item.url = host + "search?q=%s" % texto
|
||||||
cx, texto)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return busqueda(item)
|
return busqueda(item)
|
||||||
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
|
# 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 = httptools.downloadpage(item.url).data
|
||||||
|
|
||||||
data = scrapertools.find_single_match(data, 'finddatepost\((\{.*?\]\}\})\);')
|
data = scrapertools.find_single_match(data, 'finddatepost\((\{.*?\]\}\})\);')
|
||||||
from core import jsontools
|
|
||||||
data = jsontools.load(data)["feed"]
|
data = jsontools.load(data)["feed"]
|
||||||
|
|
||||||
for entry in data["entry"]:
|
for entry in data["entry"]:
|
||||||
@@ -133,7 +131,6 @@ def peliculas(item):
|
|||||||
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
actualpage = int(scrapertools.find_single_match(item.url, 'start-index=(\d+)'))
|
actualpage = int(scrapertools.find_single_match(item.url, 'start-index=(\d+)'))
|
||||||
totalresults = int(data["openSearch$totalResults"]["$t"])
|
totalresults = int(data["openSearch$totalResults"]["$t"])
|
||||||
if actualpage + 20 < totalresults:
|
if actualpage + 20 < totalresults:
|
||||||
@@ -146,48 +143,22 @@ def peliculas(item):
|
|||||||
def busqueda(item):
|
def busqueda(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
item.text_color = color2
|
|
||||||
|
|
||||||
# Descarga la página
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
|
patron = """post-title entry-titl.*?href='([^']+)'"""
|
||||||
from core import jsontools
|
patron += """>([^<]+).*?"""
|
||||||
data = jsontools.load(data)
|
patron += """src="([^"]+)"""
|
||||||
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
for entry in data["results"]:
|
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
||||||
try:
|
year = scrapertools.find_single_match(scrapedtitle, "\(([0-9]{4})\)")
|
||||||
title = entry["richSnippet"]["metatags"]["ogTitle"]
|
ctitle = scrapedtitle.split("(")[0].strip()
|
||||||
url = entry["richSnippet"]["metatags"]["ogUrl"]
|
itemlist.append(item.clone(action = "findvideos",
|
||||||
thumbnail = entry["richSnippet"]["metatags"]["ogImage"]
|
contentTitle = ctitle,
|
||||||
except:
|
infoLabels = {"year" : year},
|
||||||
continue
|
thumbnail = scrapedthumbnail,
|
||||||
|
title = scrapedtitle,
|
||||||
try:
|
url = scrapedurl
|
||||||
title_split = re.split(r"\s*\((\d)", title, 1)
|
))
|
||||||
year = title_split[1] + scrapertools.find_single_match(title_split[2], '(\d{3})\)')
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
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))
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -197,9 +168,10 @@ def generos(item):
|
|||||||
|
|
||||||
# Descarga la página
|
# Descarga la página
|
||||||
data = httptools.downloadpage(item.url).data
|
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)
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
for scrapedtitle, scrapedurl in matches:
|
for scrapedtitle, scrapedurl in matches:
|
||||||
|
scrapedurl = scrapedurl.replace("&","&")
|
||||||
scrapedurl = scrapedurl.replace("max-results=500", "start-index=1&max-results=20") \
|
scrapedurl = scrapedurl.replace("max-results=500", "start-index=1&max-results=20") \
|
||||||
.replace("recentpostslist", "finddatepost")
|
.replace("recentpostslist", "finddatepost")
|
||||||
itemlist.append(Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl,
|
itemlist.append(Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl,
|
||||||
@@ -210,13 +182,13 @@ def generos(item):
|
|||||||
|
|
||||||
|
|
||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
from core import servertools
|
|
||||||
|
|
||||||
if item.infoLabels["tmdb_id"]:
|
if item.infoLabels["tmdb_id"]:
|
||||||
tmdb.set_infoLabels_item(item, __modo_grafico__)
|
tmdb.set_infoLabels_item(item, __modo_grafico__)
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
iframe = scrapertools.find_single_match(data, '<iframe src="([^"]+)"')
|
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:
|
if "goo.gl/" in iframe:
|
||||||
data += httptools.downloadpage(iframe, follow_redirects=False, only_headers=True).headers.get("location", "")
|
data += httptools.downloadpage(iframe, follow_redirects=False, only_headers=True).headers.get("location", "")
|
||||||
itemlist = servertools.find_video_items(item, data)
|
itemlist = servertools.find_video_items(item, data)
|
||||||
@@ -226,13 +198,11 @@ def findvideos(item):
|
|||||||
title = "Añadir película a la videoteca"
|
title = "Añadir película a la videoteca"
|
||||||
if item.infoLabels["imdb_id"] and not library_path.lower().startswith("smb://"):
|
if item.infoLabels["imdb_id"] and not library_path.lower().startswith("smb://"):
|
||||||
try:
|
try:
|
||||||
from core import filetools
|
|
||||||
movie_path = filetools.join(config.get_videolibrary_path(), 'CINE')
|
movie_path = filetools.join(config.get_videolibrary_path(), 'CINE')
|
||||||
files = filetools.walk(movie_path)
|
files = filetools.walk(movie_path)
|
||||||
for dirpath, dirname, filename in files:
|
for dirpath, dirname, filename in files:
|
||||||
for f in filename:
|
for f in filename:
|
||||||
if item.infoLabels["imdb_id"] in f and f.endswith(".nfo"):
|
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))
|
head_nfo, it = videolibrarytools.read_nfo(filetools.join(dirpath, dirname, f))
|
||||||
canales = it.library_urls.keys()
|
canales = it.library_urls.keys()
|
||||||
canales.sort()
|
canales.sort()
|
||||||
|
|||||||
@@ -4,13 +4,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "16/05/2017",
|
|
||||||
"description": "Primera versión"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"thumbnail": "http://i.imgur.com/O49fDS1.png",
|
"thumbnail": "http://i.imgur.com/O49fDS1.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
"anime",
|
"anime",
|
||||||
|
|||||||
@@ -168,11 +168,11 @@ def episodios(item):
|
|||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
data = re.sub(r'\n|\t|\s{2,}', '', data)
|
data = re.sub(r'\n|\t|\s{2,}', '', data)
|
||||||
patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)" ' \
|
patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)"' \
|
||||||
'style="width: (.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \
|
'style="width:(.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \
|
||||||
'\s*(.*?)</p>.*?description":"([^"]+)"'
|
'\s*(.*?)</p>.*?description":"([^"]+)"'
|
||||||
if data.count('class="season-dropdown') > 1:
|
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:
|
for season, b in bloques:
|
||||||
matches = scrapertools.find_multiple_matches(b, patron)
|
matches = scrapertools.find_multiple_matches(b, patron)
|
||||||
if matches:
|
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,
|
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,
|
server="crunchyroll", text_color=item.text_color, contentTitle=item.contentTitle,
|
||||||
contentSerieName=item.contentSerieName, contentType="tvshow"))
|
contentSerieName=item.contentSerieName, contentType="tvshow"))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,21 +4,6 @@
|
|||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast"],
|
"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",
|
"thumbnail": "cuelgame.png",
|
||||||
"banner": "cuelgame.png",
|
"banner": "cuelgame.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
@@ -36,6 +21,14 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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()
|
response = r.read()
|
||||||
|
|
||||||
return response
|
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": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "cumlouder.png",
|
"thumbnail": "cumlouder.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"adult"
|
"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": ["*"],
|
"language": ["*"],
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": 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",
|
"thumbnail": "http://i.imgur.com/tBSWudd.png?1",
|
||||||
"banner": "datoporn.png",
|
"banner": "datoporn.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
|
|||||||
@@ -4,17 +4,6 @@
|
|||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"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",
|
"banner": "descargacineclasico2.png",
|
||||||
"thumbnail": "descargacineclasico2.png",
|
"thumbnail": "descargacineclasico2.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
|
|||||||
@@ -3,30 +3,7 @@
|
|||||||
"name": "DescargasMIX",
|
"name": "DescargasMIX",
|
||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"active": true,
|
"active": true,
|
||||||
"version": 1,
|
|
||||||
"adult": false,
|
"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",
|
"thumbnail": "descargasmix.png",
|
||||||
"banner": "descargasmix.png",
|
"banner": "descargasmix.png",
|
||||||
"categories": [
|
"categories": [
|
||||||
@@ -66,6 +43,14 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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"))
|
fanart="http://i.imgur.com/ggFFR8o.png"))
|
||||||
itemlist.append(item.clone(title="", action=""))
|
itemlist.append(item.clone(title="", action=""))
|
||||||
itemlist.append(item.clone(title="Buscar...", action="search"))
|
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
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def configuracion(item):
|
def setting_channel(item):
|
||||||
from platformcode import platformtools
|
from platformcode import platformtools
|
||||||
ret = platformtools.show_channel_settings()
|
ret = platformtools.show_channel_settings()
|
||||||
platformtools.itemlist_refresh()
|
platformtools.itemlist_refresh()
|
||||||
@@ -108,13 +108,15 @@ def busqueda(item):
|
|||||||
|
|
||||||
def lista(item):
|
def lista(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = list()
|
||||||
|
|
||||||
itemlist.append(item.clone(title="Novedades", action="entradas", url="%s/peliculas" % host))
|
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))
|
itemlist.append(item.clone(title="Estrenos", action="entradas", url="%s/peliculas/estrenos" % host))
|
||||||
itemlist.append(item.clone(title="Dvdrip", action="entradas", url="%s/peliculas/dvdrip" % host))
|
itemlist.append(item.clone(title="Dvdrip", action="entradas", url="%s/peliculas/dvdrip" % host))
|
||||||
itemlist.append(item.clone(title="HD (720p/1080p)", action="entradas", url="%s/peliculas/hd" % host))
|
itemlist.append(item.clone(title="HD (720p/1080p)", action="entradas", url="%s/peliculas/hd" % host))
|
||||||
|
itemlist.append(item.clone(title="4K", action="entradas", url="%s/peliculas/4k" % host))
|
||||||
itemlist.append(item.clone(title="HDRIP", action="entradas", url="%s/peliculas/hdrip" % host))
|
itemlist.append(item.clone(title="HDRIP", action="entradas", url="%s/peliculas/hdrip" % host))
|
||||||
|
|
||||||
itemlist.append(item.clone(title="Latino", action="entradas",
|
itemlist.append(item.clone(title="Latino", action="entradas",
|
||||||
url="%s/peliculas/latino-peliculas" % host))
|
url="%s/peliculas/latino-peliculas" % host))
|
||||||
itemlist.append(item.clone(title="VOSE", action="entradas", url="%s/peliculas/subtituladas" % host))
|
itemlist.append(item.clone(title="VOSE", action="entradas", url="%s/peliculas/subtituladas" % host))
|
||||||
@@ -125,7 +127,7 @@ def lista(item):
|
|||||||
|
|
||||||
def lista_series(item):
|
def lista_series(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = list()
|
||||||
|
|
||||||
itemlist.append(item.clone(title="Novedades", action="entradas", url="%s/series/" % host))
|
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))
|
itemlist.append(item.clone(title="Miniseries", action="entradas", url="%s/series/miniseries" % host))
|
||||||
@@ -254,7 +256,7 @@ def episodios(item):
|
|||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def epienlaces(item):
|
def episode_links(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
item.text_color = color3
|
item.text_color = color3
|
||||||
@@ -286,7 +288,7 @@ def epienlaces(item):
|
|||||||
else:
|
else:
|
||||||
if servertools.is_server_enabled(scrapedserver):
|
if servertools.is_server_enabled(scrapedserver):
|
||||||
try:
|
try:
|
||||||
servers_module = __import__("servers." + scrapedserver)
|
# servers_module = __import__("servers." + scrapedserver)
|
||||||
lista_enlaces.append(item.clone(action="play", title=titulo, server=scrapedserver, url=scrapedurl,
|
lista_enlaces.append(item.clone(action="play", title=titulo, server=scrapedserver, url=scrapedurl,
|
||||||
extra=item.url))
|
extra=item.url))
|
||||||
except:
|
except:
|
||||||
@@ -302,13 +304,14 @@ def epienlaces(item):
|
|||||||
|
|
||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
if (item.extra and item.extra != "findvideos") or item.path:
|
if item.contentSeason != '':
|
||||||
return epienlaces(item)
|
return episode_links(item)
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
item.text_color = color3
|
item.text_color = color3
|
||||||
|
|
||||||
data = get_data(item.url)
|
data = get_data(item.url)
|
||||||
|
|
||||||
item.plot = scrapertools.find_single_match(data, 'SINOPSIS(?:</span>|</strong>):(.*?)</p>')
|
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+)')
|
year = scrapertools.find_single_match(data, '(?:<span class="bold">|<strong>)AÑO(?:</span>|</strong>):\s*(\d+)')
|
||||||
if year:
|
if year:
|
||||||
@@ -346,9 +349,9 @@ def findvideos(item):
|
|||||||
patron = 'make_links.*?,[\'"]([^"\']+)["\']'
|
patron = 'make_links.*?,[\'"]([^"\']+)["\']'
|
||||||
matches = scrapertools.find_multiple_matches(data_online, patron)
|
matches = scrapertools.find_multiple_matches(data_online, patron)
|
||||||
for i, code in enumerate(matches):
|
for i, code in enumerate(matches):
|
||||||
enlace = mostrar_enlaces(code)
|
enlace = show_links(code)
|
||||||
enlaces = servertools.findvideos(data=enlace[0])
|
links = servertools.findvideos(data=enlace[0])
|
||||||
if enlaces and "peliculas.nu" not in enlaces:
|
if links and "peliculas.nu" not in links:
|
||||||
if i == 0:
|
if i == 0:
|
||||||
extra_info = scrapertools.find_single_match(data_online, '<span class="tooltiptext">(.*?)</span>')
|
extra_info = scrapertools.find_single_match(data_online, '<span class="tooltiptext">(.*?)</span>')
|
||||||
size = scrapertools.find_single_match(data_online, '(?i)TAMAÑO:\s*(.*?)<').strip()
|
size = scrapertools.find_single_match(data_online, '(?i)TAMAÑO:\s*(.*?)<').strip()
|
||||||
@@ -362,8 +365,8 @@ def findvideos(item):
|
|||||||
new_item.title += " +INFO"
|
new_item.title += " +INFO"
|
||||||
itemlist.append(new_item)
|
itemlist.append(new_item)
|
||||||
|
|
||||||
title = " Ver vídeo en " + enlaces[0][2]
|
title = " Ver vídeo en " + links[0][2]
|
||||||
itemlist.append(item.clone(action="play", server=enlaces[0][2], title=title, url=enlaces[0][1]))
|
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='([^']+)'")
|
scriptg = scrapertools.find_single_match(data, "<script type='text/javascript'>str='([^']+)'")
|
||||||
if scriptg:
|
if scriptg:
|
||||||
gvideo = urllib.unquote_plus(scriptg.replace("@", "%"))
|
gvideo = urllib.unquote_plus(scriptg.replace("@", "%"))
|
||||||
@@ -419,9 +422,9 @@ def findvideos(item):
|
|||||||
continue
|
continue
|
||||||
if servertools.is_server_enabled(scrapedserver):
|
if servertools.is_server_enabled(scrapedserver):
|
||||||
try:
|
try:
|
||||||
servers_module = __import__("servers." + scrapedserver)
|
# servers_module = __import__("servers." + scrapedserver)
|
||||||
# Saca numero de enlaces
|
# Saca numero de enlaces
|
||||||
urls = mostrar_enlaces(scrapedurl)
|
urls = show_links(scrapedurl)
|
||||||
numero = str(len(urls))
|
numero = str(len(urls))
|
||||||
titulo = " %s - Nº enlaces: %s" % (titulo, numero)
|
titulo = " %s - Nº enlaces: %s" % (titulo, numero)
|
||||||
itemlist.append(item.clone(action="enlaces", title=titulo, extra=scrapedurl, server=scrapedserver))
|
itemlist.append(item.clone(action="enlaces", title=titulo, extra=scrapedurl, server=scrapedserver))
|
||||||
@@ -449,12 +452,13 @@ def play(item):
|
|||||||
headers=headers, follow_redirects=False).data
|
headers=headers, follow_redirects=False).data
|
||||||
|
|
||||||
url = scrapertools.find_single_match(data, 'url":"([^"]+)"').replace("\\", "")
|
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
|
data = httptools.downloadpage(url, headers={'Referer': item.extra}, follow_redirects=False).data
|
||||||
url = scrapertools.find_single_match(data, '<iframe.*?src="([^"]+)"')
|
url = scrapertools.find_single_match(data, '<iframe.*?src="([^"]+)"')
|
||||||
enlaces = servertools.findvideosbyserver(url, item.server)
|
links = servertools.findvideosbyserver(url, item.server)
|
||||||
if enlaces:
|
if links:
|
||||||
itemlist.append(item.clone(action="play", server=enlaces[0][2], url=enlaces[0][1]))
|
itemlist.append(item.clone(action="play", server=links[0][2], url=links[0][1]))
|
||||||
else:
|
else:
|
||||||
itemlist.append(item.clone())
|
itemlist.append(item.clone())
|
||||||
|
|
||||||
@@ -465,13 +469,13 @@ def enlaces(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
urls = mostrar_enlaces(item.extra)
|
urls = show_links(item.extra)
|
||||||
numero = len(urls)
|
numero = len(urls)
|
||||||
for enlace in urls:
|
for url in urls:
|
||||||
enlaces = servertools.findvideos(data=enlace)
|
links = servertools.findvideos(data=url)
|
||||||
if enlaces:
|
if links:
|
||||||
for link in enlaces:
|
for link in links:
|
||||||
if "/folder/" in enlace:
|
if "/folder/" in url:
|
||||||
titulo = link[0]
|
titulo = link[0]
|
||||||
else:
|
else:
|
||||||
titulo = "%s - Enlace %s" % (item.title.split("-")[0], str(numero))
|
titulo = "%s - Enlace %s" % (item.title.split("-")[0], str(numero))
|
||||||
@@ -482,7 +486,7 @@ def enlaces(item):
|
|||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def mostrar_enlaces(data):
|
def show_links(data):
|
||||||
import base64
|
import base64
|
||||||
data = data.split(",")
|
data = data.split(",")
|
||||||
len_data = len(data)
|
len_data = len(data)
|
||||||
@@ -535,3 +539,38 @@ def get_data(url_orig, get_host=False):
|
|||||||
break
|
break
|
||||||
|
|
||||||
return response.data
|
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"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "discoverymx.png",
|
"thumbnail": "discoverymx.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"documentary"
|
"documentary"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,29 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "divxatope.png",
|
"thumbnail": "divxatope.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"torrent",
|
"torrent",
|
||||||
"movie",
|
"movie",
|
||||||
@@ -58,6 +35,14 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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 = []
|
itemlist = []
|
||||||
item = Item()
|
item = Item()
|
||||||
try:
|
try:
|
||||||
if categoria == 'peliculas':
|
if categoria in ['peliculas', 'torrent']:
|
||||||
item.url = "http://www.divxatope1.com/peliculas"
|
item.url = "http://www.divxatope1.com/peliculas"
|
||||||
|
|
||||||
elif categoria == 'series':
|
elif categoria == 'series':
|
||||||
@@ -260,14 +260,16 @@ def findvideos(item):
|
|||||||
item.plot = scrapertools.find_single_match(data, '<div class="post-entry" style="height:300px;">(.*?)</div>')
|
item.plot = scrapertools.find_single_match(data, '<div class="post-entry" style="height:300px;">(.*?)</div>')
|
||||||
item.plot = scrapertools.htmlclean(item.plot).strip()
|
item.plot = scrapertools.htmlclean(item.plot).strip()
|
||||||
item.contentPlot = item.plot
|
item.contentPlot = item.plot
|
||||||
|
al_url_fa = scrapertools.find_single_match(data, 'location\.href.*?=.*?"http:\/\/(?:tumejorserie|tumejorjuego).*?link=(.*?)"')
|
||||||
link = scrapertools.find_single_match(data, 'location\.href.*?=.*?"http:\/\/(?:tumejorserie|tumejorjuego).*?link=(.*?)"')
|
if al_url_fa == "":
|
||||||
if link != "":
|
al_url_fa = scrapertools.find_single_match(data,
|
||||||
link = "http://www.divxatope1.com/" + link
|
'location\.href.*?=.*?"http:\/\/divxatope1.com/(.*?)"')
|
||||||
logger.info("torrent=" + link)
|
if al_url_fa != "":
|
||||||
|
al_url_fa = "http://www.divxatope1.com/" + al_url_fa
|
||||||
|
logger.info("torrent=" + al_url_fa)
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, action="play", server="torrent", title="Vídeo en torrent", fulltitle=item.title,
|
Item(channel=item.channel, action="play", server="torrent", title="Vídeo en torrent", fulltitle=item.title,
|
||||||
url=link, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False,
|
url=al_url_fa, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False,
|
||||||
parentContent=item))
|
parentContent=item))
|
||||||
|
|
||||||
patron = '<div class=\"box1\"[^<]+<img[^<]+<\/div[^<]+<div class="box2">([^<]+)<\/div[^<]+<div class="box3">([^<]+)'
|
patron = '<div class=\"box1\"[^<]+<img[^<]+<\/div[^<]+<div class="box2">([^<]+)<\/div[^<]+<div class="box3">([^<]+)'
|
||||||
|
|||||||
@@ -5,17 +5,6 @@
|
|||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "http://imgur.com/Madj03A.jpg",
|
"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": [
|
"categories": [
|
||||||
"torrent",
|
"torrent",
|
||||||
"movie",
|
"movie",
|
||||||
@@ -37,6 +26,14 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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"
|
ext_v = ext_v + " -- No reproducible"
|
||||||
size = ""
|
size = ""
|
||||||
return ext_v, 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"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "http://i.imgur.com/qMR9sg9.png",
|
"thumbnail": "http://i.imgur.com/qMR9sg9.png",
|
||||||
"banner": "documaniatv.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": [
|
"categories": [
|
||||||
"documentary"
|
"documentary"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,17 +5,6 @@
|
|||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "http://i.imgur.com/fsrnC4m.jpg",
|
"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": [
|
"categories": [
|
||||||
"documentary"
|
"documentary"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -55,6 +55,14 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": 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()
|
item = Item()
|
||||||
# categoria='peliculas'
|
# categoria='peliculas'
|
||||||
try:
|
try:
|
||||||
if categoria == 'peliculas':
|
if categoria in ['peliculas', 'latino']:
|
||||||
item.url = host +'peliculas/page/1'
|
item.url = host +'peliculas/page/1'
|
||||||
elif categoria == 'infantiles':
|
elif categoria == 'infantiles':
|
||||||
item.url = host + 'categoria/animacion/'
|
item.url = host + 'categoria/animacion/'
|
||||||
@@ -222,9 +222,14 @@ def newest(categoria):
|
|||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
#itemlist = get_url(item)
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
data = re.sub(r'"|\n|\r|\t| |<br>|\s{2,}', "", data)
|
data = re.sub(r'"|\n|\r|\t| |<br>|\s{2,}', "", data)
|
||||||
|
player_vip = scrapertools.find_single_match(data, 'src=(https:\/\/content.jwplatform.com\/players.*?js)')
|
||||||
|
data_m3u8 = httptools.downloadpage(player_vip, headers= {'referer':item.url}).data
|
||||||
|
data_m3u8 = re.sub(r'"|\n|\r|\t| |<br>|\s{2,}', "", data_m3u8)
|
||||||
|
url_m3u8 = scrapertools.find_single_match(data_m3u8,',sources:.*?file: (.*?),')
|
||||||
|
itemlist.append(item.clone(url=url_m3u8, action='play'))
|
||||||
|
|
||||||
patron = 'id=(tab\d+)><div class=movieplay><(?:iframe|script) src=(.*?)(?:scrolling|><\/script>)'
|
patron = 'id=(tab\d+)><div class=movieplay><(?:iframe|script) src=(.*?)(?:scrolling|><\/script>)'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "doramastv.png",
|
"thumbnail": "doramastv.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"tvshow"
|
"tvshow"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -4,21 +4,6 @@
|
|||||||
"active": false,
|
"active": false,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["*"],
|
"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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "ecarteleratrailers.png",
|
"thumbnail": "ecarteleratrailers.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,26 +6,21 @@
|
|||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "elitetorrent.png",
|
"thumbnail": "elitetorrent.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"torrent",
|
"torrent",
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow",
|
"tvshow",
|
||||||
"documentary",
|
"documentary",
|
||||||
"vos"
|
"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))
|
thumbnail=item.thumbnail, plot=item.plot, folder=False))
|
||||||
|
|
||||||
return itemlist
|
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"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "elsenordelanillo.png",
|
"thumbnail": "elsenordelanillo.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,21 +6,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "eporner.png",
|
"thumbnail": "eporner.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "http://www.youfreeporntube.com/uploads/custom-logo.png",
|
"thumbnail": "http://www.youfreeporntube.com/uploads/custom-logo.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,29 +6,6 @@
|
|||||||
"language": ["lat"],
|
"language": ["lat"],
|
||||||
"thumbnail": "https://s24.postimg.org/nsgit7fhh/estadepelis.png",
|
"thumbnail": "https://s24.postimg.org/nsgit7fhh/estadepelis.png",
|
||||||
"banner": "https://s28.postimg.org/ud0l032ul/estadepelis_banner.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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
],
|
],
|
||||||
@@ -54,6 +31,14 @@
|
|||||||
"VOS"
|
"VOS"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "include_in_newest_latino",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Incluir en Novedades - Latino",
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "include_in_newest_peliculas",
|
"id": "include_in_newest_peliculas",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
|
|||||||
@@ -457,7 +457,7 @@ def newest(categoria):
|
|||||||
item = Item()
|
item = Item()
|
||||||
# categoria='peliculas'
|
# categoria='peliculas'
|
||||||
try:
|
try:
|
||||||
if categoria == 'peliculas':
|
if categoria in ['peliculas','latino']:
|
||||||
item.url = host
|
item.url = host
|
||||||
elif categoria == 'infantiles':
|
elif categoria == 'infantiles':
|
||||||
item.url = host + 'search?q=animación'
|
item.url = host + 'search?q=animación'
|
||||||
|
|||||||
@@ -7,21 +7,6 @@
|
|||||||
"fanart": "https://github.com/master-1970/resources/raw/master/images/fanart/estrenosgo.png",
|
"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",
|
"thumbnail": "https://github.com/master-1970/resources/raw/master/images/squares/estrenosgo.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow",
|
"tvshow",
|
||||||
|
|||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"thumbnail": "filesmonster_catalogue.png",
|
"thumbnail": "filesmonster_catalogue.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -4,13 +4,6 @@
|
|||||||
"language": ["*"],
|
"language": ["*"],
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": true,
|
"adult": true,
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "29/04/2017",
|
|
||||||
"description": "Primera versión"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"thumbnail": "http://i.imgur.com/wuzhOCt.png?1",
|
"thumbnail": "http://i.imgur.com/wuzhOCt.png?1",
|
||||||
"categories": [
|
"categories": [
|
||||||
"adult"
|
"adult"
|
||||||
|
|||||||
@@ -4,15 +4,8 @@
|
|||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"version": 1,
|
|
||||||
"thumbnail": "http://gnula.mobi/wp-content/uploads/2016/08/Untitled-6.png",
|
"thumbnail": "http://gnula.mobi/wp-content/uploads/2016/08/Untitled-6.png",
|
||||||
"banner": "",
|
"banner": "",
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "25/08/2017",
|
|
||||||
"description": "Nuevo canal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"adult"
|
"adult"
|
||||||
@@ -25,6 +18,22 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"visible": 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 core.item import Item
|
||||||
from platformcode import logger
|
from platformcode import logger
|
||||||
|
|
||||||
|
host = 'http://gnula.mobi/'
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = list()
|
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",
|
itemlist.append(item.clone(title="Castellano", action="peliculas",
|
||||||
url="http://www.gnula.mobi/tag/espanol/"))
|
url="http://www.gnula.mobi/tag/espanol/"))
|
||||||
itemlist.append(item.clone(title="Latino", action="peliculas", url="http://gnula.mobi/tag/latino/"))
|
itemlist.append(item.clone(title="Latino", action="peliculas", url="http://gnula.mobi/tag/latino/"))
|
||||||
@@ -113,3 +114,25 @@ def findvideos(item):
|
|||||||
def play(item):
|
def play(item):
|
||||||
item.thumbnail = item.contentThumbnail
|
item.thumbnail = item.contentThumbnail
|
||||||
return [item]
|
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"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "gnula.png",
|
"thumbnail": "gnula.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie"
|
"movie"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -51,8 +51,6 @@ def generos(item):
|
|||||||
|
|
||||||
def peliculas(item):
|
def peliculas(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
# Descarga la página
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
patron = '<a class="Ntooltip" href="([^"]+)">([^<]+)<span><br[^<]+'
|
patron = '<a class="Ntooltip" href="([^"]+)">([^<]+)<span><br[^<]+'
|
||||||
patron += '<img src="([^"]+)"></span></a>(.*?)<br'
|
patron += '<img src="([^"]+)"></span></a>(.*?)<br'
|
||||||
@@ -61,25 +59,21 @@ def peliculas(item):
|
|||||||
for scrapedurl, scrapedtitle, scrapedthumbnail, resto in matches:
|
for scrapedurl, scrapedtitle, scrapedthumbnail, resto in matches:
|
||||||
language = []
|
language = []
|
||||||
plot = scrapertools.htmlclean(resto).strip()
|
plot = scrapertools.htmlclean(resto).strip()
|
||||||
logger.debug('plot: %s' % plot)
|
|
||||||
languages = scrapertools.find_multiple_matches(plot, r'\((V.)\)')
|
languages = scrapertools.find_multiple_matches(plot, r'\((V.)\)')
|
||||||
quality = scrapertools.find_single_match(plot, r'(?:\[.*?\].*?)\[(.*?)\]')
|
quality = scrapertools.find_single_match(plot, r'(?:\[.*?\].*?)\[(.*?)\]')
|
||||||
for lang in languages:
|
for lang in languages:
|
||||||
language.append(lang)
|
language.append(lang)
|
||||||
logger.debug('languages: %s' % languages)
|
|
||||||
title = scrapedtitle + " " + plot
|
title = scrapedtitle + " " + plot
|
||||||
contentTitle = scrapedtitle
|
if not scrapedurl.startswith("http"):
|
||||||
url = item.url + scrapedurl
|
scrapedurl = item.url + scrapedurl
|
||||||
itemlist.append(Item(channel = item.channel,
|
itemlist.append(Item(channel = item.channel,
|
||||||
action = 'findvideos',
|
action = 'findvideos',
|
||||||
title = title,
|
title = title,
|
||||||
url = url,
|
url = scrapedurl,
|
||||||
thumbnail = scrapedthumbnail,
|
thumbnail = scrapedthumbnail,
|
||||||
plot = plot,
|
plot = plot,
|
||||||
hasContentDetails = True,
|
contentTitle = scrapedtitle,
|
||||||
contentTitle = contentTitle,
|
|
||||||
contentType = "movie",
|
contentType = "movie",
|
||||||
context = ["buscar_trailer"],
|
|
||||||
language=language,
|
language=language,
|
||||||
quality=quality
|
quality=quality
|
||||||
))
|
))
|
||||||
@@ -89,13 +83,11 @@ def peliculas(item):
|
|||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
logger.info("item=" + item.tostring())
|
logger.info("item=" + item.tostring())
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
# Descarga la página para obtener el argumento
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
item.plot = scrapertools.find_single_match(data, '<div class="entry">(.*?)<div class="iframes">')
|
item.plot = scrapertools.find_single_match(data, '<div class="entry">(.*?)<div class="iframes">')
|
||||||
item.plot = scrapertools.htmlclean(item.plot).strip()
|
item.plot = scrapertools.htmlclean(item.plot).strip()
|
||||||
item.contentPlot = item.plot
|
item.contentPlot = item.plot
|
||||||
patron = 'Ver película online.*?>.*?>([^<]+)'
|
patron = '<strong>Ver película online.*?>.*?>([^<]+)'
|
||||||
scrapedopcion = scrapertools.find_single_match(data, patron)
|
scrapedopcion = scrapertools.find_single_match(data, patron)
|
||||||
titulo_opcional = scrapertools.find_single_match(scrapedopcion, ".*?, (.*)").upper()
|
titulo_opcional = scrapertools.find_single_match(scrapedopcion, ".*?, (.*)").upper()
|
||||||
bloque = scrapertools.find_multiple_matches(data, 'contenedor_tab.*?/table')
|
bloque = scrapertools.find_multiple_matches(data, 'contenedor_tab.*?/table')
|
||||||
|
|||||||
17
plugin.video.alfa/channels/pasateatorrent.json → plugin.video.alfa/channels/grantorrent.json
Executable file → Normal file
17
plugin.video.alfa/channels/pasateatorrent.json → plugin.video.alfa/channels/grantorrent.json
Executable file → Normal file
@@ -1,19 +1,12 @@
|
|||||||
{
|
{
|
||||||
"id": "pasateatorrent",
|
"id": "grantorrent",
|
||||||
"name": "PasateaTorrent",
|
"name": "GranTorrent",
|
||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "http://imgur.com/iLeISt0.png",
|
"thumbnail": "grantorrent.jpg",
|
||||||
"banner": "pasateatorrent.png",
|
"banner": "grantorrent.png",
|
||||||
"fanart": "http://imgur.com/uexmGEg.png",
|
"fanart": "grantorrent.png",
|
||||||
"version": 1,
|
|
||||||
"changes": [
|
|
||||||
{
|
|
||||||
"date": "25/08/2017",
|
|
||||||
"description": "Revamp"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"categories": [
|
"categories": [
|
||||||
"torrent",
|
"torrent",
|
||||||
"movie",
|
"movie",
|
||||||
40
plugin.video.alfa/channels/pasateatorrent.py → plugin.video.alfa/channels/grantorrent.py
Executable file → Normal file
40
plugin.video.alfa/channels/pasateatorrent.py → plugin.video.alfa/channels/grantorrent.py
Executable file → Normal file
@@ -8,10 +8,10 @@ from core import scrapertools
|
|||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
|
||||||
host = "https://pasateatorrent.com/"
|
host = "https://grantorrent.com/"
|
||||||
|
|
||||||
dict_url_seasons = dict()
|
dict_url_seasons = dict()
|
||||||
__modo_grafico__ = config.get_setting('modo_grafico', 'pasateatorrent')
|
__modo_grafico__ = config.get_setting('modo_grafico', 'grantorrent')
|
||||||
|
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
@@ -63,14 +63,14 @@ def search(item, texto):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
url = "%s?s=%s&post_type=Buscar+%s" % (item.url, texto, item.media)
|
url = "%s?s=%s" % (item.url, texto)
|
||||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(url).data)
|
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(url).data)
|
||||||
# logger.debug("data %s \n\n" % data)
|
# logger.debug("data %s \n\n" % data)
|
||||||
|
|
||||||
video_section = scrapertools.find_single_match(data, '<div class="contenedor_imagenes">(.*?)</div><center>')
|
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">' \
|
pattern = '<a href="(?P<url>[^"]+)"><img.*?src="(?P<thumb>[^"]+)".*?class="bloque-inferior">' \
|
||||||
'(?P<title>.*?)</div>'
|
'\s*(?P<title>.*?)\s*</div>'
|
||||||
|
|
||||||
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
||||||
|
|
||||||
@@ -100,12 +100,12 @@ def listado(item):
|
|||||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||||
# logger.debug("data %s \n\n" % data)
|
# logger.debug("data %s \n\n" % data)
|
||||||
|
|
||||||
video_section = scrapertools.find_single_match(data, '<div class="contenedor_imagenes">(.*?)</div><center>')
|
video_section = scrapertools.find_single_match(data, '<br><div class="contenedor-home">(.*?</div>)</div></div>')
|
||||||
# logger.debug("data %s \n\n" % video_section)
|
# logger.debug("data %s \n\n" % video_section)
|
||||||
|
|
||||||
pattern = '<a href="(?P<url>[^"]+)">.*?<img.*?src="(?P<thumb>[^"]+)".*?class="bloque_superior">\s*' \
|
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*' \
|
'(?P<quality>.*?)\s*<div class="imagen-idioma">\s*<img src=".*?icono_(?P<lang>[^\.]+).*?<div class=' \
|
||||||
'</div>.*?class="div_inferior_date">\s*(?P<date>.*?)\s*</div>'
|
'"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)
|
matches = re.compile(pattern, re.DOTALL).findall(video_section)
|
||||||
|
|
||||||
@@ -127,9 +127,9 @@ def listado(item):
|
|||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title2, url=url, thumbnail=thumb,
|
itemlist.append(Item(channel=item.channel, action="findvideos", title=title2, url=url, thumbnail=thumb,
|
||||||
quality=quality, contentTitle=title, contentType="movie"))
|
quality=quality, contentTitle=title, contentType="movie"))
|
||||||
|
|
||||||
pagination = scrapertools.find_single_match(data, '<div class="navigation">(.*?)</ul>')
|
pagination = scrapertools.find_single_match(data, '<div class="nav-links">(.*?)</ul>')
|
||||||
if pagination:
|
if pagination:
|
||||||
next_page = scrapertools.find_single_match(pagination, 'class="active"><a.*?<a.*?href="([^"]+)')
|
next_page = scrapertools.find_single_match(pagination, "class='page-numbers current'.*?<a.*?href='([^']+)'")
|
||||||
# logger.debug("next %s" % next_page)
|
# logger.debug("next %s" % next_page)
|
||||||
if next_page:
|
if next_page:
|
||||||
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=next_page,
|
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=next_page,
|
||||||
@@ -151,7 +151,7 @@ def episodios(item):
|
|||||||
|
|
||||||
d["s_e"] = re.sub(r"\(Contrase.*?\)\s*", "NO REPRODUCIBLE-RAR", d["s_e"])
|
d["s_e"] = re.sub(r"\(Contrase.*?\)\s*", "NO REPRODUCIBLE-RAR", d["s_e"])
|
||||||
title = "%s [%s] %s" % (d["s_e"], d["lang"], quality)
|
title = "%s [%s] %s" % (d["s_e"], d["lang"], quality)
|
||||||
logger.debug("bla %s" % d["s_e"])
|
# logger.debug("%s" % d["s_e"])
|
||||||
|
|
||||||
if "temporada" in d["s_e"].lower():
|
if "temporada" in d["s_e"].lower():
|
||||||
regex = re.compile('temporada\s*', re.I)
|
regex = re.compile('temporada\s*', re.I)
|
||||||
@@ -184,8 +184,8 @@ def get_episodes(item, dict_data):
|
|||||||
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
|
||||||
# logger.debug("data %s \n\n" % data)
|
# logger.debug("data %s \n\n" % data)
|
||||||
if item.contentTitle != "":
|
if item.contentTitle != "":
|
||||||
title = scrapertools.find_single_match(data, '<div class="titulo_page_exit">(.*?)[.]</div>')
|
title = scrapertools.find_single_match(data, '<h3 class="bold">.*?original:\s*(.*?)[.]</h3>')
|
||||||
year = scrapertools.find_single_match(data, '<div class="ano_page_exit">(\d+)</div>')
|
year = scrapertools.find_single_match(data, '<h3 class="bold">\s*Estreno:\s*(\d+)[.]</h')
|
||||||
# logger.debug("title es %s" % title)
|
# logger.debug("title es %s" % title)
|
||||||
if title:
|
if title:
|
||||||
item.contentTitle = title
|
item.contentTitle = title
|
||||||
@@ -194,10 +194,10 @@ def get_episodes(item, dict_data):
|
|||||||
item.infoLabels['year'] = year
|
item.infoLabels['year'] = year
|
||||||
|
|
||||||
links_section = scrapertools.find_single_match(data, 'div id="Tokyo" [^>]+>(.*?)</div>')
|
links_section = scrapertools.find_single_match(data, 'div id="Tokyo" [^>]+>(.*?)</div>')
|
||||||
# logger.debug("data %s \n\n" % data)
|
# 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>' \
|
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<s_e>.*?)</td><td>(?P<quality>.*?)</td><td>' \
|
||||||
'<a href="(?P<url>[^"]+)"'
|
'<a class="link" href="(?P<url>[^"]+)"'
|
||||||
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
||||||
for lang, s_e, quality, url in matches:
|
for lang, s_e, quality, url in matches:
|
||||||
if s_e + lang not in dict_data:
|
if s_e + lang not in dict_data:
|
||||||
@@ -208,11 +208,11 @@ def get_episodes(item, dict_data):
|
|||||||
dict_data[s_e + lang]["quality"].append(quality)
|
dict_data[s_e + lang]["quality"].append(quality)
|
||||||
dict_data[s_e + lang]["url"].append(url)
|
dict_data[s_e + lang]["url"].append(url)
|
||||||
|
|
||||||
url_to_check = scrapertools.find_single_match(links_section, '</table><p><a .*?href="([^"]+)">Temporada.*?</a>')
|
url_to_check = scrapertools.find_single_match(links_section, '</table><p><a.*?href="([^"]+)".*?>\s*Temporada.*?</a>')
|
||||||
# logger.debug("url es %s " % url_to_check)
|
# logger.debug("url es %s " % url_to_check)
|
||||||
|
|
||||||
# if url doesn't exist we add it into the dict
|
# if url doesn't exist we add it into the dict
|
||||||
if url_to_check not in dict_url_seasons:
|
if url_to_check and url_to_check not in dict_url_seasons:
|
||||||
dict_url_seasons[url_to_check] = False
|
dict_url_seasons[url_to_check] = False
|
||||||
|
|
||||||
for key, value in dict_url_seasons.items():
|
for key, value in dict_url_seasons.items():
|
||||||
@@ -249,7 +249,7 @@ def findvideos(item):
|
|||||||
# logger.debug("data %s \n\n" % data)
|
# logger.debug("data %s \n\n" % data)
|
||||||
|
|
||||||
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<quality>.*?)</td><td>(?P<size>.*?)</td><td>' \
|
pattern = 'icono_.*?png" title="(?P<lang>.*?)" [^>]+></td><td>(?P<quality>.*?)</td><td>(?P<size>.*?)</td><td>' \
|
||||||
'<a href="(?P<url>[^"]+)"'
|
'<a class="link" href="(?P<url>[^"]+)"'
|
||||||
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
matches = re.compile(pattern, re.DOTALL).findall(links_section)
|
||||||
|
|
||||||
for lang, quality, size, url in matches:
|
for lang, quality, size, url in matches:
|
||||||
@@ -6,17 +6,6 @@
|
|||||||
"language": ["cast"],
|
"language": ["cast"],
|
||||||
"thumbnail": "guaridavalencianista.png",
|
"thumbnail": "guaridavalencianista.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"documentary"
|
"documentary"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,29 +6,6 @@
|
|||||||
"language": ["cast", "lat"],
|
"language": ["cast", "lat"],
|
||||||
"thumbnail": "hdfull.png",
|
"thumbnail": "hdfull.png",
|
||||||
"banner": "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": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow"
|
"tvshow"
|
||||||
|
|||||||
@@ -310,7 +310,8 @@ def fichas(item):
|
|||||||
|
|
||||||
for scrapedurl, scrapedthumbnail, scrapedlangs, scrapedrating, scrapedtitle, scrapedid in matches:
|
for scrapedurl, scrapedthumbnail, scrapedlangs, scrapedrating, scrapedtitle, scrapedid in matches:
|
||||||
|
|
||||||
thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/")
|
#thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/")
|
||||||
|
thumbnail = scrapedthumbnail
|
||||||
language = ''
|
language = ''
|
||||||
title = scrapedtitle.strip()
|
title = scrapedtitle.strip()
|
||||||
show = title
|
show = title
|
||||||
@@ -692,12 +693,10 @@ def findvideos(item):
|
|||||||
fanart = scrapertools.find_single_match(data, '<div style="background-image.url. ([^\s]+)')
|
fanart = scrapertools.find_single_match(data, '<div style="background-image.url. ([^\s]+)')
|
||||||
if account:
|
if account:
|
||||||
url += "###" + id + ";" + type
|
url += "###" + id + ";" + type
|
||||||
|
|
||||||
it2.append(
|
it2.append(
|
||||||
item.clone(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail,
|
item.clone(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail,
|
||||||
plot=plot, fanart=fanart, show=item.show, folder=True, infoLabels=infolabels,
|
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 = servertools.get_servers_itemlist(it2, lambda i: i.title % i.server.capitalize())
|
||||||
it2.sort(key=lambda it: (it.tipo1, it.idioma, it.server))
|
it2.sort(key=lambda it: (it.tipo1, it.idioma, it.server))
|
||||||
for item in it2:
|
for item in it2:
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user