Actualizados
Danimados: Corrección en enlaces <Terror 2018>: Eliminado fanart actualizado httptools: agregado parametro: ignore_response_code mediafire: fix enlaces mp4upload: patron actualizado vevio: patron actualizado
This commit is contained in:
@@ -171,6 +171,8 @@ def findvideos(item):
|
|||||||
data1 = httptools.downloadpage(host + "wp-admin/admin-ajax.php", headers=headers, post=post).data
|
data1 = httptools.downloadpage(host + "wp-admin/admin-ajax.php", headers=headers, post=post).data
|
||||||
url1 = scrapertools.find_single_match(data1, "src='([^']+)")
|
url1 = scrapertools.find_single_match(data1, "src='([^']+)")
|
||||||
url1 = devuelve_enlace(url1)
|
url1 = devuelve_enlace(url1)
|
||||||
|
if "drive.google" in url1:
|
||||||
|
url1 = url1.replace("view","preview")
|
||||||
if url1:
|
if url1:
|
||||||
itemlist.append(item.clone(title="Ver en %s",url=url1, action="play"))
|
itemlist.append(item.clone(title="Ver en %s",url=url1, action="play"))
|
||||||
tmdb.set_infoLabels(itemlist)
|
tmdb.set_infoLabels(itemlist)
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "special",
|
|
||||||
"name": "<Terror 2018>",
|
|
||||||
"active": true,
|
|
||||||
"adult": false,
|
|
||||||
"language": [],
|
|
||||||
"thumbnail": "https://i.postimg.cc/FR2nygS0/g4567.png",
|
|
||||||
"banner": "",
|
|
||||||
"categories": [
|
|
||||||
"movie"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# -*- Channel Halloween -*-
|
|
||||||
# -*- 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 jsontools
|
|
||||||
from core import tmdb
|
|
||||||
from core.item import Item
|
|
||||||
from platformcode import config, logger
|
|
||||||
from channelselector import get_thumb
|
|
||||||
|
|
||||||
host = 'https://www.imdb.com/list/ls027655523/?sort=list_order,asc&st_dt=&mode=detail&page='
|
|
||||||
|
|
||||||
|
|
||||||
def get_source(url):
|
|
||||||
logger.info()
|
|
||||||
data = httptools.downloadpage(url).data
|
|
||||||
data = re.sub(r'\n|\r|\t| |<br>|\s{2,}', "", data)
|
|
||||||
return data
|
|
||||||
|
|
||||||
def mainlist(item):
|
|
||||||
logger.info()
|
|
||||||
item.url = host
|
|
||||||
item.first = 60
|
|
||||||
item.last = 80
|
|
||||||
item.page = 1
|
|
||||||
return list_all(item)
|
|
||||||
|
|
||||||
|
|
||||||
def list_all(item):
|
|
||||||
logger.info()
|
|
||||||
from core import jsontools
|
|
||||||
itemlist = []
|
|
||||||
|
|
||||||
data = get_source('%s%s' % (host, item.page))
|
|
||||||
data = scrapertools.find_single_match(data, '"itemListElement":([^\]]+)\]')
|
|
||||||
data = data + ']'
|
|
||||||
#logger.debug(data)
|
|
||||||
movie_list = eval(data)
|
|
||||||
for movie in movie_list[item.first:item.last]:
|
|
||||||
|
|
||||||
IMDBNumber = movie['url'].replace('title','').replace('/','')
|
|
||||||
|
|
||||||
|
|
||||||
new_item = Item(channel='search', contentType='movie', action='do_search',
|
|
||||||
infoLabels={'imdb_id': IMDBNumber})
|
|
||||||
|
|
||||||
#new_item.infoLabels = tmdb.find_and_set_infoLabels(new_item)
|
|
||||||
itemlist.append(new_item)
|
|
||||||
logger.debug('id %s' % IMDBNumber)
|
|
||||||
#logger.debug(new_item)
|
|
||||||
|
|
||||||
|
|
||||||
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
|
||||||
|
|
||||||
for movie in itemlist:
|
|
||||||
movie.title = movie.infoLabels['title']
|
|
||||||
movie.wanted = movie.title
|
|
||||||
|
|
||||||
if item.last + 20 < len(movie_list):
|
|
||||||
first = item.last
|
|
||||||
last = item.last + 20
|
|
||||||
page = item.page
|
|
||||||
else:
|
|
||||||
first = 0
|
|
||||||
last = 20
|
|
||||||
page = item.page + 1
|
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, title='Siguiente >>', action='list_all',
|
|
||||||
last=last, first=first, page=page))
|
|
||||||
return itemlist
|
|
||||||
@@ -35,7 +35,7 @@ langi = langs[config.get_setting('imdb', "tvmoviedb")]
|
|||||||
adult_mal = config.get_setting('adult_mal', "tvmoviedb")
|
adult_mal = config.get_setting('adult_mal', "tvmoviedb")
|
||||||
mal_ck = "MzE1MDQ2cGQ5N2llYTY4Z2xwbGVzZjFzbTY="
|
mal_ck = "MzE1MDQ2cGQ5N2llYTY4Z2xwbGVzZjFzbTY="
|
||||||
images_predef = "https://raw.githubusercontent.com/master-1970/resources/master/images/genres/"
|
images_predef = "https://raw.githubusercontent.com/master-1970/resources/master/images/genres/"
|
||||||
default_fan = filetools.join(config.get_runtime_path(), "fanart.jpg")
|
default_fan = filetools.join(config.get_runtime_path(), "fanart1.jpg")
|
||||||
|
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ load_cookies()
|
|||||||
|
|
||||||
|
|
||||||
def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=True, cookies=True, replace_headers=False,
|
def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=True, cookies=True, replace_headers=False,
|
||||||
add_referer=False, only_headers=False, bypass_cloudflare=True, count_retries=0, random_headers=False):
|
add_referer=False, only_headers=False, bypass_cloudflare=True, count_retries=0, random_headers=False, ignore_response_code=False):
|
||||||
"""
|
"""
|
||||||
Abre una url y retorna los datos obtenidos
|
Abre una url y retorna los datos obtenidos
|
||||||
|
|
||||||
@@ -124,6 +124,8 @@ def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=Tr
|
|||||||
@type only_headers: bool
|
@type only_headers: bool
|
||||||
@param random_headers: Si True, utiliza el método de seleccionar headers aleatorios.
|
@param random_headers: Si True, utiliza el método de seleccionar headers aleatorios.
|
||||||
@type random_headers: bool
|
@type random_headers: bool
|
||||||
|
@param ignore_response_code: Si es True, ignora el método para WebErrorException para error como el error 404 en veseriesonline, pero es un data funcional
|
||||||
|
@type ignore_response_code: bool
|
||||||
@return: Resultado de la petición
|
@return: Resultado de la petición
|
||||||
@rtype: HTTPResponse
|
@rtype: HTTPResponse
|
||||||
|
|
||||||
@@ -256,7 +258,7 @@ def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=Tr
|
|||||||
# error 4xx o 5xx se lanza excepcion (menos para servidores)
|
# error 4xx o 5xx se lanza excepcion (menos para servidores)
|
||||||
# response["code"] = 400 # linea de código para probar
|
# response["code"] = 400 # linea de código para probar
|
||||||
is_channel = str(is_channel).replace("/servers/","\\servers\\") # Para sistemas operativos diferente a Windows la ruta cambia
|
is_channel = str(is_channel).replace("/servers/","\\servers\\") # Para sistemas operativos diferente a Windows la ruta cambia
|
||||||
if type(response["code"]) == int and "\\servers\\" not in str(is_channel):
|
if type(response["code"]) == int and "\\servers\\" not in str(is_channel) and not ignore_response_code:
|
||||||
if response["code"] > 399 and (server_cloudflare == "cloudflare" and response["code"] != 503):
|
if response["code"] > 399 and (server_cloudflare == "cloudflare" and response["code"] != 503):
|
||||||
raise WebErrorException(urlparse.urlparse(url)[1])
|
raise WebErrorException(urlparse.urlparse(url)[1])
|
||||||
|
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ def render_items(itemlist, parent_item):
|
|||||||
if item.fanart:
|
if item.fanart:
|
||||||
fanart = item.fanart
|
fanart = item.fanart
|
||||||
else:
|
else:
|
||||||
fanart = os.path.join(config.get_runtime_path(), "fanart.jpg")
|
fanart = os.path.join(config.get_runtime_path(), "fanart1.jpg")
|
||||||
|
|
||||||
# Creamos el listitem
|
# Creamos el listitem
|
||||||
#listitem = xbmcgui.ListItem(item.title)
|
#listitem = xbmcgui.ListItem(item.title)
|
||||||
|
|||||||
@@ -9,26 +9,21 @@ from platformcode import logger
|
|||||||
def test_video_exists(page_url):
|
def test_video_exists(page_url):
|
||||||
logger.info("(page_url='%s')" % page_url)
|
logger.info("(page_url='%s')" % page_url)
|
||||||
data = httptools.downloadpage(page_url).data
|
data = httptools.downloadpage(page_url).data
|
||||||
|
|
||||||
if "Invalid or Deleted File" in data:
|
if "Invalid or Deleted File" in data:
|
||||||
return False, "[Mediafire] El archivo no existe o ha sido borrado"
|
return False, "[Mediafire] El archivo no existe o ha sido borrado"
|
||||||
elif "File Removed for Violation" in data:
|
elif "File Removed for Violation" in data:
|
||||||
return False, "[Mediafire] Archivo eliminado por infracción"
|
return False, "[Mediafire] Archivo eliminado por infracción"
|
||||||
|
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
|
|
||||||
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||||
logger.info("(page_url='%s')" % page_url)
|
logger.info("(page_url='%s')" % page_url)
|
||||||
video_urls = []
|
video_urls = []
|
||||||
|
|
||||||
data = httptools.downloadpage(page_url).data
|
data = httptools.downloadpage(page_url).data
|
||||||
patron = 'kNO \= "([^"]+)"'
|
patron = "DownloadButtonAd-startDownload gbtnSecondary.*?href='([^']+)'"
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
if len(matches) > 0:
|
if len(matches) > 0:
|
||||||
video_urls.append([matches[0][-4:] + " [mediafire]", matches[0]])
|
video_urls.append([matches[0][-4:] + " [mediafire]", matches[0]])
|
||||||
|
|
||||||
for video_url in video_urls:
|
for video_url in video_urls:
|
||||||
logger.info("%s - %s" % (video_url[0], video_url[1]))
|
logger.info("%s - %s" % (video_url[0], video_url[1]))
|
||||||
|
|
||||||
return video_urls
|
return video_urls
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "mp4upload.com/embed-([A-Za-z0-9]+)",
|
"pattern": "mp4upload.com(?:/embed-|/)([A-Za-z0-9]+)",
|
||||||
"url": "http://www.mp4upload.com/embed-\\1.html"
|
"url": "http://www.mp4upload.com/embed-\\1.html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
"ignore_urls": [],
|
"ignore_urls": [],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "(vev.io/embed/[A-z0-9]+)",
|
"pattern": "vev.io/(?:embed/|)([A-z0-9]+)",
|
||||||
"url": "https://\\1"
|
"url": "https://vev.io/embed/\\1"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user