diff --git a/plugin.video.alfa/channels/animeflv.py b/plugin.video.alfa/channels/animeflv.py
index 14787bcc..de6d7901 100644
--- a/plugin.video.alfa/channels/animeflv.py
+++ b/plugin.video.alfa/channels/animeflv.py
@@ -181,7 +181,7 @@ def episodios(item):
itemlist.append(item.clone(title=title, url=url, action='findvideos', show=info[1]))
itemlist = itemlist[::-1]
if config.get_videolibrary_support() and len(itemlist) > 0:
- itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca",
+ itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca", url=item.url,
action="add_serie_to_library", extra="episodios"))
return itemlist
diff --git a/plugin.video.alfa/channels/bloghorror.py b/plugin.video.alfa/channels/bloghorror.py
index 0004b752..210c62bb 100644
--- a/plugin.video.alfa/channels/bloghorror.py
+++ b/plugin.video.alfa/channels/bloghorror.py
@@ -30,8 +30,8 @@ def mainlist(item):
itemlist = []
- itemlist.append(Item(channel=item.channel, fanart=fanart, title="Todas", action="list_all", url=host,
- thumbnail=get_thumb('all', auto=True)))
+ itemlist.append(Item(channel=item.channel, fanart=fanart, title="Todas", action="list_all",
+ url=host+'/category/terror', thumbnail=get_thumb('all', auto=True)))
itemlist.append(Item(channel=item.channel, fanart=fanart, title="Asiaticas", action="list_all",
url=host+'/category/asiatico', thumbnail=get_thumb('asiaticas', auto=True)))
diff --git a/plugin.video.alfa/channels/canalpelis.py b/plugin.video.alfa/channels/canalpelis.py
index cbea6079..3a4a8b5a 100644
--- a/plugin.video.alfa/channels/canalpelis.py
+++ b/plugin.video.alfa/channels/canalpelis.py
@@ -348,31 +348,38 @@ def episodios(item):
return itemlist
-
def findvideos(item):
logger.info()
+ from lib import generictools
+ import urllib
+ import base64
itemlist = []
-
data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\(.*?\)|\s{2}| ", "", data)
- patron = '
%s - (\d+)
' % season
- patron += '%s+ - (\d+)
' % season
+ patron += '(.*?)<'
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedthumbnail, scrapedepi, scrapedurl, scrapedtitle in matches:
@@ -156,24 +156,29 @@ def episodesxseason(item):
def findvideos(item):
logger.info()
-
+ from lib import generictools
+ import urllib
itemlist = []
-
data = get_source(item.url)
- patron = 'id=([^ ]+) class=play-box-iframe .*?src=(.*?) frameborder=0.*?'
+ patron = 'data-post="(\d+)" data-nume="(\d+)".*?img src=\'([^\']+)\''
matches = re.compile(patron, re.DOTALL).findall(data)
+ for id, option, lang in matches:
+ lang = scrapertools.find_single_match(lang, '.*?/flags/(.*?).png')
+ if lang == 'ar':
+ lang = 'lat'
+ post = {'action': 'doo_player_ajax', 'post': id, 'nume': option, 'type':'tv'}
+ post = urllib.urlencode(post)
- for option, scrapedurl in matches:
- #language = scrapertools.find_single_match(data, '#%s.*?dt_flag>
.png')
Resultados encontrados:(.*?)genres')
+ patron = '
(\d{4}).*?([^<]+)
'
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedtitle, year, scrapedplot in matches:
diff --git a/plugin.video.alfa/channels/tupelicula.json b/plugin.video.alfa/channels/tupelicula.json
new file mode 100644
index 00000000..48edd0bc
--- /dev/null
+++ b/plugin.video.alfa/channels/tupelicula.json
@@ -0,0 +1,77 @@
+{
+ "id": "tupelicula",
+ "name": "TuPelicula",
+ "active": true,
+ "adult": false,
+ "language": ["lat", "cast", "*"],
+ "thumbnail": "https://i.postimg.cc/W4TbdCDP/tupelicula.png",
+ "banner": "",
+ "categories": [
+ "movie",
+ "vos"
+ ],
+ "settings": [
+ {
+ "id": "include_in_global_search",
+ "type": "bool",
+ "label": "Incluir en busqueda global",
+ "default": false,
+ "enabled": false,
+ "visible": false
+ },
+ {
+ "id": "include_in_newest_peliculas",
+ "type": "bool",
+ "label": "Incluir en Novedades - Peliculas",
+ "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_newest_castellano",
+ "type": "bool",
+ "label": "Incluir en Novedades - Castellano",
+ "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
+ },
+ {
+ "id": "filter_languages",
+ "type": "list",
+ "label": "Mostrar enlaces en idioma...",
+ "default": 0,
+ "enabled": true,
+ "visible": true,
+ "lvalues": [
+ "No filtrar",
+ "LAT",
+ "CAST",
+ "VOSE"
+ ]
+ }
+ ]
+}
diff --git a/plugin.video.alfa/channels/tupelicula.py b/plugin.video.alfa/channels/tupelicula.py
new file mode 100644
index 00000000..592d4710
--- /dev/null
+++ b/plugin.video.alfa/channels/tupelicula.py
@@ -0,0 +1,205 @@
+# -*- coding: utf-8 -*-
+# -*- Channel TuPelicula -*-
+# -*- Created for Alfa-addon -*-
+# -*- By the Alfa Develop Group -*-
+
+import re
+
+from channels import autoplay
+from channels import filtertools
+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 channelselector import get_thumb
+
+host = 'http://www.tupelicula.tv/'
+
+IDIOMAS = {'la_la': 'LAT', 'es_es':'CAST', 'en_es':'VOSE', 'en_en':'VO'}
+list_language = IDIOMAS.values()
+list_quality = []
+list_servers = ['xdrive', 'bitertv', 'okru']
+
+def get_source(url, referer=None):
+ logger.info()
+ if referer is None:
+ data = httptools.downloadpage(url).data
+ else:
+ data = httptools.downloadpage(url, headers={'Referer':referer}).data
+ data = re.sub(r'\n|\r|\t| |
|\s{2,}', "", data)
+ return data
+
+def mainlist(item):
+ logger.info()
+
+ autoplay.init(item.channel, list_servers, list_quality)
+ itemlist = []
+
+ itemlist.append(Item(channel=item.channel, title="Todas", action="list_all", url=host,
+ thumbnail=get_thumb('all', auto=True)))
+
+ itemlist.append(Item(channel=item.channel, title="Castellano", action="list_all", url=host+'filter?language=1',
+ thumbnail=get_thumb('cast', auto=True)))
+
+ itemlist.append(Item(channel=item.channel, title="Latino", action="list_all", url=host + 'filter?language=2',
+ thumbnail=get_thumb('lat', auto=True)))
+
+ itemlist.append(Item(channel=item.channel, title="VOSE", action="list_all", url=host + 'filter?language=4',
+ thumbnail=get_thumb('vose', auto=True)))
+
+ itemlist.append(Item(channel=item.channel, title="Generos", action="section",
+ thumbnail=get_thumb('genres', auto=True)))
+
+ itemlist.append(Item(channel=item.channel, title="Por Años", action="section",
+ thumbnail=get_thumb('year', auto=True)))
+
+ itemlist.append(Item(channel=item.channel, title = 'Buscar', action="search", url=host + 'search?q=',
+ thumbnail=get_thumb('search', auto=True)))
+
+ autoplay.show_option(item.channel, itemlist)
+
+ return itemlist
+
+
+def list_all(item):
+ logger.info()
+
+ itemlist = []
+
+ full_data = get_source(item.url)
+ data = scrapertools.find_single_match(full_data, '')
+ patron = '
(.*?)"label_year">(\d{4}) •([^<]+)<'
+
+ matches = re.compile(patron, re.DOTALL).findall(data)
+
+ for scrapedurl, scrapedthumbnail, scrapedtitle, lang_data, year, genre in matches:
+ url = scrapedurl
+ scrapedtitle = scrapertools.find_single_match(scrapedtitle, '([^\(]+)')
+ lang = get_language(lang_data)
+ thumbnail = 'https:'+scrapedthumbnail
+ if genre.lower() not in ['adultos', 'erotico'] or config.get_setting('adult_mode') > 0:
+ itemlist.append(Item(channel=item.channel, title=scrapedtitle, url=url, action='findvideos',
+ thumbnail=thumbnail, contentTitle=scrapedtitle, language = lang,
+ infoLabels={'year':year}))
+
+ tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
+
+ # Paginacion
+
+ if itemlist != []:
+
+ next_page = scrapertools.find_single_match(full_data, '')
+ if next_page != '':
+ itemlist.append(Item(channel=item.channel, action="list_all", title='Siguiente >>>', url=next_page))
+
+ return itemlist
+
+
+
+def section(item):
+ logger.info()
+
+ itemlist = []
+ data=get_source(host)
+ if item.title == 'Generos':
+ data = scrapertools.find_single_match(data, '>Películas por género (.*?)')
+ patron = '.?([^<]+)'
+
+ matches = re.compile(patron, re.DOTALL).findall(data)
+
+ for url, title in matches:
+ if title.lower() not in ['adultos', 'erotico'] or config.get_setting('adult_mode') > 0:
+ itemlist.append(Item(channel=item.channel, title=title, url=url, action='list_all'))
+
+ return itemlist
+
+def get_language(lang_data):
+ logger.info()
+ language = []
+
+ lang_list = scrapertools.find_multiple_matches(lang_data, '/flags/(.*?).png"?')
+ for lang in lang_list:
+ lang = IDIOMAS[lang]
+ if lang not in language:
+ language.append(lang)
+ return language
+
+def findvideos(item):
+ logger.info()
+
+ itemlist = []
+ data = get_source(item.url)
+ player = scrapertools.find_single_match(data, '