Merge remote-tracking branch 'alfa-addon/master'
This commit is contained in:
@@ -285,6 +285,7 @@ function get_response(data) {
|
|||||||
else {
|
else {
|
||||||
keypress = "";
|
keypress = "";
|
||||||
};
|
};
|
||||||
|
if (!data.items[x].value) data.items[x].value = "";
|
||||||
itemlist[data.items[x].category].push(replace_list(html.config.text, {
|
itemlist[data.items[x].category].push(replace_list(html.config.text, {
|
||||||
"item_color": data.items[x].color,
|
"item_color": data.items[x].color,
|
||||||
"item_label": data.items[x].label,
|
"item_label": data.items[x].label,
|
||||||
|
|||||||
@@ -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="1.9.0" provider-name="Alfa Addon">
|
<addon id="plugin.video.alfa" name="Alfa" version="1.9.1" 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,13 +19,15 @@
|
|||||||
</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]Arreglos[/B][/COLOR]
|
[COLOR green][B]Arreglos[/B][/COLOR]
|
||||||
[I]- serieslan
|
[I]- cinetux
|
||||||
- streamplay
|
- vidoza
|
||||||
- descargasmix
|
- canalpelis
|
||||||
- canalpelis - Canal nuevo
|
- pelisplanet
|
||||||
|
- newpct1
|
||||||
|
- pelisplus
|
||||||
|
- torrentlocura - fix para usar videoteca y en mediaserver
|
||||||
- fixes internos[/I]
|
- fixes internos[/I]
|
||||||
|
[COLOR green]Gracias a [COLOR yellow][B]xabier100[/B][/COLOR] y [COLOR yellow][B]fermintxu[/B][/COLOR] por su colaboración en esta versión[/COLOR]
|
||||||
[COLOR green]Gracias a [COLOR yellow][B]msdos[/B][/COLOR] por su colaboración en esta versión[/COLOR]
|
|
||||||
</news>
|
</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>
|
||||||
|
|||||||
@@ -38,6 +38,8 @@
|
|||||||
"visible": true,
|
"visible": true,
|
||||||
"lvalues": [
|
"lvalues": [
|
||||||
"Sin color",
|
"Sin color",
|
||||||
|
"Perfil 5",
|
||||||
|
"Perfil 4",
|
||||||
"Perfil 3",
|
"Perfil 3",
|
||||||
"Perfil 2",
|
"Perfil 2",
|
||||||
"Perfil 1"
|
"Perfil 1"
|
||||||
|
|||||||
Executable → Regular
+3
-2
@@ -127,7 +127,7 @@ def peliculas(item):
|
|||||||
|
|
||||||
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)
|
||||||
# logger.info(data)
|
logger.info(data)
|
||||||
|
|
||||||
patron = '<div class="poster"><img src="([^"]+)" alt="([^"]+)">.*?' # img, title.strip()
|
patron = '<div class="poster"><img src="([^"]+)" alt="([^"]+)">.*?' # img, title.strip()
|
||||||
patron += '<span class="icon-star2"></span>(.*?)/div>.*?' # rating
|
patron += '<span class="icon-star2"></span>(.*?)/div>.*?' # rating
|
||||||
@@ -138,7 +138,8 @@ def peliculas(item):
|
|||||||
matches = scrapertools.find_multiple_matches(data, patron)
|
matches = scrapertools.find_multiple_matches(data, patron)
|
||||||
|
|
||||||
for scrapedthumbnail, scrapedtitle, rating, calidad, scrapedurl, year in matches[item.page:item.page + 20]:
|
for scrapedthumbnail, scrapedtitle, rating, calidad, scrapedurl, year in matches[item.page:item.page + 20]:
|
||||||
if 'Próximamente' not in calidad:
|
if 'Próximamente' not in calidad and '-XXX.jpg' not in scrapedthumbnail:
|
||||||
|
|
||||||
scrapedtitle = scrapedtitle.replace('Ver ', '').strip()
|
scrapedtitle = scrapedtitle.replace('Ver ', '').strip()
|
||||||
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]" % (
|
||||||
|
|||||||
@@ -314,15 +314,11 @@ 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 "www.cinetux.me" in url:
|
matches.append([url, "", "", language.strip(), t_tipo])
|
||||||
server = scrapertools.find_single_match(url, "player/(.*?)\.")
|
|
||||||
else:
|
|
||||||
server = servertools.get_server_from_url(url)
|
|
||||||
matches.append([url, server, "", language.strip(), t_tipo])
|
|
||||||
bloque2 = scrapertools.find_single_match(data, '(?s)box_links.*?dt_social_single')
|
bloque2 = scrapertools.find_single_match(data, '(?s)box_links.*?dt_social_single')
|
||||||
bloque2 = bloque2.replace("\t", "").replace("\r", "")
|
bloque2 = bloque2.replace("\t", "").replace("\r", "")
|
||||||
patron = '(?s)optn" href="([^"]+)'
|
patron = '(?s)optn" href="([^"]+)'
|
||||||
patron += '.*?title="([^"]+)'
|
patron += '.*?title="([^\.]+)'
|
||||||
patron += '.*?src.*?src="[^>]+"?/>([^<]+)'
|
patron += '.*?src.*?src="[^>]+"?/>([^<]+)'
|
||||||
patron += '.*?src="[^>]+"?/>([^<]+)'
|
patron += '.*?src="[^>]+"?/>([^<]+)'
|
||||||
patron += '.*?/span>([^<]+)'
|
patron += '.*?/span>([^<]+)'
|
||||||
@@ -336,7 +332,7 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
|
|||||||
scrapedtipo = match[4]
|
scrapedtipo = match[4]
|
||||||
if t_tipo.upper() not in scrapedtipo.upper():
|
if t_tipo.upper() not in scrapedtipo.upper():
|
||||||
continue
|
continue
|
||||||
title = " Mirror en " + scrapedserver.split(".")[0] + " (" + scrapedlanguage + ")"
|
title = " Mirror en %s (" + scrapedlanguage + ")"
|
||||||
if len(scrapedcalidad.strip()) > 0:
|
if len(scrapedcalidad.strip()) > 0:
|
||||||
title += " (Calidad " + scrapedcalidad.strip() + ")"
|
title += " (Calidad " + scrapedcalidad.strip() + ")"
|
||||||
|
|
||||||
@@ -357,6 +353,7 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
|
|||||||
title = "Mostrar enlaces filtrados en %s" % ", ".join(filtrados)
|
title = "Mostrar enlaces filtrados en %s" % ", ".join(filtrados)
|
||||||
lista_enlaces.append(item.clone(title=title, action="findvideos", url=item.url, text_color=color3,
|
lista_enlaces.append(item.clone(title=title, action="findvideos", url=item.url, text_color=color3,
|
||||||
filtro=True))
|
filtro=True))
|
||||||
|
lista_enlaces = servertools.get_servers_itemlist(lista_enlaces, lambda i: i.title % i.server.capitalize())
|
||||||
return lista_enlaces
|
return lista_enlaces
|
||||||
|
|
||||||
|
|
||||||
@@ -368,7 +365,6 @@ def play(item):
|
|||||||
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 = "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
|
||||||
itemlist = servertools.find_video_items(data=item.url)
|
|
||||||
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[^"]+)')
|
||||||
@@ -380,7 +376,16 @@ 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
|
||||||
itemlist = servertools.find_video_items(data=item.url)
|
|
||||||
else:
|
else:
|
||||||
return [item]
|
return [item]
|
||||||
|
itemlist.append(
|
||||||
|
Item(channel = item.channel,
|
||||||
|
action = "play",
|
||||||
|
title = "%s",
|
||||||
|
fulltitle = item.fulltitle,
|
||||||
|
thumbnail = item.thumbnail,
|
||||||
|
server = "",
|
||||||
|
url = item.url
|
||||||
|
))
|
||||||
|
itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize())
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|||||||
@@ -13,10 +13,15 @@ def mainlist(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
|
thumb_pelis=get_thumb("channels_movie.png")
|
||||||
|
thumb_series=get_thumb("channels_tvshow.png")
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="submenu", title="Películas", url="http://www.newpct1.com/",
|
itemlist.append(Item(channel=item.channel, action="submenu", title="Películas", url="http://www.newpct1.com/",
|
||||||
extra="peliculas"))
|
extra="peliculas", thumbnail=thumb_pelis ))
|
||||||
itemlist.append(
|
|
||||||
Item(channel=item.channel, action="submenu", title="Series", url="http://www.newpct1.com/", extra="series"))
|
itemlist.append(Item(channel=item.channel, action="submenu", title="Series", url="http://www.newpct1.com/", extra="series",
|
||||||
|
thumbnail=thumb_series))
|
||||||
# itemlist.append(Item(channel=item.channel, action="search", title="Buscar"))
|
# itemlist.append(Item(channel=item.channel, action="search", title="Buscar"))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
@@ -180,7 +185,7 @@ def listado(item):
|
|||||||
paginacion = scrapertools.get_match(data, patron)
|
paginacion = scrapertools.get_match(data, patron)
|
||||||
|
|
||||||
if "Next" in paginacion:
|
if "Next" in paginacion:
|
||||||
url_next_page = scrapertools.get_match(paginacion, '<a href="([^>]+)>Next</a>')[:-1].replace(" ", "%20")
|
url_next_page = scrapertools.get_match(paginacion, '<a href="(http[^>]+)>Next</a>')[:-1].replace(" ", "%20")
|
||||||
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=url_next_page,
|
itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=url_next_page,
|
||||||
extra=item.extra))
|
extra=item.extra))
|
||||||
# logger.info("[newpct1.py] listado items:" + str(len(itemlist)))
|
# logger.info("[newpct1.py] listado items:" + str(len(itemlist)))
|
||||||
@@ -369,7 +374,7 @@ def get_episodios(item):
|
|||||||
paginacion = scrapertools.get_match(data, patron)
|
paginacion = scrapertools.get_match(data, patron)
|
||||||
# logger.info("[newpct1.py] get_episodios: paginacion= " + paginacion)
|
# logger.info("[newpct1.py] get_episodios: paginacion= " + paginacion)
|
||||||
if "Next" in paginacion:
|
if "Next" in paginacion:
|
||||||
url_next_page = scrapertools.get_match(paginacion, '<a href="([^>]+)>Next</a>')[:-1]
|
url_next_page = scrapertools.get_match(paginacion, '<a href="(http[^>]+)>Next</a>')[:-1]
|
||||||
url_next_page = url_next_page.replace(" ", "%20")
|
url_next_page = url_next_page.replace(" ", "%20")
|
||||||
# logger.info("[newpct1.py] get_episodios: url_next_page= " + url_next_page)
|
# logger.info("[newpct1.py] get_episodios: url_next_page= " + url_next_page)
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
|
|||||||
@@ -38,19 +38,13 @@
|
|||||||
"visible": true,
|
"visible": true,
|
||||||
"lvalues": [
|
"lvalues": [
|
||||||
"Sin color",
|
"Sin color",
|
||||||
|
"Perfil 5",
|
||||||
|
"Perfil 4",
|
||||||
"Perfil 3",
|
"Perfil 3",
|
||||||
"Perfil 2",
|
"Perfil 2",
|
||||||
"Perfil 1"
|
"Perfil 1"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "orden_episodios",
|
|
||||||
"type": "bool",
|
|
||||||
"label": "Mostrar los episodios de las series en orden descendente",
|
|
||||||
"default": false,
|
|
||||||
"enabled": true,
|
|
||||||
"visible": true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "include_in_newest_peliculas",
|
"id": "include_in_newest_peliculas",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
|
|||||||
@@ -1,26 +1,41 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
|
import urllib
|
||||||
import urlparse
|
import urlparse
|
||||||
|
from platformcode import config, logger
|
||||||
from core import channeltools
|
|
||||||
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 import tmdb
|
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from core import channeltools
|
||||||
|
from core import tmdb
|
||||||
|
|
||||||
host = "http://www.pelisplanet.com/"
|
host = "http://www.pelisplanet.com/"
|
||||||
|
|
||||||
headers = [['User-Agent', 'Mozilla/50.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'],
|
headers = [['User-Agent', 'Mozilla/50.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'],
|
||||||
['Referer', host]]
|
['Referer', host]]
|
||||||
|
|
||||||
|
__channel__ = "pelisplanet"
|
||||||
parameters = channeltools.get_channel_parameters('pelisplanet')
|
parameters = channeltools.get_channel_parameters('pelisplanet')
|
||||||
fanart_host = parameters['fanart']
|
fanart_host = parameters['fanart']
|
||||||
thumbnail_host = parameters['thumbnail']
|
thumbnail_host = parameters['thumbnail']
|
||||||
color1, color2, color3 = ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E']
|
try:
|
||||||
|
__modo_grafico__ = config.get_setting('modo_grafico', __channel__)
|
||||||
|
__perfil__ = int(config.get_setting('perfil', __channel__))
|
||||||
|
except:
|
||||||
|
__modo_grafico__ = True
|
||||||
|
__perfil__ = 0
|
||||||
|
|
||||||
|
# Fijar perfil de color
|
||||||
|
perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00', '0xFFFE2E2E', '0xFFFFD700'],
|
||||||
|
['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E', '0xFFFE2E2E', '0xFFFFD700'],
|
||||||
|
['0xFF58D3F7', '0xFF2E9AFE', '0xFF2E64FE', '0xFFFE2E2E', '0xFFFFD700']]
|
||||||
|
if __perfil__ < 3:
|
||||||
|
color1, color2, color3, color4, color5 = perfil[__perfil__]
|
||||||
|
else:
|
||||||
|
color1 = color2 = color3 = color4 = color5 = ""
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info()
|
logger.info()
|
||||||
@@ -161,29 +176,29 @@ def peliculas(item):
|
|||||||
for scrapedurl, calidad, year, scrapedtitle, scrapedthumbnail in matches:
|
for scrapedurl, calidad, year, scrapedtitle, scrapedthumbnail in matches:
|
||||||
datas = httptools.downloadpage(scrapedurl).data
|
datas = httptools.downloadpage(scrapedurl).data
|
||||||
datas = re.sub(r"\n|\r|\t|\s{2}| ", "", datas)
|
datas = re.sub(r"\n|\r|\t|\s{2}| ", "", datas)
|
||||||
# logger.info(datas)
|
#logger.info(datas)
|
||||||
if '/ ' in scrapedtitle:
|
if '/ ' in scrapedtitle:
|
||||||
scrapedtitle = scrapedtitle.partition('/ ')[2]
|
scrapedtitle = scrapedtitle.partition('/ ')[2]
|
||||||
contentTitle = scrapertools.find_single_match(datas, '<em class="pull-left">Titulo original: </em>([^<]+)</p>')
|
contentTitle = scrapertools.find_single_match(datas, '<em class="pull-left">Titulo original: </em>([^<]+)</p>')
|
||||||
contentTitle = scrapertools.decodeHtmlentities(contentTitle.strip())
|
contentTitle = scrapertools.decodeHtmlentities(contentTitle.strip())
|
||||||
rating = scrapertools.find_single_match(datas, 'alt="Puntaje MPA IMDb" /></a><span>([^<]+)</span>')
|
rating = scrapertools.find_single_match(datas, 'alt="Puntaje MPA IMDb" /></a><span>([^<]+)</span>')
|
||||||
director = scrapertools.find_single_match(datas,
|
director = scrapertools.find_single_match(datas, '<div class="list-cast-info tableCell"><a href="[^"]+" rel="tag">([^<]+)</a></div>')
|
||||||
'<div class="list-cast-info tableCell"><a href="[^"]+" rel="tag">([^<]+)</a></div>')
|
|
||||||
title = "%s [COLOR yellow][%s][/COLOR]" % (scrapedtitle.strip(), calidad.upper())
|
title = "%s [COLOR yellow][%s][/COLOR]" % (scrapedtitle.strip(), calidad.upper())
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, plot='',
|
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, plot='',
|
||||||
url=scrapedurl, contentQuality=calidad, thumbnail=scrapedthumbnail,
|
url=scrapedurl, contentQuality=calidad, thumbnail=scrapedthumbnail,
|
||||||
contentTitle=contentTitle,
|
contentTitle=contentTitle, infoLabels={"year": year, 'rating': rating, 'director': director},
|
||||||
infoLabels={"year": year, 'rating': rating, 'director': director},
|
|
||||||
text_color=color3))
|
text_color=color3))
|
||||||
|
|
||||||
tmdb.set_infoLabels(itemlist, seekTmdb=True)
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
|
tmdb.set_infoLabels(itemlist, __modo_grafico__)
|
||||||
|
|
||||||
paginacion = scrapertools.find_single_match(data, '<a class="nextpostslink" rel="next" href="([^"]+)">')
|
paginacion = scrapertools.find_single_match(data, '<a class="nextpostslink" rel="next" href="([^"]+)">')
|
||||||
if paginacion:
|
if paginacion:
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="peliculas",
|
itemlist.append(Item(channel=item.channel, action="peliculas",
|
||||||
title="» Siguiente »", url=paginacion, plot="Página Siguiente",
|
title="» Siguiente »", url=paginacion, plot="Página Siguiente",
|
||||||
thumbnail='https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/next.png'))
|
thumbnail='https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/next.png'))
|
||||||
|
|
||||||
for item in itemlist:
|
for item in itemlist:
|
||||||
if item.infoLabels['plot'] == '':
|
if item.infoLabels['plot'] == '':
|
||||||
@@ -229,6 +244,44 @@ def findvideos(item):
|
|||||||
matches = re.compile(patron, re.DOTALL).findall(datas)
|
matches = re.compile(patron, re.DOTALL).findall(datas)
|
||||||
|
|
||||||
for scrapedurl, servidores, in matches:
|
for scrapedurl, servidores, in matches:
|
||||||
|
if 'youtube' in scrapedurl:
|
||||||
|
video_urls = []
|
||||||
|
doc_id = scrapertools.find_single_match(scrapedurl, "docid=(\w+)")
|
||||||
|
doc_url = "http://docs.google.com/get_video_info?docid=%s" % doc_id
|
||||||
|
response = httptools.downloadpage(doc_url, cookies=False)
|
||||||
|
cookies = ""
|
||||||
|
cookie = response.headers["set-cookie"].split("HttpOnly, ")
|
||||||
|
for c in cookie:
|
||||||
|
cookies += c.split(";", 1)[0] + "; "
|
||||||
|
data = response.data.decode('unicode-escape')
|
||||||
|
data = urllib.unquote_plus(urllib.unquote_plus(data))
|
||||||
|
headers_string = "|Cookie=" + cookies
|
||||||
|
url_streams = scrapertools.find_single_match(data, 'url_encoded_fmt_stream_map=(.*)')
|
||||||
|
streams = scrapertools.find_multiple_matches(url_streams,
|
||||||
|
'itag=(\d+)&url=(.*?)(?:;.*?quality=.*?(?:,|&)|&quality=.*?(?:,|&))')
|
||||||
|
itags = {'18':'360p', '22':'720p', '34':'360p', '35':'480p', '37':'1080p', '43':'360p', '59':'480p'}
|
||||||
|
for itag, video_url in streams:
|
||||||
|
video_url += headers_string
|
||||||
|
video_urls.append([video_url, itags[itag]])
|
||||||
|
|
||||||
|
for video_item in video_urls:
|
||||||
|
calidad = video_item[1]
|
||||||
|
title = '%s [COLOR green](%s)[/COLOR] [COLOR green]([/COLOR][COLOR black]You[/COLOR][COLOR red]tube[/COLOR][COLOR green])[/COLOR]'%(item.contentTitle, calidad)
|
||||||
|
url = video_item[0]
|
||||||
|
|
||||||
|
itemlist.append(
|
||||||
|
item.clone(channel=item.channel,
|
||||||
|
action='play',
|
||||||
|
title=title,
|
||||||
|
url= url,
|
||||||
|
thumbnail=item.thumbnail,
|
||||||
|
plot=item.plot,
|
||||||
|
fanart=item.fanart,
|
||||||
|
contentTitle=item.contentTitle,
|
||||||
|
server='directo',
|
||||||
|
context = item.context
|
||||||
|
))
|
||||||
|
itemlist.sort(key=lambda it: it.title, reverse=True)
|
||||||
if 'pelispp.com' or 'ultrapelis' in scrapedurl:
|
if 'pelispp.com' or 'ultrapelis' in scrapedurl:
|
||||||
data = httptools.downloadpage(scrapedurl, headers=headers).data
|
data = httptools.downloadpage(scrapedurl, headers=headers).data
|
||||||
patronr = 'file: "([^"]+)",label:"([^"]+)",type'
|
patronr = 'file: "([^"]+)",label:"([^"]+)",type'
|
||||||
@@ -237,16 +290,17 @@ def findvideos(item):
|
|||||||
url = scrapedurl.replace('\\', '')
|
url = scrapedurl.replace('\\', '')
|
||||||
language = 'latino'
|
language = 'latino'
|
||||||
quality = label.decode('cp1252').encode('utf8')
|
quality = label.decode('cp1252').encode('utf8')
|
||||||
title = item.contentTitle + ' (' + str(label) + ')'
|
title = item.contentTitle + ' (' + str(label) + ') ([COLOR blue]G[/COLOR][COLOR red]o[/COLOR][COLOR yellow]o[/COLOR][COLOR blue]g[/COLOR][COLOR green]l[/COLOR][COLOR red]e[/COLOR])'
|
||||||
thumbnail = item.thumbnail
|
thumbnail = item.thumbnail
|
||||||
fanart = item.fanart
|
fanart = item.fanart
|
||||||
itemlist.append(item.clone(action="play", title=title, url=url, server='directo',
|
itemlist.append(item.clone(action="play", title=title, url=url, server='directo',
|
||||||
thumbnail=thumbnail, fanart=fanart, extra='directo',
|
thumbnail=thumbnail, fanart=fanart, extra='directo',
|
||||||
quality=quality, language=language, ))
|
quality=quality, language=language,))
|
||||||
itemlist.sort(key=lambda it: it.title, reverse=True)
|
itemlist.sort(key=lambda it: it.title, reverse=True)
|
||||||
|
|
||||||
# if 'youtube' not in scrapedurl:
|
# if 'youtube' not in scrapedurl:
|
||||||
if 'youtube' not in scrapedurl:
|
servidores.lower()
|
||||||
|
if 'youtube' not in scrapedurl and 'pelispp.com' not in scrapedurl and 'streamplus' not in servidores:
|
||||||
quality = scrapertools.find_single_match(
|
quality = scrapertools.find_single_match(
|
||||||
datas, '<p class="hidden-xs hidden-sm">.*?class="magnet-download">([^<]+)p</a>')
|
datas, '<p class="hidden-xs hidden-sm">.*?class="magnet-download">([^<]+)p</a>')
|
||||||
title = "[COLOR green]%s[/COLOR] [COLOR yellow][%s][/COLOR] [COLOR yellow][%s][/COLOR]" % (
|
title = "[COLOR green]%s[/COLOR] [COLOR yellow][%s][/COLOR] [COLOR yellow][%s][/COLOR]" % (
|
||||||
@@ -266,7 +320,7 @@ def findvideos(item):
|
|||||||
|
|
||||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||||
itemlist.append(Item(channel=item.channel,
|
itemlist.append(Item(channel=item.channel,
|
||||||
title='[COLOR yellow]Añadir esta pelicula a la biblioteca[/COLOR]',
|
title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]',
|
||||||
url=item.url, action="add_pelicula_to_library",
|
url=item.url, action="add_pelicula_to_library",
|
||||||
thumbnail='https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/libreria.png',
|
thumbnail='https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/libreria.png',
|
||||||
extra="findvideos", contentTitle=item.contentTitle))
|
extra="findvideos", contentTitle=item.contentTitle))
|
||||||
|
|||||||
Executable → Regular
+3
-1
@@ -44,7 +44,9 @@
|
|||||||
"latino",
|
"latino",
|
||||||
"movie",
|
"movie",
|
||||||
"tvshow",
|
"tvshow",
|
||||||
"documentary"
|
"documentary",
|
||||||
|
"direct"
|
||||||
|
|
||||||
],
|
],
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
{
|
||||||
|
|||||||
Executable → Regular
+46
-44
@@ -9,6 +9,7 @@ from core import scrapertools
|
|||||||
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 core import servertools
|
||||||
|
|
||||||
host = "http://www.pelisplus.tv/"
|
host = "http://www.pelisplus.tv/"
|
||||||
|
|
||||||
@@ -25,10 +26,11 @@ list_quality = ['1080p',
|
|||||||
'720p',
|
'720p',
|
||||||
'480p',
|
'480p',
|
||||||
'360p',
|
'360p',
|
||||||
'240p'
|
'240p',
|
||||||
|
'default'
|
||||||
]
|
]
|
||||||
list_servers = [
|
list_servers = [
|
||||||
'directo',
|
'gvideo',
|
||||||
'openload',
|
'openload',
|
||||||
'thevideos'
|
'thevideos'
|
||||||
]
|
]
|
||||||
@@ -419,65 +421,65 @@ def findvideos(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
itemlist = []
|
itemlist = []
|
||||||
duplicados = []
|
duplicados = []
|
||||||
datas = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url).data
|
||||||
patron = "<iframe.*?src='([^']+)' frameborder='0' allowfullscreen.*?"
|
logger.debug('data: %s'%data)
|
||||||
matches = re.compile(patron, re.DOTALL).findall(datas)
|
video_page = scrapertools.find_single_match(data, "<iframe width='100%' height='500' src='(.*?)' frameborder='0'")
|
||||||
|
data = httptools.downloadpage(video_page).data
|
||||||
|
patron = '<li data-id=".*?">\s+<a href="(.*?)" >'
|
||||||
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
for scrapedurl in matches:
|
for scrapedurl in matches:
|
||||||
|
|
||||||
if 'elreyxhd' or 'pelisplus.biz' in scrapedurl:
|
if 'tipo' in scrapedurl:
|
||||||
patronr = ''
|
server = 'gvideo'
|
||||||
data = httptools.downloadpage(scrapedurl, headers=headers).data
|
gvideo_data = httptools.downloadpage(scrapedurl).data
|
||||||
|
video_url = scrapertools.find_single_match(gvideo_data,'<div id="player">.*?border: none" src="\/\/(.*?)" ')
|
||||||
|
video_url= 'http://%s'%video_url
|
||||||
|
gvideo_url = httptools.downloadpage(video_url).data
|
||||||
|
videourl = servertools.findvideosbyserver(gvideo_url, server)
|
||||||
|
|
||||||
quote = scrapertools.find_single_match(data, 'sources.*?file.*?http')
|
logger.debug('videourl: %s'%videourl)
|
||||||
if quote and "'" in quote:
|
language = 'latino'
|
||||||
patronr = "file:'([^']+)',label:'([^.*?]+)',type:.*?'.*?}"
|
quality = 'default'
|
||||||
elif '"' in quote:
|
url = videourl[0][1]
|
||||||
patronr = '{file:"(.*?)",label:"(.*?)"}'
|
title = '%s (%s)'%(item.contentTitle, server)
|
||||||
if patronr != '':
|
thumbnail = item.thumbnail
|
||||||
matchesr = re.compile(patronr, re.DOTALL).findall(data)
|
fanart = item.fanart
|
||||||
|
if video_url not in duplicados:
|
||||||
|
itemlist.append(item.clone(action="play",
|
||||||
|
title=title,
|
||||||
|
url=url,
|
||||||
|
thumbnail=thumbnail,
|
||||||
|
fanart=fanart,
|
||||||
|
show=title,
|
||||||
|
extra='gvideo',
|
||||||
|
language=language,
|
||||||
|
quality=quality,
|
||||||
|
server=server
|
||||||
|
))
|
||||||
|
duplicados.append(video_url)
|
||||||
|
|
||||||
for scrapedurl, scrapedcalidad in matchesr:
|
|
||||||
url = scrapedurl
|
|
||||||
language = 'latino'
|
|
||||||
quality = scrapedcalidad.decode('cp1252').encode('utf8')
|
|
||||||
title = item.contentTitle + ' (' + str(scrapedcalidad) + ')'
|
|
||||||
thumbnail = item.thumbnail
|
|
||||||
fanart = item.fanart
|
|
||||||
if url not in duplicados:
|
|
||||||
itemlist.append(item.clone(action="play",
|
|
||||||
title=title,
|
|
||||||
url=url,
|
|
||||||
thumbnail=thumbnail,
|
|
||||||
fanart=fanart,
|
|
||||||
show=title,
|
|
||||||
extra='directo',
|
|
||||||
language=language,
|
|
||||||
quality=quality,
|
|
||||||
server='directo',
|
|
||||||
))
|
|
||||||
duplicados.append(url)
|
|
||||||
|
|
||||||
url = scrapedurl
|
|
||||||
from core import servertools
|
|
||||||
itemlist.extend(servertools.find_video_items(data=datas))
|
itemlist.extend(servertools.find_video_items(data=data))
|
||||||
|
|
||||||
for videoitem in itemlist:
|
for videoitem in itemlist:
|
||||||
# videoitem.infoLabels = item.infoLabels
|
# videoitem.infoLabels = item.infoLabels
|
||||||
videoitem.channel = item.channel
|
videoitem.channel = item.channel
|
||||||
if videoitem.quality == '' or videoitem.language == '':
|
if videoitem.quality == '' or videoitem.language == '':
|
||||||
videoitem.quality = 'default'
|
videoitem.quality = 'default'
|
||||||
videoitem.language = 'Latino'
|
videoitem.language = 'Latino'
|
||||||
if videoitem.server != '':
|
if videoitem.server != '':
|
||||||
videoitem.thumbnail = servertools.guess_server_thumbnail(videoitem.server)
|
videoitem.thumbnail = servertools.guess_server_thumbnail(videoitem.server)
|
||||||
else:
|
else:
|
||||||
videoitem.thumbnail = item.thumbnail
|
videoitem.thumbnail = item.thumbnail
|
||||||
videoitem.server = 'directo'
|
videoitem.server = 'directo'
|
||||||
videoitem.action = 'play'
|
videoitem.action = 'play'
|
||||||
videoitem.fulltitle = item.title
|
videoitem.fulltitle = item.title
|
||||||
|
|
||||||
if videoitem.extra != 'directo' and 'youtube' not in videoitem.url:
|
if videoitem.extra != 'directo' and 'youtube' not in videoitem.url:
|
||||||
videoitem.title = item.contentTitle + ' (' + videoitem.server + ')'
|
videoitem.title = item.contentTitle + ' (' + videoitem.server + ')'
|
||||||
|
|
||||||
n = 0
|
n = 0
|
||||||
for videoitem in itemlist:
|
for videoitem in itemlist:
|
||||||
|
|||||||
@@ -6,23 +6,12 @@
|
|||||||
"language": "es",
|
"language": "es",
|
||||||
"banner": "torrentlocura.png",
|
"banner": "torrentlocura.png",
|
||||||
"thumbnail": "http://imgur.com/EWmLS3d.png",
|
"thumbnail": "http://imgur.com/EWmLS3d.png",
|
||||||
|
"fanart": "http://imgur.com/V7QZLAL.jpg",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"changes": [
|
"changes": [
|
||||||
{
|
{
|
||||||
"date": "31/12/2016",
|
"date": "25/08/2017",
|
||||||
"description": "Release"
|
"description": "revamp"
|
||||||
},
|
|
||||||
{
|
|
||||||
"date": "13/01/2017",
|
|
||||||
"description": "Añadida info a cápitulos en bloque"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"date": "04/04/2017",
|
|
||||||
"description": "Reparación cambios web"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"date": "28/06/2017",
|
|
||||||
"description": "Corrección código y algunas mejoras"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,9 +7,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": {
|
"ignore_urls": [
|
||||||
"value": "http://www.4shared.com/flash/player.swf"
|
"http://www.4shared.com/flash/player.swf"
|
||||||
},
|
],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "(http://www.4shared.com/embed/[A-Z0-9a-z]+/[A-Z0-9a-z]+)",
|
"pattern": "(http://www.4shared.com/embed/[A-Z0-9a-z]+/[A-Z0-9a-z]+)",
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": {
|
"ignore_urls": [
|
||||||
"value": "http://www.mp4upload.com/embed/embed"
|
"http://www.mp4upload.com/embed/embed"
|
||||||
},
|
],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "mp4upload.com/embed-([A-Za-z0-9]+)",
|
"pattern": "mp4upload.com/embed-([A-Za-z0-9]+)",
|
||||||
|
|||||||
@@ -11,23 +11,21 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": {
|
"ignore_urls": [
|
||||||
"value": [
|
"http://streamcloud.eu/stylesheets",
|
||||||
"http://streamcloud.eu/stylesheets",
|
"http://streamcloud.eu/control",
|
||||||
"http://streamcloud.eu/control",
|
"http://streamcloud.eu/xupload",
|
||||||
"http://streamcloud.eu/xupload",
|
"http://streamcloud.eu/js",
|
||||||
"http://streamcloud.eu/js",
|
"http://streamcloud.eu/favicon",
|
||||||
"http://streamcloud.eu/favicon",
|
"http://streamcloud.eu/reward",
|
||||||
"http://streamcloud.eu/reward",
|
"http://streamcloud.eu/login",
|
||||||
"http://streamcloud.eu/login",
|
"http://streamcloud.eu/deliver",
|
||||||
"http://streamcloud.eu/deliver",
|
"http://streamcloud.eu/faq",
|
||||||
"http://streamcloud.eu/faq",
|
"http://streamcloud.eu/tos",
|
||||||
"http://streamcloud.eu/tos",
|
"http://streamcloud.eu/checkfiles",
|
||||||
"http://streamcloud.eu/checkfiles",
|
"http://streamcloud.eu/contact",
|
||||||
"http://streamcloud.eu/contact",
|
"http://streamcloud.eu/serve"
|
||||||
"http://streamcloud.eu/serve"
|
],
|
||||||
]
|
|
||||||
},
|
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "(streamcloud.eu/[a-z0-9]+)",
|
"pattern": "(streamcloud.eu/[a-z0-9]+)",
|
||||||
|
|||||||
@@ -11,22 +11,20 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": {
|
"ignore_urls": [
|
||||||
"value": [
|
"http://streamin.to/embed-theme.html",
|
||||||
"http://streamin.to/embed-theme.html",
|
"http://streamin.to/embed-jquery.html",
|
||||||
"http://streamin.to/embed-jquery.html",
|
"http://streamin.to/embed-s.html",
|
||||||
"http://streamin.to/embed-s.html",
|
"http://streamin.to/embed-images.html",
|
||||||
"http://streamin.to/embed-images.html",
|
"http://streamin.to/embed-faq.html",
|
||||||
"http://streamin.to/embed-faq.html",
|
"http://streamin.to/embed-embed.html",
|
||||||
"http://streamin.to/embed-embed.html",
|
"http://streamin.to/embed-ri.html",
|
||||||
"http://streamin.to/embed-ri.html",
|
"http://streamin.to/embed-d.html",
|
||||||
"http://streamin.to/embed-d.html",
|
"http://streamin.to/embed-css.html",
|
||||||
"http://streamin.to/embed-css.html",
|
"http://streamin.to/embed-js.html",
|
||||||
"http://streamin.to/embed-js.html",
|
"http://streamin.to/embed-player.html",
|
||||||
"http://streamin.to/embed-player.html",
|
"http://streamin.to/embed-cgi.html"
|
||||||
"http://streamin.to/embed-cgi.html"
|
],
|
||||||
]
|
|
||||||
},
|
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "streamin.to/(?:embed-)?([a-z0-9A-Z]+)",
|
"pattern": "streamin.to/(?:embed-)?([a-z0-9A-Z]+)",
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": [],
|
"ignore_urls": [
|
||||||
|
"http://uploaded.net/file/ref"
|
||||||
|
],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "(?:ul|uploaded).(?:net|to)/(?:file/|f/)?([a-zA-Z0-9]+)",
|
"pattern": "(?:ul|uploaded).(?:net|to)/(?:file/|f/)?([a-zA-Z0-9]+)",
|
||||||
|
|||||||
@@ -7,11 +7,10 @@ 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 "Page not found" in data:
|
if "Page not found" in data:
|
||||||
return False, "[vidoza] El archivo no existe o ha sido borrado"
|
return False, "[vidoza] El archivo no existe o ha sido borrado"
|
||||||
elif "Video is processing now" in data:
|
elif "processing" in data:
|
||||||
return False, "[vidoza] El vídeo se está procesando"
|
return False, "[vidoza] El vídeo se está procesando"
|
||||||
|
|
||||||
return True, ""
|
return True, ""
|
||||||
@@ -19,9 +18,7 @@ def test_video_exists(page_url):
|
|||||||
|
|
||||||
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)
|
||||||
|
|
||||||
data = httptools.downloadpage(page_url).data
|
data = httptools.downloadpage(page_url).data
|
||||||
|
|
||||||
video_urls = []
|
video_urls = []
|
||||||
matches = scrapertools.find_multiple_matches(data, 'file\s*:\s*"([^"]+)"\s*,\s*label:"([^"]+)"')
|
matches = scrapertools.find_multiple_matches(data, 'file\s*:\s*"([^"]+)"\s*,\s*label:"([^"]+)"')
|
||||||
for media_url, calidad in matches:
|
for media_url, calidad in matches:
|
||||||
|
|||||||
@@ -7,40 +7,38 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": {
|
"ignore_urls": [
|
||||||
"value": [
|
"http://vidspot.net/embed-theme.html",
|
||||||
"http://vidspot.net/embed-theme.html",
|
"http://vidspot.net/embed-jquery.html",
|
||||||
"http://vidspot.net/embed-jquery.html",
|
"http://vidspot.net/embed-s.html",
|
||||||
"http://vidspot.net/embed-s.html",
|
"http://vidspot.net/embed-images.html",
|
||||||
"http://vidspot.net/embed-images.html",
|
"http://vidspot.net/embed-faq.html",
|
||||||
"http://vidspot.net/embed-faq.html",
|
"http://vidspot.net/embed-embed.html",
|
||||||
"http://vidspot.net/embed-embed.html",
|
"http://vidspot.net/embed-ri.html",
|
||||||
"http://vidspot.net/embed-ri.html",
|
"http://vidspot.net/embed-d.html",
|
||||||
"http://vidspot.net/embed-d.html",
|
"http://vidspot.net/embed-css.html",
|
||||||
"http://vidspot.net/embed-css.html",
|
"http://vidspot.net/embed-js.html",
|
||||||
"http://vidspot.net/embed-js.html",
|
"http://vidspot.net/embed-player.html",
|
||||||
"http://vidspot.net/embed-player.html",
|
"http://vidspot.net/embed-cgi.html",
|
||||||
"http://vidspot.net/embed-cgi.html",
|
"http://vidspot.net/embed-i.html",
|
||||||
"http://vidspot.net/embed-i.html",
|
"http://vidspot.net/images",
|
||||||
"http://vidspot.net/images",
|
"http://vidspot.net/theme",
|
||||||
"http://vidspot.net/theme",
|
"http://vidspot.net/xupload",
|
||||||
"http://vidspot.net/xupload",
|
"http://vidspot.net/s",
|
||||||
"http://vidspot.net/s",
|
"http://vidspot.net/js",
|
||||||
"http://vidspot.net/js",
|
"http://vidspot.net/jquery",
|
||||||
"http://vidspot.net/jquery",
|
"http://vidspot.net/login",
|
||||||
"http://vidspot.net/login",
|
"http://vidspot.net/make",
|
||||||
"http://vidspot.net/make",
|
"http://vidspot.net/i",
|
||||||
"http://vidspot.net/i",
|
"http://vidspot.net/faq",
|
||||||
"http://vidspot.net/faq",
|
"http://vidspot.net/tos",
|
||||||
"http://vidspot.net/tos",
|
"http://vidspot.net/premium",
|
||||||
"http://vidspot.net/premium",
|
"http://vidspot.net/checkfiles",
|
||||||
"http://vidspot.net/checkfiles",
|
"http://vidspot.net/privacy",
|
||||||
"http://vidspot.net/privacy",
|
"http://vidspot.net/refund",
|
||||||
"http://vidspot.net/refund",
|
"http://vidspot.net/links",
|
||||||
"http://vidspot.net/links",
|
"http://vidspot.net/contact"
|
||||||
"http://vidspot.net/contact"
|
],
|
||||||
]
|
|
||||||
},
|
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "vidspot.(?:net/|php\\?id=)(?:embed-)?([a-z0-9]+)",
|
"pattern": "vidspot.(?:net/|php\\?id=)(?:embed-)?([a-z0-9]+)",
|
||||||
|
|||||||
@@ -15,9 +15,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"find_videos": {
|
"find_videos": {
|
||||||
"ignore_urls": {
|
"ignore_urls": [
|
||||||
"value": "http://www.yourupload.com/embed/embed"
|
"http://www.yourupload.com/embed/embed"
|
||||||
},
|
],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "yourupload.com/embed/([A-z0-9]+)",
|
"pattern": "yourupload.com/embed/([A-z0-9]+)",
|
||||||
|
|||||||
Reference in New Issue
Block a user