Merge pull request #39 from Alfa-beto/Fixes

Fixes Varios
This commit is contained in:
Alfa
2017-08-17 01:56:38 +02:00
committed by GitHub
5 changed files with 204 additions and 205 deletions
+5 -4
View File
@@ -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=([^"]+)">')
+185 -182
View File
@@ -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|&nbsp;|<br>|\s{2,}', "", data) data = re.sub(r'"|\n|\r|\t|&nbsp;|<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"
] ]
} }
+10 -10
View File
@@ -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'
+3 -7
View File
@@ -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:]