Merge branch 'master' into master

This commit is contained in:
greko17
2019-05-03 17:22:52 +02:00
committed by GitHub
37 changed files with 347 additions and 230 deletions

3
.gitignore vendored
View File

@@ -2,3 +2,6 @@
*.pyc
.DS_Store
.idea/
.dev
.directory
__pycache__/

View File

@@ -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)

View File

@@ -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')

View File

@@ -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",

View File

@@ -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

View File

@@ -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())

View File

@@ -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:

View File

@@ -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')

View File

@@ -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')

View File

@@ -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 &#x25b6; TROVA L&#8217;INDIRIZZO UFFICIALE ', 'Aggiornamento Quotidiano Serie TV', 'OSCAR 2019 ▶ CB01.UNO: Vota il tuo film preferito! 🎬']
blacklist = ['BENVENUTI', 'Richieste Serie TV', 'CB01.UNO &#x25b6; TROVA L&#8217;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]+&#215;[0-9]+)(.*?)(?:</p>|<br)', listGroups=['title', 'url'])
patron='<p>([0-9]+(?:×|&#215;)[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)

View File

@@ -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/"

View File

@@ -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()

View File

@@ -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()

View File

@@ -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')

View File

@@ -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']

View File

@@ -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')

View File

@@ -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

View File

@@ -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']

View File

@@ -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')

View File

@@ -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')

View File

@@ -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/'

View File

@@ -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

View File

@@ -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

View File

@@ -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')

View File

@@ -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 == '':

View File

@@ -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):

View File

@@ -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')

View File

@@ -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'])

View File

@@ -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,

View File

@@ -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'

View File

@@ -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")

View File

@@ -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

View File

@@ -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 ""

View File

@@ -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] "

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -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"/>