Merge remote-tracking branch 'origin/master'

# Conflicts:
#	channels/cinemastreaming.py
This commit is contained in:
mac12m99
2019-07-28 14:48:37 +02:00
6 changed files with 51 additions and 295 deletions

View File

@@ -1,13 +1,13 @@
{
"altadefinizione01_club": "https://www.altadefinizione01.cc",
"altadefinizione01_link": "http://altadefinizione01.link",
"altadefinizione01": "https://altadefinizione01.to",
"altadefinizione01_link": "http://altadefinizione1.link",
"altadefinizione01": "https://www.altadefinizione01.cc",
"altadefinizioneclick": "https://altadefinizione.cloud",
"altadefinizionehd": "https://altadefinizione.doctor",
"altadefinizionehd": "https://altadefinizionetv.best",
"animeforge": "https://ww1.animeforce.org",
"animeleggendari": "https://animepertutti.com",
"animestream": "https://www.animeworld.it",
"animespace": "https://animespace.tv",
"animespace": "https://www.animespace.tv",
"animesubita": "http://www.animesubita.org",
"animetubeita": "http://www.animetubeita.com",
"animevision": "https://www.animevision.it",
@@ -15,8 +15,8 @@
"asiansubita": "http://asiansubita.altervista.org",
"casacinema": "https://www.casacinema.site",
"casacinemainfo": "https://www.casacinema.info",
"cb01anime": "http://www.cineblog01.ink",
"cinemalibero": "https://cinemalibero.best",
"cb01anime": "https://www.cineblog01.ink",
"cinemalibero": "https://www.cinemalibero.best",
"cinemastreaming": "https://cinemastreaming.icu",
"documentaristreamingda": "https://documentari-streaming-da.com",
"dreamsub": "https://www.dreamsub.stream",
@@ -36,13 +36,13 @@
"filmstreamingita": "http://filmstreamingita.live",
"guarda_serie": "https://guardaserie.site",
"guardafilm": "http://www.guardafilm.top",
"guardarefilm": "https://www.guardarefilm.video",
"guardarefilm": "https://www.guardarefilm.red",
"guardaseriecc": "https://guardaserie.site",
"guardaserieclick": "https://www.guardaserie.media",
"guardaserie_stream": "https://guardaserie.co",
"guardaserieonline": "http://www.guardaserie.media",
"guardogratis": "http://guardogratis.io",
"ilgeniodellostreaming": "https://ilgeniodellostreaming.pw",
"guardogratis": "http://guardogratis.net",
"ilgeniodellostreaming": "https://ilgeniodellostreaming.se",
"italiafilm": "https://www.italia-film.pw",
"italiafilmhd": "https://italiafilm.info",
"italiaserie": "https://italiaserie.org",
@@ -52,12 +52,11 @@
"mondolunatico2": "http://mondolunatico.org/stream/",
"mondoserietv": "https://mondoserietv.com",
"piratestreaming": "https://www.piratestreaming.media",
"seriehd": "https://www.seriehd.pink",
"serietvonline": "https://serietvonline.xyz",
"seriehd": "https://www.seriehd.zone",
"serietvonline": "https://serietvonline.tech",
"serietvsubita": "http://serietvsubita.xyz",
"serietvu": "https://www.serietvu.club",
"streamingaltadefinizione": "https://www.streamingaltadefinizione.space",
"streamking": "http://streamking.cc",
"tantifilm": "https://www.tantifilm.plus",
"streamingaltadefinizione": "https://www.streamingaltadefinizione.best",
"tantifilm": "https://www.tantifilm.eu",
"toonitalia": "https://toonitalia.org"
}

View File

@@ -1,7 +1,7 @@
{
"id": "altadefinizione01_club",
"name": "Altadefinizione01 C",
"active": true,
"active": false,
"adult": false,
"language": ["ita"],
"fanart": "https://www.altadefinizione01.vision/templates/Darktemplate/images/logo.png",

View File

@@ -1,71 +0,0 @@
{
"id": "cinemastreaming",
"name": "Cinemastreaming",
"language": ["ita"],
"active": false,
"adult": false,
"thumbnail": "https://www.telegramitalia.it/wp-content/uploads/2018/02/IMG_20180222_214809_805.jpg",
"banner": "https://www.telegramitalia.it/wp-content/uploads/2018/02/IMG_20180222_214809_805.jpg",
"categories": ["tvshow", "movie"],
"settings": [
{
"id": "include_in_global_search",
"type": "bool",
"label": "Includi ricerca globale",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_peliculas",
"type": "bool",
"label": "Includi in Novità - Film",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_series",
"type": "bool",
"label": "Includi in Novità - Serie TV",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_italiano",
"type": "bool",
"label": "Includi in Novità - Italiano",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "checklinks",
"type": "bool",
"label": "Verifica se i link esistono",
"default": false,
"enabled": true,
"visible": true
},
{
"id": "checklinks_number",
"type": "list",
"label": "Numero de link da verificare",
"default": 1,
"enabled": true,
"visible": "eq(-1,true)",
"lvalues": [ "5", "10", "15", "20" ]
},
{
"id": "filter_languages",
"type": "list",
"label": "Mostra link in lingua...",
"default": 0,
"enabled": true,
"visible": true,
"lvalues": ["Non filtrare","IT"]
}
]
}

View File

@@ -1,191 +0,0 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Canale per cinemastreaming
# ------------------------------------------------------------
import re
from core import scrapertools, httptools, scrapertoolsV2, support
from core.item import Item
from specials import autoplay
from platformcode import config
__channel__ = "cinemastreaming"
host = config.get_channel_url(__channel__)
IDIOMAS = {'Italiano': 'IT'}
list_language = IDIOMAS.values()
list_servers = ['openload', 'streamango']
list_quality = ['1080p', '1080p 3D', 'SD', 'CAM', 'default']
headers = [['Referer', host]]
def mainlist(item):
support.log()
# Menu Principale
itemlist = []
film = '/film/'
('Per genere ', [, 'menu', ]), args="Film per Genere")
support.menu(itemlist, 'Anime bold', 'peliculas', host + '/category/anime/')
tvshow = '/serie-tv/'
('Ultime Uscite ', ["/stagioni/", 'peliculas', ]), "episode", args='latests')
('Ultimi Episodi ', ["/episodi/", 'peliculas_latest_ep', ]), "episode", args='lateste')
support.menu(itemlist, '[COLOR blue]Cerca...[/COLOR]', 'search')
autoplay.init(item.channel, list_servers, list_quality)
autoplay.show_option(item.channel, itemlist)
return itemlist
def peliculas(item):
support.log()
list_groups = ["url", "thumb", "title", "year", "rating", "duration"]
patron = r'<article.*?"TPost C".*?href="([^"]+)".*?img.*?src="([^"]+)".*?<h3.*?>([^<]+).*?Year">'
if item.args == "latests":
patron += r'([^<]+)'
else:
patron += r'(\d{4}).*?AAIco-star.*?>([^<]+).*?AAIco-access_time">([^<]+).*?Qlty'
patron_next = r'page-numbers current.*?href="([^"]+)"'
if item.contentType == "movie":
patron += r'\">([^<]+)'
list_groups.append("quality")
action = "findvideos" if item.contentType == "movie" else "episodios"
return support.scrape(item, patron, list_groups, patronNext=patron_next, action=action)
def peliculas_latest_ep(item):
patron = r'<article.*?"TPost C".*?href="([^"]+)".*?img.*?src="([^"]+)"'
patron += r'.*?class="ClB">([^<]+)<\/span>([^<]+).*?<h3.*?>([^<]+)'
data = httptools.downloadpage(item.url).data
matches = re.compile(patron, re.DOTALL).findall(data)
itemlist = []
for scrapedurl, scrapedthumbnail, scrapednum, scrapedep, scrapedtitle in matches:
itemlist.append(
Item(channel=item.channel,
action="findvideos",
contentType=item.contentType,
title="[B]" + scrapednum + "[/B]" + scrapedep + " - " + scrapedtitle,
fulltitle=scrapedep + " " + scrapedtitle,
show=scrapedep + " " + scrapedtitle,
url=scrapedurl,
extra=item.extra,
thumbnail="http:" + scrapedthumbnail,
infoLabels=item.infoLabels
))
support.nextPage(itemlist, item, data, r'page-numbers current.*?href="([^"]+)"')
return itemlist
def peliculas_menu(item):
itemlist = peliculas(item)
return itemlist[:-1]
def episodios(item):
patron = r'<td class="MvTbTtl"><a href="([^"]+)">(.*?)<\/a>.*?>\d{4}<'
list_groups = ["url", "title", "year"]
itemlist = support.scrape(item, patron, list_groups)
for itm in itemlist:
fixedtitle = scrapertools.get_season_and_episode(itm.url)
itm.title = fixedtitle + " - " + itm.title
itm.fulltitle = fixedtitle + " - " + itm.fulltitle
return itemlist
def menu(item):
patronBlock = r'<ul class="sub-menu">.*?</ul>'
patron = r'menu-category-list"><a href="([^"]+)">([^<]+)<'
list_groups = ["url", "title"]
return support.scrape(item, patron, list_groups, blacklist="Anime", action="peliculas_menu", patronBlock=patronBlock)
def search(item, texto):
support.log("s=", texto)
item.url = host + "/?s=" + texto
try:
return peliculas(item)
# Continua la ricerca in caso di errore
except Exception, e:
import traceback
traceback.print_stack()
support.log(str(e))
return []
def newest(categoria):
support.log("newest" + categoria)
itemlist = []
item = Item()
try:
if categoria == "series":
item.url = host + "/episodi/"
item.action = "peliculas"
item.args = "lateste"
item.contentType = "episode"
itemlist = peliculas(item)
if itemlist[-1].action == "peliculas":
itemlist.pop()
# Continua la ricerca in caso di errore
except Exception, e:
import traceback
traceback.print_stack()
support.log(str(e))
return []
return itemlist
def findvideos(item):
if item.quality.lower() in ["ended", "canceled", "returning series"]:
return episodios(item)
itemlist = []
data = scrapertoolsV2.decodeHtmlentities(httptools.downloadpage(item.url).data)
btns = re.compile(r'data-tplayernv="Opt.*?><span>([^<]+)</span><span>([^<]+)</span>', re.DOTALL).findall(data)
matches = re.compile(r'<iframe.*?src="([^"]+trembed=[^"]+)', re.DOTALL).findall(data)
for i, scrapedurl in enumerate(matches):
scrapedurl = scrapertoolsV2.decodeHtmlentities(scrapedurl)
patron = r'<iframe.*?src="([^"]+)"'
link_data = httptools.downloadpage(scrapedurl).data
url = scrapertoolsV2.find_single_match(link_data, patron)
itemlist.append(
Item(channel=item.channel,
action="play",
contentType=item.contentType,
title="[B]" + btns[i][0] + "[/B] - " + btns[i][1],
fulltitle=btns[i][0] + " " + btns[i][1],
show=btns[i][0] + " " + btns[i][1],
url=url,
extra=item.extra,
infoLabels=item.infoLabels,
server=btns[i][0],
contentQuality=btns[i][1].replace('Italiano - ', ''),
))
if item.contentType == "movie":
support.videolibrary(itemlist, item)
autoplay.start(itemlist, item)
return itemlist

View File

@@ -13,7 +13,9 @@ from core.support import menu, log
from platformcode import logger, config
from specials import autoplay
host = "https://seriehd.info"
__channel__ = "seriehd"
host = config.get_channel_url(__channel__)
IDIOMAS = {'Italiano': 'IT'}
list_language = IDIOMAS.values()
@@ -37,7 +39,8 @@ def mainlist(item):
autoplay.init(item.channel, list_servers, list_quality)
autoplay.show_option(item.channel, itemlist)
config.get_setting("channel_host", __channel__)
return itemlist

View File

@@ -188,7 +188,9 @@ def scrape(func):
patronBlock = args['patronBlock'] if 'patronBlock' in args else ''
typeActionDict = args['type_action_dict'] if 'type_action_dict' in args else {}
typeContentDict = args['type_content_dict'] if 'type_content_dict' in args else {}
if 'pagination' in args: pagination = args['pagination'] if args['pagination'] else 20
else: pagination = ''
log('PATRON= ', patron)
if not data:
data = httptools.downloadpage(item.url, headers=headers, ignore_response_code=True).data.replace("'", '"')
data = re.sub('\n|\t', ' ', data)
@@ -217,7 +219,11 @@ def scrape(func):
'rating', 'type', 'lang'] # by greko aggiunto episode
lang = '' # aggiunto per gestire i siti con pagine di serietv dove si hanno i video in ita e in subita
for match in matches:
pag = item.page if item.page else 1 # pagination
for i, match in enumerate(matches):
if pagination and (pag - 1) * pagination > i: continue # pagination
if pagination and i >= pag * pagination: break # pagination
listGroups = match.keys()
match = match.values()
@@ -232,8 +238,7 @@ def scrape(func):
val = scrapertoolsV2.find_single_match(item.url, 'https?://[a-z0-9.-]+') + val
scraped[kk] = val
title = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title"])
.replace('"',"'")).strip() # fix by greko da " a '
title = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title"]).replace('"',"'").replace('×', 'x').replace('','-')).strip() # fix by greko da " a '
plot = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["plot"]))
longtitle = typo(title, 'bold')
@@ -242,7 +247,7 @@ def scrape(func):
scraped['episode'] = re.sub(r'\s-\s|-|x|&#8211', 'x', scraped['episode'])
longtitle = typo(scraped['episode'] + ' - ', 'bold') + longtitle
if scraped['title2']:
title2 = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title2"]).replace('"', "'")).strip()
title2 = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title2"]).replace('"', "'").replace('×', 'x').replace('','-')).strip()
longtitle = longtitle + typo(title2, 'bold _ -- _')
## Aggiunto/modificato per gestire i siti che hanno i video
@@ -286,15 +291,15 @@ def scrape(func):
for name, variants in typeActionDict.items():
if scraped['type'] in variants:
action = name
if scraped["title"] not in blacklist:
it = Item(
channel=item.channel,
action=action,
contentType=item.contentType,
contentType= 'episode' if item.action == 'episodios' else item.contentType,
title=longtitle,
fulltitle=title,
show=title,
show=item.show if item.action == 'episodios' else title,
quality=scraped["quality"],
url=scraped["url"],
infoLabels=infolabels,
@@ -309,8 +314,7 @@ def scrape(func):
it = args['itemHook'](it)
itemlist.append(it)
checkHost(item, itemlist)
## if (item.contentType == "episode" and (action != "findvideos" and action != "play")) \
## or (item.contentType == "movie" and action != "play"):
if (item.contentType == "tvshow" and (action != "findvideos" and action != "play")) \
or (item.contentType == "episode" and action != "play") \
or (item.contentType == "movie" and action != "play") :
@@ -325,6 +329,18 @@ def scrape(func):
if patronNext:
nextPage(itemlist, item, data, patronNext, 2)
# next page for pagination
if pagination and len(matches) >= pag * pagination:
itemlist.append(
Item(channel=item.channel,
action = item.action,
contentType=item.contentType,
title=typo(config.get_localized_string(30992), 'color kod bold'),
url=item.url,
args=item.args,
page=pag + 1,
thumbnail=thumb()))
if anime:
from specials import autorenumber
autorenumber.renumber(itemlist)
@@ -582,7 +598,8 @@ def menu(func):
menuItem(itemlist, filename, 'Cerca... bold color kod', 'search', host + dictUrl['search'])
autoplay.show_option(item.channel, itemlist)
channel_config(item, itemlist)
return itemlist
return wrapper
@@ -666,20 +683,19 @@ def videolibrary(itemlist, item, typography='', function_level=1):
# Function_level is useful if the function is called by another function.
# If the call is direct, leave it blank
if item.contentType != 'episode':
if item.contentType == 'movie':
action = 'add_pelicula_to_library'
extra = 'findvideos'
contentType = 'movie'
contentType = 'movie'
else:
action = 'add_serie_to_library'
extra = 'episodios'
contentType = 'tvshow'
contentType = 'tvshow'
if not typography: typography = 'color kod bold'
title = typo(config.get_localized_string(30161) + ' ' + typography)
if inspect.stack()[function_level][3] == 'findvideos' and contentType == 'movie' or inspect.stack()[function_level][3] != 'findvideos' and contentType != 'movie':
if (inspect.stack()[function_level][3] == 'findvideos' and contentType == 'movie') or (inspect.stack()[function_level][3] != 'findvideos' and contentType != 'movie'):
if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(
Item(channel=item.channel,