@@ -345,13 +345,13 @@ def temporadas(item):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
templist = []
|
templist = []
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
|
data = data.replace ('"',"'")
|
||||||
realplot = ''
|
realplot = ''
|
||||||
patron = "<button class='classnamer' onclick='javascript: mostrarcapitulos.*?blank'>([^<]+)</button>"
|
patron = "<button class='classnamer' onclick='javascript: mostrarcapitulos.*?blank'>([^<]+)<\/button>"
|
||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
serieid = scrapertools.find_single_match(data, 'data-nonce="(.*?)"')
|
serieid = scrapertools.find_single_match(data, "data-nonce='(.*?)'")
|
||||||
|
|
||||||
item.thumbnail = item.thumbvid
|
item.thumbnail = item.thumbvid
|
||||||
infoLabels = item.infoLabels
|
infoLabels = item.infoLabels
|
||||||
for scrapedtitle in matches:
|
for scrapedtitle in matches:
|
||||||
@@ -408,6 +408,7 @@ def episodiosxtemp(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
|
data = data.replace('"', "'")
|
||||||
patron = "<button class='classnamer' onclick='javascript: mostrarenlaces\(([^\)]+)\).*?<"
|
patron = "<button class='classnamer' onclick='javascript: mostrarenlaces\(([^\)]+)\).*?<"
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
@@ -640,7 +641,7 @@ def play(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
if 'streamplay' not in item.server or 'streame' not in item.server:
|
if item.server not in ['streamplay','streame']:
|
||||||
url = scrapertools.find_single_match(data, '<(?:IFRAME|iframe).*?(?:SRC|src)=*([^ ]+) (?!style|STYLE)')
|
url = scrapertools.find_single_match(data, '<(?:IFRAME|iframe).*?(?:SRC|src)=*([^ ]+) (?!style|STYLE)')
|
||||||
else:
|
else:
|
||||||
url = scrapertools.find_single_match(data, '<meta http-equiv="refresh" content="0; url=([^"]+)">')
|
url = scrapertools.find_single_match(data, '<meta http-equiv="refresh" content="0; url=([^"]+)">')
|
||||||
|
|||||||
@@ -1,182 +1,185 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# -*- Channel TVSeriesdk -*-
|
# -*- Channel TVSeriesdk -*-
|
||||||
# -*- Created for Alfa-addon -*-
|
# -*- Created for Alfa-addon -*-
|
||||||
# -*- By the Alfa Develop Group -*-
|
# -*- By the Alfa Develop Group -*-
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from core import httptools
|
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
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
|
||||||
host = 'http://www.tvseriesdk.com/'
|
host = 'http://www.tvseriesdk.com/'
|
||||||
|
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
itemlist = list()
|
itemlist = list()
|
||||||
itemlist.append(item.clone(title="Ultimos", action="last_episodes", url=host))
|
itemlist.append(item.clone(title="Ultimos", action="last_episodes", url=host))
|
||||||
itemlist.append(item.clone(title="Todas", action="list_all", url=host))
|
itemlist.append(item.clone(title="Todas", action="list_all", url=host))
|
||||||
itemlist.append(item.clone(title="Buscar", action="search", url='http://www.tvseriesdk.com/index.php?s='))
|
itemlist.append(item.clone(title="Buscar", action="search", url='http://www.tvseriesdk.com/index.php?s='))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def get_source(url):
|
def get_source(url):
|
||||||
logger.info()
|
logger.info()
|
||||||
data = httptools.downloadpage(url).data
|
data = httptools.downloadpage(url).data
|
||||||
data = re.sub(r'"|\n|\r|\t| |<br>|\s{2,}', "", data)
|
data = re.sub(r'"|\n|\r|\t| |<br>|\s{2,}', "", data)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def list_all(item):
|
def list_all(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
global i
|
global i
|
||||||
templist = []
|
templist = []
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
|
|
||||||
patron = '<li class=cat-item cat-item-\d+><a href=(.*?) title=(.*?)>(.*?)<\/a>'
|
patron = '<li class=cat-item cat-item-\d+><a href=(.*?) title=(.*?)>(.*?)<\/a>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
if len(matches) > 10:
|
if len(matches) > 10:
|
||||||
if item.next_page != 10:
|
if item.next_page != 10:
|
||||||
url_next_page = item.url
|
url_next_page = item.url
|
||||||
matches = matches[:10]
|
matches = matches[:10]
|
||||||
next_page = 10
|
next_page = 10
|
||||||
item.i = 0
|
item.i = 0
|
||||||
else:
|
else:
|
||||||
patron = matches[item.i:][:10]
|
patron = matches[item.i:][:10]
|
||||||
next_page = 10
|
next_page = 10
|
||||||
|
|
||||||
url_next_page = item.url
|
url_next_page = item.url
|
||||||
|
|
||||||
for scrapedurl, scrapedplot, scrapedtitle in matches:
|
for scrapedurl, scrapedplot, scrapedtitle in matches:
|
||||||
url = scrapedurl
|
url = scrapedurl
|
||||||
plot = scrapedplot
|
plot = scrapedplot
|
||||||
contentSerieName = scrapedtitle
|
contentSerieName = scrapedtitle
|
||||||
title = contentSerieName
|
title = contentSerieName
|
||||||
|
|
||||||
templist.append(item.clone(action='episodios',
|
templist.append(item.clone(action='episodios',
|
||||||
title=title,
|
title=title,
|
||||||
url=url,
|
url=url,
|
||||||
thumbnail='',
|
thumbnail='',
|
||||||
plot=plot,
|
plot=plot,
|
||||||
contentErieName=contentSerieName
|
contentErieName=contentSerieName
|
||||||
))
|
))
|
||||||
itemlist = get_thumb(templist)
|
itemlist = get_thumb(templist)
|
||||||
# Paginación
|
# Paginación
|
||||||
if url_next_page:
|
if url_next_page:
|
||||||
itemlist.append(item.clone(title="Siguiente >>", url=url_next_page, next_page=next_page, i=item.i))
|
itemlist.append(item.clone(title="Siguiente >>", url=url_next_page, next_page=next_page, i=item.i))
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def last_episodes(item):
|
def last_episodes(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
patron = '<div class=pelis>.*?<a href=(.*?) title=(.*?)><img src=(.*?) alt='
|
patron = '<div class=pelis>.*?<a href=(.*?) title=(.*?)><img src=(.*?) alt='
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
||||||
url = scrapedurl
|
url = scrapedurl
|
||||||
title = scrapedtitle
|
title = scrapedtitle
|
||||||
thumbnail = scrapedthumbnail
|
thumbnail = scrapedthumbnail
|
||||||
|
|
||||||
itemlist.append(item.clone(action='findvideos',
|
itemlist.append(item.clone(action='findvideos',
|
||||||
title=title,
|
title=title,
|
||||||
url=url,
|
url=url,
|
||||||
thumbnail=thumbnail
|
thumbnail=thumbnail
|
||||||
))
|
))
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def episodios(item):
|
def episodios(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
patron = '<a href=(.*?) class=lcc>(.*?)<\/a>'
|
patron = '<a href=(.*?) class=lcc>(.*?)<\/a>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
n_ep = 1
|
n_ep = 1
|
||||||
for scrapedurl, scrapedtitle in matches[::-1]:
|
for scrapedurl, scrapedtitle in matches[::-1]:
|
||||||
url = scrapedurl
|
url = scrapedurl
|
||||||
scrapedtitle = re.sub(r'Capítulo \d+', '', scrapedtitle)
|
scrapedtitle = re.sub(r'Capítulo \d+', '', scrapedtitle)
|
||||||
title = '1x%s - %s' % (n_ep, scrapedtitle)
|
title = '1x%s - %s' % (n_ep, scrapedtitle)
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
item.clone(action='findvideos', title=title, url=url, contentEpisodeNumber=n_ep, contentSeasonNumber='1'))
|
item.clone(action='findvideos', title=title, url=url, contentEpisodeNumber=n_ep, contentSeasonNumber='1'))
|
||||||
n_ep += 1
|
n_ep += 1
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def get_thumb(itemlist):
|
def get_thumb(itemlist):
|
||||||
logger.info()
|
logger.info()
|
||||||
for item in itemlist:
|
for item in itemlist:
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
item.thumbnail = scrapertools.find_single_match(data, '<div class=sinope><img src=(.*?) alt=')
|
item.thumbnail = scrapertools.find_single_match(data, '<div class=sinope><img src=(.*?) alt=')
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def search_list(item):
|
def search_list(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
patron = 'img title.*?src=(.*?) width=.*?class=tisearch><a href=(.*?)>(.*?)<\/a>'
|
patron = 'img title.*?src=(.*?) width=.*?class=tisearch><a href=(.*?)>(.*?)<\/a>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
for scrapedthumb, scrapedurl, scrapedtitle in matches:
|
for scrapedthumb, scrapedurl, scrapedtitle in matches:
|
||||||
title = scrapedtitle
|
title = scrapedtitle
|
||||||
url = scrapedurl
|
url = scrapedurl
|
||||||
thumbnail = scrapedthumb
|
thumbnail = scrapedthumb
|
||||||
itemlist.append(item.clone(title=title, url=url, thumbnail=thumbnail, action='findvideos'))
|
itemlist.append(item.clone(title=title, url=url, thumbnail=thumbnail, action='findvideos'))
|
||||||
# Pagination < link
|
# Pagination < link
|
||||||
next_page = scrapertools.find_single_match(data, '<link rel=next href=(.*?) />')
|
next_page = scrapertools.find_single_match(data, '<link rel=next href=(.*?) />')
|
||||||
if next_page:
|
if next_page:
|
||||||
itemlist.append(Item(channel=item.channel, action="search_list", title='>> Pagina Siguiente', url=next_page,
|
itemlist.append(Item(channel=item.channel, action="search_list", title='>> Pagina Siguiente', url=next_page,
|
||||||
thumbnail=config.get_thumb("thumb_next.png")))
|
thumbnail=config.get_thumb("thumb_next.png")))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def search(item, texto):
|
def search(item, texto):
|
||||||
logger.info()
|
logger.info()
|
||||||
texto = texto.replace(" ", "+")
|
texto = texto.replace(" ", "+")
|
||||||
item.url = item.url + texto
|
item.url = item.url + texto
|
||||||
|
|
||||||
if texto != '':
|
if texto != '':
|
||||||
return search_list(item)
|
return search_list(item)
|
||||||
else:
|
else:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
servers = {'netu': 'http://hqq.tv/player/embed_player.php?vid=',
|
servers = {'netu': 'http://hqq.tv/player/embed_player.php?vid=',
|
||||||
'open': 'https://openload.co/embed/',
|
'open': 'https://openload.co/embed/',
|
||||||
'netv': 'http://goo.gl/',
|
'netv': 'http://goo.gl/',
|
||||||
'gamo': 'http://gamovideo.com/embed-',
|
'gamo': 'http://gamovideo.com/embed-',
|
||||||
'powvideo': 'http://powvideo.net/embed-',
|
'powvideo': 'http://powvideo.net/embed-',
|
||||||
'play': 'http://streamplay.to/embed-',
|
'play': 'http://streamplay.to/embed-',
|
||||||
'vido': 'http://vidoza.net/embed-'}
|
'vido': 'http://vidoza.net/embed-'}
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
patron = 'id=tab\d+.*?class=tab_content><script>(.*?)\((.*?)\)<\/script>'
|
noemitido = scrapertools.find_single_match(data, '<p><img src=(http://darkiller.com/images/subiendo.png) border=0\/><\/p>')
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
patron = 'id=tab\d+.*?class=tab_content><script>(.*?)\((.*?)\)<\/script>'
|
||||||
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
for server, video_id in matches:
|
|
||||||
if server not in ['gamo', 'powvideo', 'play', 'vido', 'netv']:
|
if not noemitido:
|
||||||
url = servers[server] + video_id
|
for server, video_id in matches:
|
||||||
elif server == 'netv':
|
if server not in ['gamo', 'powvideo', 'play', 'vido', 'netv']:
|
||||||
url = get_source(servers[server] + video_id)
|
url = servers[server] + video_id
|
||||||
else:
|
elif server == 'netv':
|
||||||
url = servers[server] + video_id + '.html'
|
url = get_source(servers[server] + video_id)
|
||||||
|
else:
|
||||||
itemlist.extend(servertools.find_video_items(data=url))
|
url = servers[server] + video_id + '.html'
|
||||||
for videoitem in itemlist:
|
|
||||||
videoitem.channel = item.channel
|
itemlist.extend(servertools.find_video_items(data=url))
|
||||||
videoitem.title = item.title + ' (%s)' % videoitem.server
|
for videoitem in itemlist:
|
||||||
videoitem.action = 'play'
|
videoitem.channel = item.channel
|
||||||
|
videoitem.title = item.title + ' (%s)' % videoitem.server
|
||||||
return itemlist
|
videoitem.action = 'play'
|
||||||
|
else:
|
||||||
|
itemlist.append(item.clone(title = 'Este capitulo aun no esta disponible', action='', url=''))
|
||||||
|
return itemlist
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
"version": 1,
|
"version": 1,
|
||||||
"categories": [
|
"categories": [
|
||||||
"movie",
|
"movie",
|
||||||
"latino",
|
"latino"
|
||||||
"direct"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,7 @@ from core import servertools
|
|||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
|
||||||
host = "http://ver-peliculas.io/"
|
host = "http://ver-peliculas.org/"
|
||||||
|
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
@@ -156,18 +156,18 @@ def findvideos(item):
|
|||||||
|
|
||||||
data = get_source(item.url)
|
data = get_source(item.url)
|
||||||
video_info = scrapertools.find_single_match(data, "load_player\('(.*?)','(.*?)'\);")
|
video_info = scrapertools.find_single_match(data, "load_player\('(.*?)','(.*?)'\);")
|
||||||
movie_info = scrapertools.find_single_match(item.url, 'http:\/\/ver-peliculas\.io\/peliculas\/(\d+)-(.*?)-\d{'
|
movie_info = scrapertools.find_single_match(item.url, 'http:\/\/ver-peliculas\.org\/peliculas\/(\d+)-(.*?)-\d{'
|
||||||
'4}-online\.')
|
'4}-online\.')
|
||||||
movie_id = movie_info[0]
|
movie_id = movie_info[0]
|
||||||
movie_name = movie_info[1]
|
movie_name = movie_info[1]
|
||||||
sub = video_info[1]
|
sub = video_info[1]
|
||||||
url_base = 'http://ver-peliculas.io/core/api.php?id=%s&slug=%s' % (movie_id, movie_name)
|
url_base = 'http://ver-peliculas.org/core/api.php?id=%s&slug=%s' % (movie_id, movie_name)
|
||||||
data = httptools.downloadpage(url_base).data
|
data = httptools.downloadpage(url_base).data
|
||||||
json_data = jsontools.load(data)
|
json_data = jsontools.load(data)
|
||||||
video_list = json_data['lista']
|
video_list = json_data['lista']
|
||||||
itemlist = []
|
itemlist = []
|
||||||
for videoitem in video_list:
|
for videoitem in video_list:
|
||||||
video_base_url = 'http://ver-peliculas.io/core/videofinal.php'
|
video_base_url = 'http://ver-peliculas.org/core/videofinal.php'
|
||||||
if video_list[videoitem] != None:
|
if video_list[videoitem] != None:
|
||||||
video_lang = video_list[videoitem]
|
video_lang = video_list[videoitem]
|
||||||
languages = ['latino', 'spanish', 'subtitulos']
|
languages = ['latino', 'spanish', 'subtitulos']
|
||||||
@@ -184,12 +184,12 @@ def findvideos(item):
|
|||||||
|
|
||||||
for video_link in sources:
|
for video_link in sources:
|
||||||
url = video_link['sources']
|
url = video_link['sources']
|
||||||
if 'onevideo' in url:
|
# if 'onevideo' in url:
|
||||||
data = get_source(url)
|
# data = get_source(url)
|
||||||
g_urls = servertools.findvideos(data=data)
|
# g_urls = servertools.findvideos(data=data)
|
||||||
url = g_urls[0][1]
|
# url = g_urls[0][1]
|
||||||
server = g_urls[0][0]
|
# server = g_urls[0][0]
|
||||||
if url not in duplicated:
|
if url not in duplicated and server!='drive':
|
||||||
lang = lang.capitalize()
|
lang = lang.capitalize()
|
||||||
if lang == 'Spanish':
|
if lang == 'Spanish':
|
||||||
lang = 'Español'
|
lang = 'Español'
|
||||||
|
|||||||
@@ -26,12 +26,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
|||||||
referer = re.sub(r"embed-|player-", "", page_url)[:-5]
|
referer = re.sub(r"embed-|player-", "", page_url)[:-5]
|
||||||
data = httptools.downloadpage(page_url, headers={'Referer': referer}).data
|
data = httptools.downloadpage(page_url, headers={'Referer': referer}).data
|
||||||
|
|
||||||
for list in scrapertools.find_multiple_matches(data, '_[^=]+=(\[[^\]]+\]);'):
|
|
||||||
if len(list) == 703 or len(list) == 711:
|
|
||||||
key = "".join(eval(list)[7:9])
|
|
||||||
break
|
|
||||||
if key.startswith("embed"):
|
|
||||||
key = key[6:] + key[:6]
|
|
||||||
matches = scrapertools.find_single_match(data, "<script type=[\"']text/javascript[\"']>(eval.*?)</script>")
|
matches = scrapertools.find_single_match(data, "<script type=[\"']text/javascript[\"']>(eval.*?)</script>")
|
||||||
data = jsunpack.unpack(matches).replace("\\", "")
|
data = jsunpack.unpack(matches).replace("\\", "")
|
||||||
|
|
||||||
@@ -40,7 +35,8 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
|||||||
video_urls = []
|
video_urls = []
|
||||||
for video_url in matches:
|
for video_url in matches:
|
||||||
_hash = scrapertools.find_single_match(video_url, '[A-z0-9\_\-]{40,}')
|
_hash = scrapertools.find_single_match(video_url, '[A-z0-9\_\-]{40,}')
|
||||||
hash = decrypt(_hash, key)
|
hash = _hash[::-1]
|
||||||
|
hash = hash.replace(hash[2:3],"",1)
|
||||||
video_url = video_url.replace(_hash, hash)
|
video_url = video_url.replace(_hash, hash)
|
||||||
|
|
||||||
filename = scrapertools.get_filename_from_url(video_url)[-4:]
|
filename = scrapertools.get_filename_from_url(video_url)[-4:]
|
||||||
|
|||||||
Reference in New Issue
Block a user