Merge branch 'master' into master
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -2,3 +2,6 @@
|
||||
*.pyc
|
||||
.DS_Store
|
||||
.idea/
|
||||
.dev
|
||||
.directory
|
||||
__pycache__/
|
||||
|
||||
20
README.md
20
README.md
@@ -2,7 +2,23 @@
|
||||
### Un fork italiano di [Alfa](https://github.com/alfa-addon)
|
||||
Ognuno è libero (anzi, invitato!) a collaborare, per farlo è possibile utilizzare i pull request.
|
||||
|
||||
KOD come Alfa è sotto licenza GPL v3, pertanto, siete liberi di utilizzare parte del codice, a patto di rispettare i termini di suddetta licenza, che si possono riassumere in:
|
||||
KOD, come Alfa, è sotto licenza GPL v3, pertanto siete liberi di utilizzare parte del codice, a patto di rispettare i termini di suddetta licenza, che si possono riassumere in:
|
||||
|
||||
- Il tuo addon deve essere rilasciando secondo la stessa licenza, ovvero essere open source (il fatto che lo zip sia visibile da chiunque non ha importanza, è necessario avere un repository git come questo)
|
||||
- Aggiungere i crediti a tutto ciò che copiate/modificate, ad esempio aggiungendo un commento nel file in questione o meglio facendo un cherry-pick (in modo da preservare lo storico)
|
||||
- Aggiungere i crediti a tutto ciò che copiate/modificate, ad esempio aggiungendo un commento nel file in questione o, meglio, facendo un cherry-pick (in modo da preservarnee lo storico)
|
||||
|
||||
### Come contribuire?
|
||||
- Fai un Fork del repository.
|
||||
- Effettua tutte le modifiche e fai un push nel tuo repository remoto.
|
||||
- Testa tutte le funzioni principali (videoteca, autoplay, scraper web) o eventuali aggiunte extra.
|
||||
- Apri una pull request.
|
||||
|
||||
Regole per le collaborazioni:
|
||||
- Se si riutilizza codice proveniente da altri addon è necessario citarne la fonte, per rispetto di chi ci ha lavorato, in caso contrario il pull request verrà respinto.
|
||||
- Ogni modifica o novità inviata dev'essere testata, può capitare che vi sia sfuggito qualche bug (è normale), ma l'invio di materiale senza preventivi controlli non è gradito.
|
||||
- I nuovi canali devono essere funzionanti e completi di tutte le feature, comprese videoteca ed autoplay, non verranno accettati finchè non lo saranno.
|
||||
|
||||
Se parte del codice di un tuo addon è stato incluso in questo progetto e ne desideri l'eliminazione, crea una issue portando le prove di essere veramente uno dei dev e lo elimineremo.
|
||||
|
||||
### Qualcosa non funziona?
|
||||
Sentiti libero di segnalarlo al team [qui](https://github.com/kodiondemand/addon/issues)
|
||||
|
||||
@@ -14,7 +14,7 @@ host = "https://altadefinizione.center" ### <- cambio Host da .fm a .center
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', "vidoza", "thevideo", "okru", 'youtube']
|
||||
list_servers = ['verystream', 'openload', 'streamango', "vidoza", "thevideo", "okru", 'youtube']
|
||||
list_quality = ['1080p']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'altadefinizioneclick')
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"id": "animeleggendari",
|
||||
"name": "AnimeLeggendari",
|
||||
"name": "AnimePerTutti",
|
||||
"active": true,
|
||||
"adult": false,
|
||||
"language": ["ita"],
|
||||
"thumbnail": "https://animeleggendari.com/wp-content/uploads/2018/01/123header.jpg",
|
||||
"bannermenu": "https://animeleggendari.com/wp-content/uploads/2018/01/123header.jpg",
|
||||
"thumbnail": "animepertutti.png",
|
||||
"bannermenu": "animepertutti.png",
|
||||
"categories": ["anime"],
|
||||
"settings": [
|
||||
{
|
||||
@@ -20,9 +20,9 @@
|
||||
"id": "include_in_newest_anime",
|
||||
"type": "bool",
|
||||
"label": "Includi in Novità - Anime",
|
||||
"default": false,
|
||||
"enabled": false,
|
||||
"visible": false
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"id": "include_in_newest_italiano",
|
||||
|
||||
@@ -1,80 +1,52 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# ------------------------------------------------------------
|
||||
# Ringraziamo Icarus crew
|
||||
# Canale per animeleggendari
|
||||
# ------------------------------------------------------------
|
||||
|
||||
import re
|
||||
|
||||
from channels import autoplay
|
||||
from channels import filtertools, support
|
||||
from core import servertools, httptools, scrapertools, tmdb
|
||||
from channels import filtertools, autoplay, support, autorenumber
|
||||
from channels.support import log, menu
|
||||
from core import servertools, httptools, scrapertoolsV2, scrapertools, tmdb
|
||||
from platformcode import logger, config
|
||||
from core.item import Item
|
||||
from lib.js2py.host import jsfunctions
|
||||
|
||||
host = "https://animeleggendari.com"
|
||||
host = "https://animepertutti.com"
|
||||
|
||||
# Richiesto per Autoplay
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango']
|
||||
list_servers = ['verystream', 'openload', 'streamango']
|
||||
list_quality = ['default']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'animeleggendari')
|
||||
__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'animeleggendari')
|
||||
|
||||
def mainlist(item):
|
||||
logger.info('[animeleggendari.py] mainlist')
|
||||
|
||||
# Richiesto per Autoplay
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
|
||||
itemlist = [Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title="[B]Anime Leggendari[/B]",
|
||||
url="%s/category/anime-leggendari/" % host,
|
||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
||||
Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title="Anime [B]ITA[/B]",
|
||||
url="%s/category/anime-ita/" % host,
|
||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
||||
Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title="Anime [B]SUB ITA[/B]",
|
||||
url="%s/category/anime-sub-ita/" % host,
|
||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
||||
Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title="Conclusi",
|
||||
url="%s/category/serie-anime-concluse/" % host,
|
||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
||||
Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title="In Corso",
|
||||
url="%s/category/anime-in-corso/" % host,
|
||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
||||
Item(channel=item.channel,
|
||||
action="generi",
|
||||
title="Generi >",
|
||||
url=host,
|
||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
||||
Item(channel=item.channel,
|
||||
action="search",
|
||||
title="[B]Cerca...[/B]",
|
||||
thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")]
|
||||
log()
|
||||
|
||||
itemlist = []
|
||||
menu(itemlist, 'Anime Leggendari', 'peliculas', host + '/category/anime-leggendari/')
|
||||
menu(itemlist, 'Anime ITA', 'peliculas', host + '/category/anime-ita/')
|
||||
menu(itemlist, 'Anime SUB-ITA', 'peliculas', host + '/category/anime-sub-ita/')
|
||||
menu(itemlist, 'Anime Conclusi', 'peliculas', host + '/category/serie-anime-concluse/')
|
||||
menu(itemlist, 'Anime in Corso', 'peliculas', host + '/category/anime-in-corso/')
|
||||
menu(itemlist, 'Genere', 'genres', host)
|
||||
menu(itemlist, 'Cerca...', 'search')
|
||||
menu(itemlist, 'novita', 'newest')
|
||||
|
||||
# Autoplay visualizza voce menu
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
autoplay.show_option(item.channel, itemlist)
|
||||
|
||||
return itemlist
|
||||
|
||||
def search(item, texto):
|
||||
logger.info('[animeleggendari.py] search')
|
||||
log(texto)
|
||||
|
||||
item.url = host + "/?s=" + texto
|
||||
try:
|
||||
return lista_anime(item)
|
||||
return peliculas(item)
|
||||
|
||||
# Continua la ricerca in caso di errore
|
||||
except:
|
||||
@@ -83,139 +55,131 @@ def search(item, texto):
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
def generi(item):
|
||||
logger.info('[animeleggendari.py] generi')
|
||||
def last_ep(item):
|
||||
log('ANIME PER TUTTI')
|
||||
return support.scrape(item, '<a href="([^"]+)">([^<]+)<', ['url','title'],patron_block='<ul class="mh-tab-content-posts">(.*?)<\/ul>', action='findvideos')
|
||||
|
||||
def newest(categoria):
|
||||
log('ANIME PER TUTTI')
|
||||
log(categoria)
|
||||
itemlist = []
|
||||
item = Item()
|
||||
try:
|
||||
if categoria == "anime":
|
||||
item.url = host
|
||||
item.action = "last_ep"
|
||||
itemlist = last_ep(item)
|
||||
|
||||
data = httptools.downloadpage(item.url).data.replace('\n','').replace('\t','')
|
||||
logger.info("[animeleggendari.py] generi= "+data)
|
||||
|
||||
blocco =scrapertools.find_single_match(data, r'Generi.*?<ul.*?>(.*?)<\/ul>')
|
||||
logger.info("[animeleggendari.py] blocco= "+blocco)
|
||||
patron = '<a href="([^"]+)">([^<]+)<'
|
||||
|
||||
matches = re.compile(patron, re.DOTALL).findall(blocco)
|
||||
logger.info("[animeleggendari.py] matches= "+str(matches))
|
||||
|
||||
for scrapedurl, scrapedtitle in matches:
|
||||
title = scrapedtitle.replace('Anime ','')
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title=title,
|
||||
url=scrapedurl))
|
||||
if itemlist[-1].action == "last_ep":
|
||||
itemlist.pop()
|
||||
# Continua la ricerca in caso di errore
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("{0}".format(line))
|
||||
return []
|
||||
|
||||
return itemlist
|
||||
|
||||
def lista_anime(item):
|
||||
logger.info('[animeleggendari.py] lista_anime')
|
||||
def genres(item):
|
||||
itemlist = support.scrape(item, '<a href="([^"]+)">([^<]+)<', ['url', 'title'], action='peliculas', patron_block=r'Generi.*?<ul.*?>(.*?)<\/ul>', blacklist=['Contattaci','Privacy Policy', 'DMCA'])
|
||||
return support.thumb(itemlist)
|
||||
|
||||
def peliculas(item):
|
||||
log()
|
||||
itemlist = []
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
patron = r'<a class="[^"]+" href="([^"]+)" title="([^"]+)"><img[^s]+src="([^"]+)"[^>]+'
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
blacklist = ['top 10 anime da vedere']
|
||||
matches, data = support.match(item, r'<a class="[^"]+" href="([^"]+)" title="([^"]+)"><img[^s]+src="([^"]+)"[^>]+')
|
||||
|
||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
||||
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle.strip()).replace("streaming", "")
|
||||
if 'top 10 anime da vedere' in scrapedtitle.lower(): continue
|
||||
for url, title, thumb in matches:
|
||||
title = scrapertoolsV2.decodeHtmlentities(title.strip()).replace("streaming", "")
|
||||
lang = scrapertoolsV2.find_single_match(title, r"((?:SUB ITA|ITA))")
|
||||
videoType = ''
|
||||
if 'movie' in title.lower():
|
||||
videoType = ' - (MOVIE)'
|
||||
if 'ova' in title.lower():
|
||||
videoType = ' - (OAV)'
|
||||
|
||||
cleantitle = title.replace(lang, "").replace('(Streaming & Download)', '').replace('( Streaming & Download )', '').replace('OAV', '').replace('OVA', '').replace('MOVIE', '').strip()
|
||||
|
||||
if not videoType :
|
||||
contentType="tvshow"
|
||||
action="episodios"
|
||||
else:
|
||||
contentType="movie"
|
||||
action="findvideos"
|
||||
|
||||
if not title.lower() in blacklist:
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action=action,
|
||||
contentType=contentType,
|
||||
title=support.typo(cleantitle + videoType, 'bold') + support.typo(lang,'_ [] color kod'),
|
||||
fulltitle=cleantitle,
|
||||
show=cleantitle,
|
||||
url=url,
|
||||
thumbnail=thumb))
|
||||
|
||||
lang = scrapertools.find_single_match(scrapedtitle, r"((?:SUB ITA|ITA))")
|
||||
cleantitle = scrapedtitle.replace(lang, "").replace('(Streaming & Download)', '')
|
||||
cleantitle = cleantitle.replace('OAV', '').replace('OVA', '').replace('MOVIE', '')
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action="episodios",
|
||||
contentType="tvshow" if 'movie' not in scrapedtitle.lower() and 'ova' not in scrapedtitle.lower() else "movie",
|
||||
text_color="azure",
|
||||
title=scrapedtitle.replace('(Streaming & Download)', '').replace(lang, '[B][' + lang + '][/B]'),
|
||||
fulltitle=cleantitle,
|
||||
url=scrapedurl,
|
||||
show=cleantitle,
|
||||
thumbnail=scrapedthumbnail,
|
||||
folder=True))
|
||||
|
||||
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
||||
|
||||
patronvideos = r'<a class="next page-numbers" href="([^"]+)">'
|
||||
matches = re.compile(patronvideos, re.DOTALL).findall(data)
|
||||
|
||||
if len(matches) > 0:
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action="lista_anime",
|
||||
title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]",
|
||||
url=scrapedurl,
|
||||
thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png",
|
||||
folder=True))
|
||||
autorenumber.renumber(itemlist)
|
||||
support.nextPage(itemlist, item, data, r'<a class="next page-numbers" href="([^"]+)">')
|
||||
|
||||
return itemlist
|
||||
|
||||
def episodios(item):
|
||||
logger.info('[animeleggendari.py] episodios')
|
||||
log()
|
||||
itemlist = []
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
blocco = scrapertools.find_single_match(data, r'(?:<p style="text-align: left;">|<div class="pagination clearfix">\s*)(.*?)</span></a></div>')
|
||||
block = scrapertoolsV2.find_single_match(data, r'(?:<p style="text-align: left;">|<div class="pagination clearfix">\s*)(.*?)</span></a></div>')
|
||||
|
||||
# Il primo episodio è la pagina stessa
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action="findvideos",
|
||||
action='findvideos',
|
||||
contentType=item.contentType,
|
||||
title="Episodio: 1",
|
||||
text_color="azure",
|
||||
fulltitle="%s %s %s " % (support.color(item.title, "deepskyblue"), support.color("|", "azure"), support.color("1", "orange")),
|
||||
title=support.typo('Episodio 1 bold'),
|
||||
fulltitle=item.title,
|
||||
url=item.url,
|
||||
thumbnail=item.thumbnail,
|
||||
folder=True))
|
||||
if blocco != "":
|
||||
patron = r'<a href="([^"]+)".*?><span class="pagelink">(\d+)</span></a>'
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
for scrapedurl, scrapednumber in matches:
|
||||
thumbnail=item.thumbnail))
|
||||
|
||||
if block:
|
||||
matches = re.compile(r'<a href="([^"]+)".*?><span class="pagelink">(\d+)</span></a>', re.DOTALL).findall(data)
|
||||
for url, number in matches:
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action="findvideos",
|
||||
action='findvideos',
|
||||
contentType=item.contentType,
|
||||
title="Episodio: %s" % scrapednumber,
|
||||
text_color="azure",
|
||||
fulltitle="%s %s %s " % (support.color(item.title, "deepskyblue"), support.color("|", "azure"), support.color(scrapednumber, "orange")),
|
||||
url=scrapedurl,
|
||||
thumbnail=item.thumbnail,
|
||||
folder=True))
|
||||
|
||||
if config.get_videolibrary_support() and len(itemlist) != 0:
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
title="[COLOR lightblue]%s[/COLOR]" % config.get_localized_string(30161),
|
||||
url=item.url,
|
||||
action="add_serie_to_library",
|
||||
extra="episodi",
|
||||
show=item.show))
|
||||
|
||||
title=support.typo('Episodio ' + number,'bold'),
|
||||
fulltitle=item.title,
|
||||
url=url,
|
||||
thumbnail=item.thumbnail))
|
||||
|
||||
autorenumber.renumber(itemlist, item)
|
||||
support.videolibrary
|
||||
return itemlist
|
||||
|
||||
def findvideos(item):
|
||||
logger.info('[animeleggendari.py] findvideos')
|
||||
log()
|
||||
data = ''
|
||||
matches = support.match(item, 'str="([^"]+)"')[0]
|
||||
if matches:
|
||||
for match in matches:
|
||||
data += str(jsfunctions.unescape(re.sub('@|g','%', match)))
|
||||
data += str(match)
|
||||
log('DATA',data)
|
||||
if 'animepertutti' in data:
|
||||
log('ANIMEPERTUTTI!')
|
||||
|
||||
else:
|
||||
data = ''
|
||||
|
||||
data = httptools.downloadpage(item.url).data
|
||||
itemlist = servertools.find_video_items(data=data)
|
||||
|
||||
for videoitem in itemlist:
|
||||
server = re.sub(r'[-\[\]\s]+', '', videoitem.title)
|
||||
videoitem.title = "".join(["[%s] " % support.color(server.capitalize(), 'orange'), item.title])
|
||||
videoitem.fulltitle = item.fulltitle
|
||||
videoitem.show = item.show
|
||||
videoitem.thumbnail = item.thumbnail
|
||||
videoitem.channel = item.channel
|
||||
itemlist = support.server(item,data)
|
||||
|
||||
# Richiesto per Verifica se i link esistono
|
||||
if __comprueba_enlaces__:
|
||||
itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__)
|
||||
|
||||
# Richiesto per FilterTools
|
||||
|
||||
itemlist = filtertools.get_links(itemlist, item, list_language)
|
||||
|
||||
# Autoplay
|
||||
autoplay.start(itemlist, item)
|
||||
|
||||
return itemlist
|
||||
|
||||
@@ -163,7 +163,7 @@ def start(itemlist, item):
|
||||
if len(quality_list) == 0:
|
||||
quality_list =['default']
|
||||
|
||||
# Se guardan los textos de cada servidor y calidad en listas p.e. favorite_servers = ['openload',
|
||||
# Se guardan los textos de cada servidor y calidad en listas p.e. favorite_servers = ['verystream', 'openload',
|
||||
# 'streamcloud']
|
||||
for num in range(1, 4):
|
||||
favorite_servers.append(channel_node['servers'][settings_node['server_%s' % num]].lower())
|
||||
|
||||
@@ -64,7 +64,7 @@ def add_season(data=None):
|
||||
special = platformtools.dialog_numeric(0, heading)
|
||||
return [int(season), int(episode), int(special)]
|
||||
elif episode != '':
|
||||
return [int(season), int(episode)]
|
||||
return [int(season), int(episode), '']
|
||||
|
||||
|
||||
def write_data(channel, show, data):
|
||||
@@ -94,10 +94,6 @@ def write_data(channel, show, data):
|
||||
|
||||
def renumber(itemlist, item='', typography=''):
|
||||
log()
|
||||
# log(itemlist)
|
||||
# key_list= item.title
|
||||
# sorted_list = sorted(itemlist, key=key_list)
|
||||
# log(sorted_list)
|
||||
|
||||
if item:
|
||||
try:
|
||||
|
||||
@@ -16,7 +16,7 @@ host = 'https://www.casacinema.site'
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'wstream', 'speedvideo']
|
||||
list_servers = ['verystream', 'openload', 'wstream', 'speedvideo']
|
||||
list_quality = ['HD', 'SD']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'casacinema')
|
||||
|
||||
@@ -14,7 +14,7 @@ host = 'https://casacinema.info'
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'wstream', 'speedvideo']
|
||||
list_servers = ['verystream', 'openload', 'wstream', 'speedvideo']
|
||||
list_quality = ['1080p', '720', '480p', '360p']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'casacinema')
|
||||
|
||||
@@ -7,7 +7,7 @@ import re
|
||||
import urlparse
|
||||
|
||||
from channels import autoplay, filtertools, support
|
||||
from core import scrapertoolsV2, httptools, servertools
|
||||
from core import scrapertoolsV2, httptools, servertools, tmdb
|
||||
from core.item import Item
|
||||
from lib import unshortenit
|
||||
from platformcode import logger, config
|
||||
@@ -24,14 +24,14 @@ def findhost():
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', 'wstream']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'wstream']
|
||||
list_quality = ['HD', 'default']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'cineblog01')
|
||||
__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'cineblog01')
|
||||
|
||||
#esclusione degli articoli 'di servizio'
|
||||
blacklist = ['BENVENUTI', 'Richieste Serie TV', 'CB01.UNO ▶ TROVA L’INDIRIZZO UFFICIALE ', 'Aggiornamento Quotidiano Serie TV', 'OSCAR 2019 ▶ CB01.UNO: Vota il tuo film preferito! 🎬']
|
||||
blacklist = ['BENVENUTI', 'Richieste Serie TV', 'CB01.UNO ▶ TROVA L’INDIRIZZO UFFICIALE ', 'Aggiornamento Quotidiano Serie TV', 'OSCAR 2019 ▶ CB01.UNO: Vota il tuo film preferito! 🎬', 'Openload: la situazione. Benvenuto Verystream']
|
||||
|
||||
|
||||
def mainlist(item):
|
||||
@@ -41,6 +41,8 @@ def mainlist(item):
|
||||
|
||||
# Main options
|
||||
itemlist = []
|
||||
support.menu(itemlist, 'Ultimi 100 Film Aggiornati bold', 'last', host + '/lista-film-ultimi-100-film-aggiornati/')
|
||||
|
||||
support.menu(itemlist, 'Film bold', 'peliculas', host)
|
||||
support.menu(itemlist, 'HD submenu', 'menu', host, args="Film HD Streaming")
|
||||
support.menu(itemlist, 'Per genere submenu', 'menu', host, args="Film per Genere")
|
||||
@@ -106,6 +108,43 @@ def newest(categoria):
|
||||
patron_block=r'Ultimi 100 film aggiunti:.*?<\/td>')
|
||||
|
||||
|
||||
def last(item):
|
||||
support.log()
|
||||
|
||||
itemlist = []
|
||||
infoLabels = {}
|
||||
quality = ''
|
||||
|
||||
matches = support.match(item, r'<ahref=([^>]+)>([^(:(|[)]+)([^<]+)<\/a>', r'<strong>Ultimi 100 film Aggiornati:<\/a><\/strong>(.*?)<td>', headers)[0]
|
||||
|
||||
for url, title, info in matches:
|
||||
title = title.rstrip()
|
||||
infoLabels['year'] = scrapertoolsV2.find_single_match(info, r'\(([0-9]+)\)')
|
||||
quality = scrapertoolsV2.find_single_match(info, r'\[([A-Z]+)\]')
|
||||
|
||||
if quality:
|
||||
longtitle = title + support.typo(quality,'_ [] color kod')
|
||||
else:
|
||||
longtitle = title
|
||||
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
action='findvideos',
|
||||
contentType=item.contentType,
|
||||
title=longtitle,
|
||||
fulltitle=title,
|
||||
show=title,
|
||||
quality=quality,
|
||||
url=url,
|
||||
infoLabels=infoLabels
|
||||
)
|
||||
)
|
||||
|
||||
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def peliculas(item):
|
||||
support.log()
|
||||
if item.contentType == 'movie' or '/serietv/' not in item.url:
|
||||
@@ -127,7 +166,7 @@ def episodios(item):
|
||||
item.contentType = 'episode'
|
||||
return support.scrape(item, patron_block=[r'<article class="sequex-post-content">(.*?)<\/article>',
|
||||
r'<div class="sp-head[a-z ]*?" title="Espandi">[^<>]*?</div>(.*?)<div class="spdiv">\[riduci\]</div>'],
|
||||
patron='(?:<p>)?([0-9]+×[0-9]+)(.*?)(?:</p>|<br)', listGroups=['title', 'url'])
|
||||
patron='<p>([0-9]+(?:×|×)[0-9]+)(.*?)(?:<\/p>|<br)', listGroups=['title', 'url'])
|
||||
|
||||
|
||||
def findvideos(item):
|
||||
@@ -184,11 +223,10 @@ def findvideos(item):
|
||||
load_links(itemlist, '<strong>Streaming 3D[^<]+</strong>(.*?)<tableclass=cbtable height=30>', "pink", "Streaming 3D")
|
||||
|
||||
# Estrae i contenuti - Download
|
||||
load_links(itemlist, '<strong>Download:</strong>(.*?)<tableclass=cbtable height=30>', "aqua", "Download")
|
||||
# load_links(itemlist, '<strong>Download:</strong>(.*?)<tableclass=cbtable height=30>', "aqua", "Download")
|
||||
|
||||
# Estrae i contenuti - Download HD
|
||||
load_links(itemlist, '<strong>Download HD[^<]+</strong>(.*?)<tableclass=cbtable width=100% height=20>', "azure",
|
||||
"Download HD")
|
||||
# load_links(itemlist, '<strong>Download HD[^<]+</strong>(.*?)<tableclass=cbtable width=100% height=20>', "azure", "Download HD")
|
||||
|
||||
if len(itemlist) == 0:
|
||||
itemlist = servertools.find_video_items(item=item)
|
||||
@@ -213,6 +251,7 @@ def findvideos(item):
|
||||
|
||||
def findvid_serie(item):
|
||||
def load_vid_series(html, item, itemlist, blktxt):
|
||||
logger.info('HTML' + html)
|
||||
patron = '<a href="([^"]+)"[^=]+="_blank"[^>]+>(.*?)</a>'
|
||||
# Estrae i contenuti
|
||||
matches = re.compile(patron, re.DOTALL).finditer(html)
|
||||
|
||||
@@ -16,7 +16,7 @@ from platformcode import config, logger
|
||||
IDIOMAS = {'Hindi': 'Hindi'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_quality = []
|
||||
list_servers = ['openload', 'netutv']
|
||||
list_servers = ['verystream', 'openload', 'netutv']
|
||||
|
||||
host = "http://www.cinehindi.com/"
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ host = 'https://www4.doramasmp4.com/'
|
||||
IDIOMAS = {'sub': 'VOSE', 'VO': 'VO'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_quality = []
|
||||
list_servers = ['openload', 'streamango', 'netutv', 'okru', 'directo', 'mp4upload']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'netutv', 'okru', 'directo', 'mp4upload']
|
||||
|
||||
def get_source(url, referer=None):
|
||||
logger.info()
|
||||
|
||||
@@ -23,7 +23,7 @@ IDIOMAS = {'Latino': 'LAT', 'Vo':'VO', 'Vose': 'VOSE'}
|
||||
IDIOMA = "no filtrar"
|
||||
list_language = IDIOMAS.values()
|
||||
list_quality = []
|
||||
list_servers = ['openload', 'streamango', 'netutv', 'okru', 'mp4upload']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'netutv', 'okru', 'mp4upload']
|
||||
|
||||
def get_source(url, referer=None):
|
||||
logger.info()
|
||||
|
||||
@@ -15,7 +15,7 @@ host = "http://fastsubita.com"
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'speedvideo', 'wstream', 'flashx', 'vidoza', 'vidtome']
|
||||
list_servers = ['verystream', 'openload', 'speedvideo', 'wstream', 'flashx', 'vidoza', 'vidtome']
|
||||
list_quality = ['default']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'fastsubita')
|
||||
|
||||
@@ -14,7 +14,7 @@ from channelselector import thumb
|
||||
|
||||
host = "https://www.filmpertutti.club"
|
||||
headers = [['Referer', host]]
|
||||
list_servers = ['openload', 'streamango', 'wstream', 'akvideo']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'wstream', 'akvideo']
|
||||
list_quality = ['HD', 'SD']
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ host = 'https://filmsenzalimiti.space'
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', 'vidoza', 'okru']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'vidoza', 'okru']
|
||||
list_quality = ['1080p', '720p', '480p', '360']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'filmsenzalimiti')
|
||||
|
||||
@@ -19,7 +19,7 @@ __channel__ = 'filmsenzalimiticc'
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'vidlox', 'youtube']
|
||||
list_servers = ['verystream', 'openload', 'vidlox', 'youtube']
|
||||
list_quality = ['default']
|
||||
|
||||
# Necessario per Verifica Link
|
||||
|
||||
@@ -18,7 +18,7 @@ host = "https://ilgeniodellostreaming.pw"
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', 'youtube']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'youtube']
|
||||
list_quality = ['default']
|
||||
|
||||
|
||||
|
||||
@@ -16,6 +16,10 @@ from core.scrapertools import decodeHtmlentities as dhe
|
||||
from platformcode import config, logger
|
||||
from platformcode import platformtools
|
||||
|
||||
import xbmcaddon
|
||||
addon = xbmcaddon.Addon('metadata.themoviedb.org')
|
||||
def_lang = addon.getSetting('language')
|
||||
|
||||
global mainWindow
|
||||
mainWindow = list()
|
||||
ActoresWindow = None
|
||||
@@ -1509,10 +1513,10 @@ class ActorInfo(xbmcgui.WindowDialog):
|
||||
self.dialog = kwargs.get('dialog')
|
||||
if self.item.contentType == "movie":
|
||||
tipo = "movie"
|
||||
search = {'url': 'person/%s' % self.id, 'language': 'es', 'append_to_response': 'movie_credits,images'}
|
||||
search = {'url': 'person/%s' % self.id, 'language': def_lang, 'append_to_response': 'movie_credits,images'}
|
||||
else:
|
||||
tipo = "tv"
|
||||
search = {'url': 'person/%s' % self.id, 'language': 'es', 'append_to_response': 'tv_credits,images'}
|
||||
search = {'url': 'person/%s' % self.id, 'language': def_lang, 'append_to_response': 'tv_credits,images'}
|
||||
|
||||
actor_tmdb = tmdb.Tmdb(discover=search)
|
||||
if not actor_tmdb.result.get("biography") and actor_tmdb.result.get("imdb_id"):
|
||||
@@ -2249,7 +2253,7 @@ def get_recomendations(item, infoLabels, recomendaciones):
|
||||
tipo = item.contentType
|
||||
if tipo != "movie":
|
||||
tipo = "tv"
|
||||
search = {'url': '%s/%s/recommendations' % (tipo, infoLabels['tmdb_id']), 'language': 'es', 'page': 1}
|
||||
search = {'url': '%s/%s/recommendations' % (tipo, infoLabels['tmdb_id']), 'language': def_lang, 'page': 1}
|
||||
reco_tmdb = tmdb.Tmdb(discover=search, tipo=tipo, idioma_busqueda="es")
|
||||
|
||||
for i in range(0, len(reco_tmdb.results)):
|
||||
@@ -2307,8 +2311,8 @@ def fanartv(item, infoLabels, images={}):
|
||||
headers = [['Content-Type', 'application/json']]
|
||||
id_search = infoLabels.get('tvdb_id')
|
||||
if item.contentType != "movie" and not id_search:
|
||||
search = {'url': 'tv/%s/external_ids' % infoLabels['tmdb_id'], 'language': 'es'}
|
||||
ob_tmdb = tmdb.Tmdb(discover=search, idioma_busqueda='es')
|
||||
search = {'url': 'tv/%s/external_ids' % infoLabels['tmdb_id'], 'language': def_lang}
|
||||
ob_tmdb = tmdb.Tmdb(discover=search, idioma_busqueda=def_lang)
|
||||
id_search = ob_tmdb.result.get("tvdb_id")
|
||||
elif item.contentType == "movie":
|
||||
id_search = infoLabels.get('tmdb_id')
|
||||
|
||||
@@ -16,7 +16,7 @@ from platformcode import logger, config
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'youtube']
|
||||
list_servers = ['verystream', 'openload', 'youtube']
|
||||
list_quality = ['default']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'italiafilmhd')
|
||||
|
||||
@@ -19,7 +19,7 @@ from channelselector import get_thumb
|
||||
IDIOMAS = {'Latino':'Lat', 'Español':'Cast', 'Subtitulado':'VOSE'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_quality = ['HD 1080p', 'HD 720p', 'DVDRIP', 'CAM']
|
||||
list_servers = ['openload', 'vidoza', 'clipwatching', 'fastplay', 'flashx', 'gamovideo', 'powvideo', 'streamango',
|
||||
list_servers = ['verystream', 'openload', 'vidoza', 'clipwatching', 'fastplay', 'flashx', 'gamovideo', 'powvideo', 'streamango',
|
||||
'streamcherry', 'rapidvideo']
|
||||
|
||||
host = 'https://playview.io/'
|
||||
|
||||
@@ -14,6 +14,10 @@ from platformcode import config, logger
|
||||
from platformcode import platformtools
|
||||
from core import tmdb
|
||||
|
||||
import xbmc, xbmcaddon
|
||||
addon = xbmcaddon.Addon('metadata.themoviedb.org')
|
||||
def_lang = addon.getSetting('language')
|
||||
|
||||
link_list = []
|
||||
max_links = 30
|
||||
|
||||
@@ -92,7 +96,7 @@ def sub_menu(item):
|
||||
thumbnail = get_thumb("search_star.png")
|
||||
|
||||
itemlist.append(Item(channel='tvmoviedb', title=config.get_localized_string(70036), action="search_",
|
||||
search={'url': 'search/person', 'language': 'es', 'page': 1}, star=True,
|
||||
search={'url': 'search/person', 'language': def_lang, 'page': 1}, star=True,
|
||||
thumbnail=thumbnail))
|
||||
|
||||
itemlist.append(Item(channel=item.channel, action="search",
|
||||
@@ -180,8 +184,8 @@ def setting_channel_new(item):
|
||||
config.get_localized_string(70571),
|
||||
config.get_localized_string(70572),
|
||||
config.get_localized_string(70573),
|
||||
config.get_localized_string(70574),
|
||||
config.get_localized_string(70575),
|
||||
# config.get_localized_string(70574),
|
||||
# config.get_localized_string(70575),
|
||||
config.get_localized_string(70576)
|
||||
]
|
||||
presel_values = ['skip', 'actual', 'all', 'none', 'cast', 'lat', 'ita']
|
||||
@@ -623,7 +627,7 @@ def do_search(item, categories=None):
|
||||
from_action="search", from_channel=element["item"].channel, tecleado=tecleado))
|
||||
# todos los resultados juntos, en la misma lista
|
||||
else:
|
||||
title = " [ Resultados del canal %s ] " % channel
|
||||
title = config.get_localized_string(70697) % channel
|
||||
itemlist.append(Item(title=title, channel="search", action="",
|
||||
folder=False, text_bold=True, from_channel=channel))
|
||||
for i in element["itemlist"]:
|
||||
@@ -709,8 +713,8 @@ def discover_list(item):
|
||||
title = unify.normalize(elem['name']).capitalize()
|
||||
tvshow = True
|
||||
|
||||
new_item = Item(channel='search', title=title, infoLabels=elem, action='search_tmdb', extra=title,
|
||||
category='Resultados', context ='')
|
||||
new_item = Item(channel='search', title=title, infoLabels=elem, action='do_search', extra=title,
|
||||
category=config.get_localized_string(70695), context ='')
|
||||
|
||||
if tvshow:
|
||||
new_item.contentSerieName = title
|
||||
|
||||
@@ -283,7 +283,7 @@ def discover_list(item):
|
||||
tvshow = True
|
||||
|
||||
new_item = Item(channel='searchall', title=title, infoLabels=elem, action='search_tmdb', extra=title,
|
||||
category='Resultados', context='')
|
||||
category=config.get_localized_string(70695), context='')
|
||||
|
||||
if tvshow:
|
||||
new_item.contentSerieName = title
|
||||
|
||||
@@ -15,7 +15,7 @@ host = "https://seriehd.casa/"
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', 'thevideome']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'thevideome']
|
||||
list_quality = ['1080p', '720p', '480p', '360']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'seriehd')
|
||||
|
||||
@@ -8,6 +8,10 @@ from platformcode import config, logger
|
||||
from platformcode import launcher
|
||||
import xbmc, xbmcgui, xbmcplugin, xbmcaddon, channelselector
|
||||
|
||||
import xbmc, xbmcaddon
|
||||
addon = xbmcaddon.Addon('metadata.themoviedb.org')
|
||||
def_lang = addon.getSetting('language')
|
||||
|
||||
media_path = os.path.join(config.get_runtime_path(), "resources/skins/Default/media/side_menu/")
|
||||
menu_settings_path = os.path.join(config.get_data_path(), "settings_channels", 'menu_settings_data.json')
|
||||
|
||||
@@ -309,7 +313,7 @@ class Main(xbmcgui.WindowXMLDialog):
|
||||
new_item = Item(channel='search', action="search")
|
||||
elif control == config.get_localized_string(70036):
|
||||
new_item = Item(channel='tvmoviedb', title="Buscar actor/actriz", action="search_",
|
||||
search={'url': 'search/person', 'language': 'es', 'page': 1}, star=True)
|
||||
search={'url': 'search/person', 'language': def_lang, 'page': 1}, star=True)
|
||||
elif control == config.get_localized_string(70010):
|
||||
new_item = Item(channel='search', action="setting_channel")
|
||||
elif control == '':
|
||||
|
||||
@@ -3,7 +3,7 @@ from core.item import Item
|
||||
|
||||
host = 'https://www.streamingaltadefinizione.world/'
|
||||
|
||||
list_servers = ['openload', 'wstream']
|
||||
list_servers = ['verystream', 'openload', 'wstream']
|
||||
list_quality = ['1080p', 'HD', 'DVDRIP', 'SD', 'CAM']
|
||||
|
||||
def mainlist(item):
|
||||
|
||||
@@ -17,7 +17,7 @@ from platformcode import logger
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', 'vidlox', 'youtube']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'vidlox', 'youtube']
|
||||
list_quality = ['default']
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'tantifilm')
|
||||
|
||||
@@ -15,6 +15,10 @@ from core.item import Item
|
||||
from platformcode import config, logger
|
||||
from platformcode import platformtools
|
||||
|
||||
import xbmc, xbmcaddon
|
||||
addon = xbmcaddon.Addon('metadata.themoviedb.org')
|
||||
def_lang = addon.getSetting('language')
|
||||
|
||||
result = None
|
||||
window_select = []
|
||||
# Para habilitar o no la opción de búsqueda manual
|
||||
@@ -128,7 +132,7 @@ def tmdb_trailers(item, tipo="movie"):
|
||||
itemlist = []
|
||||
tmdb_search = None
|
||||
if item.infoLabels['tmdb_id']:
|
||||
tmdb_search = Tmdb(id_Tmdb=item.infoLabels['tmdb_id'], tipo=tipo, idioma_busqueda='es')
|
||||
tmdb_search = Tmdb(id_Tmdb=item.infoLabels['tmdb_id'], tipo=tipo, idioma_busqueda=def_lang)
|
||||
elif item.infoLabels['year']:
|
||||
tmdb_search = Tmdb(texto_buscado=item.contentTitle, tipo=tipo, year=item.infoLabels['year'])
|
||||
|
||||
|
||||
@@ -547,7 +547,7 @@ def detalles(item):
|
||||
title=config.get_localized_string(70070) % item.infoLabels['originaltitle']))
|
||||
|
||||
if langt != "es" and langt != "en" and item.infoLabels["tmdb_id"]:
|
||||
tmdb_lang = Tmdb(id_Tmdb=item.infoLabels["tmdb_id"], tipo=item.extra, idioma_busqueda='es')
|
||||
tmdb_lang = Tmdb(id_Tmdb=item.infoLabels["tmdb_id"], tipo=item.extra, idioma_busqueda=def_lang)
|
||||
if tmdb_lang.result.get("title") and tmdb_lang.result["title"] != item.contentTitle \
|
||||
and tmdb_lang.result["title"] != item.infoLabels['originaltitle']:
|
||||
tmdb_lang = tmdb_lang.result["title"]
|
||||
@@ -1499,7 +1499,7 @@ def detalles_fa(item):
|
||||
title=config.get_localized_string(70070) % item.infoLabels['originaltitle']))
|
||||
|
||||
if langt != "es" and langt != "en" and item.infoLabels["tmdb_id"]:
|
||||
tmdb_lang = Tmdb(id_Tmdb=item.infoLabels["tmdb_id"], tipo=item.extra, idioma_busqueda='es')
|
||||
tmdb_lang = Tmdb(id_Tmdb=item.infoLabels["tmdb_id"], tipo=item.extra, idioma_busqueda=def_lang)
|
||||
if tmdb_lang.result.get("title") and tmdb_lang.result["title"] != item.contentTitle:
|
||||
tmdb_lang = tmdb_lang.result["title"]
|
||||
itemlist.append(item.clone(action="busqueda", title=config.get_localized_string(70066) % tmdb_lang,
|
||||
|
||||
@@ -22,7 +22,7 @@ def findhost():
|
||||
data = httptools.downloadpage(cb01Url).data
|
||||
global host, headers
|
||||
|
||||
host = scrapertoolsV2.find_single_match(data, r'<a class="?mega-menu-link"? href=(https://vedohd[^/"]+)')+'/'
|
||||
host = scrapertoolsV2.find_single_match(data, r'class="?mega-menu-link"? href="?(https://vedohd[^/"]+)"?')+'/'
|
||||
|
||||
if 'https' not in host: # in caso cb01 cambi, si spera di riuscire ad accedere da questo URL
|
||||
host = "https://vedohd.pw/"
|
||||
@@ -31,7 +31,7 @@ def findhost():
|
||||
|
||||
IDIOMAS = {'Italiano': 'IT'}
|
||||
list_language = IDIOMAS.values()
|
||||
list_servers = ['openload', 'streamango', 'wstream']
|
||||
list_servers = ['verystream', 'openload', 'streamango', 'wstream']
|
||||
list_quality = ['HD', 'SD']
|
||||
|
||||
#esclusione degli articoli 'di servizio'
|
||||
|
||||
@@ -7,6 +7,9 @@ from core import channeltools
|
||||
from core.item import Item
|
||||
from platformcode.unify import thumb_dict
|
||||
from platformcode import config, logger, unify
|
||||
import xbmcaddon
|
||||
addon = xbmcaddon.Addon('plugin.video.kod')
|
||||
downloadenabled = addon.getSetting('downloadenabled')
|
||||
|
||||
|
||||
def getmainlist(view="thumb_"):
|
||||
@@ -44,11 +47,11 @@ def getmainlist(view="thumb_"):
|
||||
category=config.get_localized_string(30119), viewmode="thumbnails",
|
||||
context=[{"title": config.get_localized_string(70287), "channel": "videolibrary",
|
||||
"action": "channel_config"}]))
|
||||
|
||||
itemlist.append(Item(title=config.get_localized_string(30101), channel="downloads", action="mainlist",
|
||||
thumbnail=get_thumb("downloads.png", view), viewmode="list",
|
||||
context=[{"title": config.get_localized_string(70288), "channel": "setting", "config": "downloads",
|
||||
"action": "channel_config"}]))
|
||||
if downloadenabled != "false":
|
||||
itemlist.append(Item(title=config.get_localized_string(30101), channel="downloads", action="mainlist",
|
||||
thumbnail=get_thumb("downloads.png", view), viewmode="list",
|
||||
context=[{"title": config.get_localized_string(70288), "channel": "setting", "config": "downloads",
|
||||
"action": "channel_config"}]))
|
||||
|
||||
thumb_setting = "setting_%s.png" % 0 # config.get_setting("plugin_updates_available")
|
||||
|
||||
|
||||
@@ -278,11 +278,11 @@ def render_items(itemlist, parent_item):
|
||||
else:
|
||||
if 'similar' in parent_item.list_type:
|
||||
if parent_item.contentTitle != '':
|
||||
breadcrumb = 'Similares (%s)' % parent_item.contentTitle
|
||||
breadcrumb = config.get_localized_string(70693) + parent_item.contentTitle
|
||||
else:
|
||||
breadcrumb = 'Similares (%s)' % parent_item.contentSerieName
|
||||
breadcrumb = config.get_localized_string(70693) + parent_item.contentSerieName
|
||||
else:
|
||||
breadcrumb = 'Busqueda'
|
||||
breadcrumb = config.get_localized_string(70693)
|
||||
|
||||
xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=breadcrumb)
|
||||
|
||||
@@ -894,8 +894,12 @@ def get_dialogo_opciones(item, default_action, strm, autoplay):
|
||||
opciones.append(config.get_localized_string(30164))
|
||||
else:
|
||||
# "Descargar"
|
||||
opcion = config.get_localized_string(30153)
|
||||
opciones.append(opcion)
|
||||
import xbmcaddon
|
||||
addon = xbmcaddon.Addon('plugin.video.kod')
|
||||
downloadenabled = addon.getSetting('downloadenabled')
|
||||
if downloadenabled != "false":
|
||||
opcion = config.get_localized_string(30153)
|
||||
opciones.append(opcion)
|
||||
|
||||
if item.isFavourite:
|
||||
# "Quitar de favoritos"
|
||||
@@ -960,6 +964,15 @@ def set_opcion(item, seleccion, opciones, video_urls):
|
||||
# "Descargar"
|
||||
elif opciones[seleccion] == config.get_localized_string(30153):
|
||||
from channels import downloads
|
||||
import xbmcaddon
|
||||
import xbmcgui
|
||||
__addon__ = xbmcaddon.Addon()
|
||||
__addonname__ = __addon__.getAddonInfo('name')
|
||||
line1 = config.get_localized_string(70690)
|
||||
line2 = config.get_localized_string(70691)
|
||||
line3 = config.get_localized_string(70692)
|
||||
xbmcgui.Dialog().ok(__addonname__, line1, line2, line3)
|
||||
|
||||
if item.contentType == "list" or item.contentType == "tvshow":
|
||||
item.contentType = "video"
|
||||
item.play_menu = True
|
||||
|
||||
@@ -4836,11 +4836,11 @@ msgid "Move down all"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70539"
|
||||
msgid "* Create different folders to store your favorite links within Icarus. [CR]"
|
||||
msgid "* Create different folders to store your favorite links within Kodi on Demand. [CR]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70540"
|
||||
msgid "* To add links to folders, access the context menu from any point in Icarus.[CR]"
|
||||
msgid "* To add links to folders, access the context menu from any point in Kodi on Demand.[CR]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70541"
|
||||
@@ -9836,11 +9836,11 @@ msgid "Move down all"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70539"
|
||||
msgid "* Create different folders to store your favorite links within Icarus. [CR]"
|
||||
msgid "* Create different folders to store your favorite links within Kodi on Demand. [CR]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70540"
|
||||
msgid "* To add links to folders, access the context menu from any point in Icarus.[CR]"
|
||||
msgid "* To add links to folders, access the context menu from any point in Kodi on Demand.[CR]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70541"
|
||||
@@ -10020,7 +10020,7 @@ msgid "Do you want to update Quasar to avoid errors?"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70585"
|
||||
msgid "RENUMBERING"
|
||||
msgid "[B]Renumbering[/B] (beta)"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70586"
|
||||
@@ -10439,4 +10439,35 @@ msgstr ""
|
||||
|
||||
msgctxt "#70688"
|
||||
msgid "Episode 0 is a special episode, enter the number of this episode"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70689"
|
||||
msgid "Enable Download"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70690"
|
||||
msgid "Disclaimer"
|
||||
msgstr "Disclaimer"
|
||||
|
||||
msgctxt "#70691"
|
||||
msgid "Using the download function you declare that you have a physical copy and use this function as a backup of the same."
|
||||
msgstr ""
|
||||
msgctxt "#70692"
|
||||
msgid "The KOD team assumes no responsibility for the use that is made of this proposed function"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70693"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70694"
|
||||
msgid "Similar to "
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70695"
|
||||
msgid "Results"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#70697"
|
||||
msgid " [Results of the %s channel] "
|
||||
msgstr ""
|
||||
@@ -1850,8 +1850,8 @@ msgid "KOD - FAQ - %s"
|
||||
msgstr "KOD - FAQ - %s"
|
||||
|
||||
msgctxt "#60462"
|
||||
msgid "You may not have written the library path correctly in 'Settings>Preferences'.\nIl The specified path must be exactly the same as the 'source' entered in 'Archive' of the Kodi library.\nAVANZATO: This path is also found in 'sources.xml'.\nThere can be problems using some Kodi forks and paths with 'special://'. SPMC, for example, has problems with this, and there doesn't seem to be a solution, as it is an external problem to Alfa that has existed for a long time.\nYou can try solving these problems in 'Settings>Library Settings' by changing the 'Search in' setting from 'The folder of each series' to 'All library'."
|
||||
msgstr "Potresti non aver scritto correttamente il percorso della libreria in 'Impostazioni>Preferenze'.\nIl percorso specificato deve essere esattamente uguale al 'sorgente' inserito in 'Archivio' della libreria di Kodi.\nAVANZATO: Questo percorso si trova anche in 'sources.xml'.\nPotresti riscontrare dei problemi utilizzando alcuni fork di Kodi e percorsi con 'special://'. SPMC, per esempio, ha problemi con questo, e non sembra esserci una soluzione, poichè è un problema esterno ad Alfa che esiste da molto tempo.\nPuoi provare a risolvere questi problemi in 'Impostazioni>Impostazioni libreria', modificando l'impostazione 'Esegui ricerca contenuto in' da 'La cartella di ogni serie' in 'Tutta la libreria'."
|
||||
msgid "You may not have written the library path correctly in 'Settings>Preferences'.\nIl The specified path must be exactly the same as the 'source' entered in 'Archive' of the Kodi library.\nAVANZATO: This path is also found in 'sources.xml'.\nThere can be problems using some Kodi forks and paths with 'special://'. SPMC, for example, has problems with this, and there doesn't seem to be a solution, as it is an external problem to Kodi on Demand that has existed for a long time.\nYou can try solving these problems in 'Settings>Library Settings' by changing the 'Search in' setting from 'The folder of each series' to 'All library'."
|
||||
msgstr "Potresti non aver scritto correttamente il percorso della libreria in 'Impostazioni>Preferenze'.\nIl percorso specificato deve essere esattamente uguale al 'sorgente' inserito in 'Archivio' della libreria di Kodi.\nAVANZATO: Questo percorso si trova anche in 'sources.xml'.\nPotresti riscontrare dei problemi utilizzando alcuni fork di Kodi e percorsi con 'special://'. SPMC, per esempio, ha problemi con questo, e non sembra esserci una soluzione, poichè è un problema esterno Kodi on Demand che esiste da molto tempo.\nPuoi provare a risolvere questi problemi in 'Impostazioni>Impostazioni libreria', modificando l'impostazione 'Esegui ricerca contenuto in' da 'La cartella di ogni serie' in 'Tutta la libreria'."
|
||||
|
||||
msgctxt "#60463"
|
||||
msgid "The channel site may not work. In case the site works you can report the problem on github."
|
||||
@@ -1871,7 +1871,7 @@ msgstr "Sì, l'opzione per mostrare i risultati uniti o divisi per canali si tro
|
||||
|
||||
msgctxt "#60467"
|
||||
msgid "To report a problem on'https://t.me/kodiondemand' you need to:|the version you're using of Alpha.|The version you're using of kodi, mediaserver, etc.|the version and name of the operating system you're using.|The name of the skin (in case you're using Kodi) and whether using the default skin has solved the problem.|Description of the problem and any test cases.To activate the log in detailed mode, go to:|Configuration.|Preferences.|In the General tab - Check the option: Generate detailed log. The detailed log file can be found in the following path: \n\n%s"
|
||||
msgstr "Per segnalare un problema su 'https://t.me/kodiondemand' è necessario:|la versione che si sta usando di Alpha.|La versione che si sta usando di kodi, mediaserver, ecc.|la versione e il nome del sistema operativo che si sta usando.|Il nome della skin (nel caso in cui si stia usando Kodi) e se l'utilizzo della skin predefinita ha risolto il problema.|La descrizione del problema e tutti i casi di test.Per attivare il log in modalità dettagliata, andare su:|Configurazione.|Preferenze.|Nella scheda Generale - Selezionare l'opzione: Genera log dettagliato Il file di log dettagliato si trova nel seguente percorso: \n\n%s"
|
||||
msgstr "Per segnalare un problema su 'https://t.me/kodiondemand' è necessario:|la versione che si sta usando di Kodi on Demand.|La versione che si sta usando di kodi, mediaserver, ecc.|la versione e il nome del sistema operativo che si sta usando.|Il nome della skin (nel caso in cui si stia usando Kodi) e se l'utilizzo della skin predefinita ha risolto il problema.|La descrizione del problema e tutti i casi di test.Per attivare il log in modalità dettagliata, andare su:|Configurazione.|Preferenze.|Nella scheda Generale - Selezionare l'opzione: Genera log dettagliato Il file di log dettagliato si trova nel seguente percorso: \n\n%s"
|
||||
|
||||
msgctxt "#60468"
|
||||
msgid "You can find our Telegram group at @kodiondemand"
|
||||
@@ -4820,12 +4820,12 @@ msgid "Move down all"
|
||||
msgstr "Sposta tutto in basso"
|
||||
|
||||
msgctxt "#70539"
|
||||
msgid "* Create different folders to store your favorite links within Icarus. [CR]"
|
||||
msgstr "* Crea diverse cartelle per memorizzare i tuoi collegamenti preferiti all'interno di Icarus."
|
||||
msgid "* Create different folders to store your favorite links within Kodi on Demand. [CR]"
|
||||
msgstr "* Crea diverse cartelle per memorizzare i tuoi collegamenti preferiti all'interno di Kodi on Demand."
|
||||
|
||||
msgctxt "#70540"
|
||||
msgid "* To add links to folders, access the context menu from any point in Icarus.[CR]"
|
||||
msgstr "* Per aggiungere collegamenti alle cartelle accedi al menu contestuale da qualsiasi punto di Icarus."
|
||||
msgid "* To add links to folders, access the context menu from any point in Kodi on Demand.[CR]"
|
||||
msgstr "* Per aggiungere collegamenti alle cartelle accedi al menu contestuale da qualsiasi punto di Kodi on Demand."
|
||||
|
||||
msgctxt "#70541"
|
||||
msgid "* The links can be channels, sections within the channels, searches, and even movies and series although for the latter it is preferable to use the video library."
|
||||
@@ -5004,8 +5004,8 @@ msgid "Do you want to update Quasar to avoid errors?"
|
||||
msgstr "Vuoi aggiornare Quasar per evitare errori?"
|
||||
|
||||
msgctxt "#70585"
|
||||
msgid "RENUMBERING"
|
||||
msgstr "RINUMERAZIONE"
|
||||
msgid "[B]Renumbering[/B] (beta)"
|
||||
msgstr "[B]Rinumerazione[/B] (beta)"
|
||||
|
||||
msgctxt "#70586"
|
||||
msgid "Set up series number..."
|
||||
@@ -5428,4 +5428,36 @@ msgstr "Inserisci il numero dell'episodio di partenza"
|
||||
|
||||
msgctxt "#70688"
|
||||
msgid "Episode 0 is a special episode, enter the number of this episode"
|
||||
msgstr "L'episodio 0 è un episodio speciale, inserisci il numero di questo episodio"
|
||||
msgstr "L'episodio 0 è un episodio speciale, inserisci il numero di questo episodio"
|
||||
|
||||
msgctxt "#70689"
|
||||
msgid "Enable Download"
|
||||
msgstr "Abilita Download"
|
||||
|
||||
msgctxt "#70690"
|
||||
msgid "Disclaimer"
|
||||
msgstr "Disclaimer"
|
||||
|
||||
msgctxt "#70691"
|
||||
msgid "Utilizzando la funzione di download dichiari di essere in possesso di una copia fisica e di utilizzare questa funzione come backup dello stesso."
|
||||
msgstr "Utilizzando la funzione di download dichiari di essere in possesso di una copia fisica e di utilizzare questa funzione come backup dello stesso."
|
||||
|
||||
msgctxt "#70692"
|
||||
msgid "Il team di KOD non si assume alcuna responsabilità dell'uso che viene fatto di questa funzione proposta"
|
||||
msgstr "Il team di KOD non si assume alcuna responsabilità dell'uso che viene fatto di questa funzione proposta"
|
||||
|
||||
msgctxt "#70693"
|
||||
msgid "Search"
|
||||
msgstr "Ricerca"
|
||||
|
||||
msgctxt "#70694"
|
||||
msgid "Similar to "
|
||||
msgstr "Simile a "
|
||||
|
||||
msgctxt "#70695"
|
||||
msgid "Results"
|
||||
msgstr "Risultati"
|
||||
|
||||
msgctxt "#70697"
|
||||
msgid " [Results of the %s channel] "
|
||||
msgstr " [Risultati del canale %s] "
|
||||
BIN
resources/media/channels/banner/animepertutti.png
Normal file
BIN
resources/media/channels/banner/animepertutti.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
BIN
resources/media/channels/thumb/animepertutti.png
Normal file
BIN
resources/media/channels/thumb/animepertutti.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
@@ -24,12 +24,16 @@
|
||||
</category>
|
||||
|
||||
<!-- Path downloads -->
|
||||
<category label="30153">
|
||||
<setting id="downloadenabled" type="bool" label="70689" default="false"/>
|
||||
<setting id="downloadpath" type="folder" label="30017" default=""/>
|
||||
<setting id="downloadlistpath" type="folder" label="30018" default=""/>
|
||||
</category>
|
||||
|
||||
<category label="30501">
|
||||
<setting id="downloadpath" type="folder" label="30017" default=""/>
|
||||
<setting id="downloadlistpath" type="folder" label="30018" default=""/>
|
||||
<setting id="videolibrarypath" type="folder" label="30067" default=""/>
|
||||
|
||||
<setting type="sep"/>
|
||||
<setting label="30131" type="lsep"/>
|
||||
<setting id="folder_tvshows" type="text" label="70118" default="SERIES"/>
|
||||
<setting id="folder_movies" type="text" label="70119" default="CINE"/>
|
||||
|
||||
Reference in New Issue
Block a user