download dalla videoteca
This commit is contained in:
@@ -631,7 +631,7 @@ msgid "No links available that meets the requirements of the Black list. Try aga
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgctxt "#60003"
|
msgctxt "#60003"
|
||||||
msgid ""
|
msgid "Download unseen episodes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgctxt "#60004"
|
msgctxt "#60004"
|
||||||
|
|||||||
@@ -630,8 +630,8 @@ msgid "No links available that meets the requirements of the Black list. Try aga
|
|||||||
msgstr "Nessun collegamento disponibile che soddisfi i requisiti della Black list. Riprova modificando il filtro in 'Configurazione Server"
|
msgstr "Nessun collegamento disponibile che soddisfi i requisiti della Black list. Riprova modificando il filtro in 'Configurazione Server"
|
||||||
|
|
||||||
msgctxt "#60003"
|
msgctxt "#60003"
|
||||||
msgid ""
|
msgid "Download unseen episodes"
|
||||||
msgstr ""
|
msgstr "Scarica episodi non visti"
|
||||||
|
|
||||||
msgctxt "#60004"
|
msgctxt "#60004"
|
||||||
msgid "No connector for the server %s"
|
msgid "No connector for the server %s"
|
||||||
|
|||||||
+47
-16
@@ -627,7 +627,7 @@ def download_from_server(item):
|
|||||||
|
|
||||||
progreso = platformtools.dialog_progress_bg(config.get_localized_string(30101), config.get_localized_string(70178) % item.server)
|
progreso = platformtools.dialog_progress_bg(config.get_localized_string(30101), config.get_localized_string(70178) % item.server)
|
||||||
try:
|
try:
|
||||||
if item.contentChannel == 'community':
|
if item.contentChannel in ['community', 'videolibrary']:
|
||||||
channel = __import__('specials.%s' % item.contentChannel, None, None, ['specials.%s' % item.contentChannel])
|
channel = __import__('specials.%s' % item.contentChannel, None, None, ['specials.%s' % item.contentChannel])
|
||||||
else:
|
else:
|
||||||
channel = __import__('channels.%s' % item.contentChannel, None, None, ['channels.%s' % item.contentChannel])
|
channel = __import__('channels.%s' % item.contentChannel, None, None, ['channels.%s' % item.contentChannel])
|
||||||
@@ -696,12 +696,13 @@ def download_from_best_server(item):
|
|||||||
|
|
||||||
result = {"downloadStatus": STATUS_CODES.error}
|
result = {"downloadStatus": STATUS_CODES.error}
|
||||||
progreso = platformtools.dialog_progress_bg(config.get_localized_string(30101), config.get_localized_string(70179))
|
progreso = platformtools.dialog_progress_bg(config.get_localized_string(30101), config.get_localized_string(70179))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if item.downloadItemlist:
|
if item.downloadItemlist:
|
||||||
logger.info('using cached servers')
|
logger.info('using cached servers')
|
||||||
play_items = [Item().fromurl(i) for i in item.downloadItemlist]
|
play_items = [Item().fromurl(i) for i in item.downloadItemlist]
|
||||||
else:
|
else:
|
||||||
if item.contentChannel == 'community':
|
if item.contentChannel in ['community', 'videolibrary']:
|
||||||
channel = __import__('specials.%s' % item.contentChannel, None, None, ['specials.%s' % item.contentChannel])
|
channel = __import__('specials.%s' % item.contentChannel, None, None, ['specials.%s' % item.contentChannel])
|
||||||
else:
|
else:
|
||||||
channel = __import__('channels.%s' % item.contentChannel, None, None, ['channels.%s' % item.contentChannel])
|
channel = __import__('channels.%s' % item.contentChannel, None, None, ['channels.%s' % item.contentChannel])
|
||||||
@@ -755,7 +756,7 @@ def select_server(item):
|
|||||||
logger.info('using cached servers')
|
logger.info('using cached servers')
|
||||||
play_items = [Item().fromurl(i) for i in item.downloadItemlist]
|
play_items = [Item().fromurl(i) for i in item.downloadItemlist]
|
||||||
else:
|
else:
|
||||||
if item.contentChannel == 'community':
|
if item.contentChannel in ['community', 'videolibrary']:
|
||||||
channel = __import__('specials.%s' % item.contentChannel, None, None, ['specials.%s' % item.contentChannel])
|
channel = __import__('specials.%s' % item.contentChannel, None, None, ['specials.%s' % item.contentChannel])
|
||||||
else:
|
else:
|
||||||
channel = __import__('channels.%s' % item.contentChannel, None, None, ['channels.%s' % item.contentChannel])
|
channel = __import__('channels.%s' % item.contentChannel, None, None, ['channels.%s' % item.contentChannel])
|
||||||
@@ -823,7 +824,7 @@ def get_episodes(item):
|
|||||||
episodes = [Item().fromurl(i) for i in item.downloadItemlist]
|
episodes = [Item().fromurl(i) for i in item.downloadItemlist]
|
||||||
else:
|
else:
|
||||||
# importamos el canal
|
# importamos el canal
|
||||||
if item.contentChannel == 'community':
|
if item.contentChannel in ['community', 'videolibrary']:
|
||||||
channel = __import__('specials.%s' % item.contentChannel, None, None, ["specials.%s" % item.contentChannel])
|
channel = __import__('specials.%s' % item.contentChannel, None, None, ["specials.%s" % item.contentChannel])
|
||||||
else:
|
else:
|
||||||
channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel])
|
channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel])
|
||||||
@@ -868,7 +869,7 @@ def get_episodes(item):
|
|||||||
|
|
||||||
episode.downloadFilename = filetools.validate_path(filetools.join(item.downloadFilename, "%dx%0.2d - %s" % (episode.contentSeason, episode.contentEpisodeNumber, episode.contentTitle.strip())))
|
episode.downloadFilename = filetools.validate_path(filetools.join(item.downloadFilename, "%dx%0.2d - %s" % (episode.contentSeason, episode.contentEpisodeNumber, episode.contentTitle.strip())))
|
||||||
if season:
|
if season:
|
||||||
if scrapertools.find_single_match(episode.title, r'(\d+)x') == season_number:
|
if int(scrapertools.find_single_match(episode.title, r'(\d+)x')) == int(season_number):
|
||||||
itemlist.append(episode)
|
itemlist.append(episode)
|
||||||
else:
|
else:
|
||||||
itemlist.append(episode)
|
itemlist.append(episode)
|
||||||
@@ -920,6 +921,8 @@ def save_download(item):
|
|||||||
|
|
||||||
|
|
||||||
def save_download_background(item):
|
def save_download_background(item):
|
||||||
|
logger.info()
|
||||||
|
|
||||||
# Menu contextual
|
# Menu contextual
|
||||||
if item.from_action and item.from_channel:
|
if item.from_action and item.from_channel:
|
||||||
item.channel = item.from_channel
|
item.channel = item.from_channel
|
||||||
@@ -930,19 +933,47 @@ def save_download_background(item):
|
|||||||
item.contentChannel = item.from_channel if item.from_channel else item.channel
|
item.contentChannel = item.from_channel if item.from_channel else item.channel
|
||||||
item.contentAction = item.from_action if item.from_action else item.action
|
item.contentAction = item.from_action if item.from_action else item.action
|
||||||
|
|
||||||
if item.contentType in ["tvshow", "episode", "season"]:
|
if item.channel == 'videolibrary':
|
||||||
if ('download' in item and item.channel != 'community') or (item.channel == 'community' and config.get_setting('show_seasons',item.channel) == False):
|
from specials import videolibrary
|
||||||
heading = config.get_localized_string(70594) # <- Enter the season number
|
|
||||||
item.dlseason = platformtools.dialog_numeric(0, heading, '')
|
|
||||||
if item.dlseason:
|
|
||||||
save_download_tvshow(item)
|
|
||||||
else:
|
|
||||||
save_download_tvshow(item)
|
|
||||||
|
|
||||||
elif item.contentType == "movie":
|
parent = Item().fromurl(item.parent)
|
||||||
save_download_movie(item)
|
parent.contentChannel = 'videolibrary'
|
||||||
|
if item.downloadItemlist: # episode
|
||||||
|
parent.downloadItemlist = item.downloadItemlist
|
||||||
|
elif item.unseen: # unseen episodes
|
||||||
|
parent.downloadItemlist = [i.tourl() for i in videolibrary.get_episodes(parent) if parent.library_playcounts[scrapertools.get_season_and_episode(i.title)] == 0]
|
||||||
|
else: # tvshow or season
|
||||||
|
parent.downloadItemlist = [i.tourl() for i in videolibrary.get_episodes(parent)]
|
||||||
|
|
||||||
|
if parent.contentType in ["tvshow", "episode", "season"]:
|
||||||
|
if not item.unseen and parent.contentSeason: # if no season, this is episode view, let's download entire serie
|
||||||
|
parent.dlseason = parent.contentSeason # this is season view, let's download season
|
||||||
|
save_download_tvshow(parent)
|
||||||
|
elif parent.contentType == "movie":
|
||||||
|
save_download_movie(parent)
|
||||||
else:
|
else:
|
||||||
save_download_video(item)
|
if item.contentType in ["tvshow", "episode", "season"]:
|
||||||
|
if ('download' in item and item.channel != 'community') or (item.channel == 'community' and config.get_setting('show_seasons',item.channel) == False):
|
||||||
|
heading = config.get_localized_string(70594) # <- Enter the season number
|
||||||
|
item.dlseason = platformtools.dialog_numeric(0, heading, '')
|
||||||
|
if item.dlseason:
|
||||||
|
save_download_tvshow(item)
|
||||||
|
else:
|
||||||
|
save_download_tvshow(item)
|
||||||
|
|
||||||
|
elif item.contentType == "movie":
|
||||||
|
save_download_movie(item)
|
||||||
|
else:
|
||||||
|
save_download_video(item)
|
||||||
|
|
||||||
|
|
||||||
|
def save_download_videolibrary(item):
|
||||||
|
logger.info()
|
||||||
|
show_disclaimer()
|
||||||
|
item.contentChannel = 'videolibrary'
|
||||||
|
item.channel = "downloads"
|
||||||
|
item.action = "save_download_background"
|
||||||
|
xbmc.executebuiltin("RunPlugin(plugin://plugin.video.kod/?" + item.tourl() + ")")
|
||||||
|
|
||||||
|
|
||||||
def save_download_video(item):
|
def save_download_video(item):
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int
|
|||||||
|
|
||||||
import xbmc, os, traceback
|
import xbmc, os, traceback
|
||||||
|
|
||||||
from channelselector import get_thumb
|
from channelselector import get_thumb, thumb
|
||||||
from core import filetools
|
from core import filetools
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
from core import videolibrarytools
|
from core import videolibrarytools
|
||||||
@@ -380,6 +380,7 @@ def get_seasons(item):
|
|||||||
new_item.infoLabels["playcount"] = 0
|
new_item.infoLabels["playcount"] = 0
|
||||||
itemlist.insert(0, new_item)
|
itemlist.insert(0, new_item)
|
||||||
|
|
||||||
|
add_download_items(item, itemlist)
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -441,7 +442,9 @@ def get_episodes(item):
|
|||||||
# logger.debug("epi:\n" + epi.tostring('\n'))
|
# logger.debug("epi:\n" + epi.tostring('\n'))
|
||||||
itemlist.append(epi)
|
itemlist.append(epi)
|
||||||
|
|
||||||
return sorted(itemlist, key=lambda it: (int(it.contentSeason), int(it.contentEpisodeNumber)))
|
itemlist = sorted(itemlist, key=lambda it: (int(it.contentSeason), int(it.contentEpisodeNumber)))
|
||||||
|
add_download_items(item, itemlist)
|
||||||
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
@@ -449,7 +452,6 @@ def findvideos(item):
|
|||||||
logger.info()
|
logger.info()
|
||||||
# logger.debug("item:\n" + item.tostring('\n'))
|
# logger.debug("item:\n" + item.tostring('\n'))
|
||||||
videolibrarytools.check_renumber_options(item)
|
videolibrarytools.check_renumber_options(item)
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
list_canales = {}
|
list_canales = {}
|
||||||
item_local = None
|
item_local = None
|
||||||
@@ -462,8 +464,8 @@ def findvideos(item):
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
#content_title = [c for c in item.contentTitle.strip().lower() if c not in ":*?<>|\/"]
|
#content_title = [c for c in item.contentTitle.strip().lower() if c not in ":*?<>|\/"]
|
||||||
content_title = "".join(c for c in item.contentTitle.strip().lower() if c not in ":*?<>|\/")
|
content_title = str(item.contentSeason) + 'x' + (str(item.contentEpisodeNumber) if item.contentEpisodeNumber > 9 \
|
||||||
|
else '0' + str(item.contentEpisodeNumber))
|
||||||
if item.contentType == 'movie':
|
if item.contentType == 'movie':
|
||||||
item.strm_path = filetools.join(videolibrarytools.MOVIES_PATH, item.strm_path)
|
item.strm_path = filetools.join(videolibrarytools.MOVIES_PATH, item.strm_path)
|
||||||
path_dir = filetools.dirname(item.strm_path)
|
path_dir = filetools.dirname(item.strm_path)
|
||||||
@@ -621,6 +623,7 @@ def findvideos(item):
|
|||||||
from specials import nextep
|
from specials import nextep
|
||||||
if nextep.check(item) and stack()[1][3] == 'run':
|
if nextep.check(item) and stack()[1][3] == 'run':
|
||||||
nextep.videolibrary(item)
|
nextep.videolibrary(item)
|
||||||
|
add_download_items(item, itemlist)
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -1080,3 +1083,34 @@ def check_tvshow_playcount(item, season):
|
|||||||
item.library_playcounts.update({item.title: playcount})
|
item.library_playcounts.update({item.title: playcount})
|
||||||
|
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
|
||||||
|
def add_download_items(item, itemlist):
|
||||||
|
downloadItem = Item(channel='downloads',
|
||||||
|
from_channel=item.channel,
|
||||||
|
title=typo(config.get_localized_string(60355), "color kod bold"),
|
||||||
|
fulltitle=item.fulltitle,
|
||||||
|
show=item.fulltitle,
|
||||||
|
contentType=item.contentType,
|
||||||
|
contentSerieName=item.contentSerieName,
|
||||||
|
url=item.url,
|
||||||
|
action='save_download',
|
||||||
|
from_action="findvideos",
|
||||||
|
contentTitle=item.contentTitle,
|
||||||
|
path=item.path,
|
||||||
|
thumbnail=thumb(thumb='downloads.png'),
|
||||||
|
parent=item.tourl())
|
||||||
|
if item.action == 'findvideos':
|
||||||
|
if item.contentType == 'episode':
|
||||||
|
downloadItem.title = typo(config.get_localized_string(60356), "color kod bold")
|
||||||
|
else: # film
|
||||||
|
downloadItem.title = typo(config.get_localized_string(60354), "color kod bold")
|
||||||
|
downloadItem.downloadItemlist = [i.tourl() for i in itemlist]
|
||||||
|
itemlist.append(downloadItem)
|
||||||
|
else:
|
||||||
|
if item.contentSeason: # season
|
||||||
|
downloadItem.title = typo(config.get_localized_string(60357), "color kod bold")
|
||||||
|
itemlist.append(downloadItem)
|
||||||
|
else: # tvshow + not seen
|
||||||
|
itemlist.append(downloadItem)
|
||||||
|
itemlist.append(downloadItem.clone(title=typo(config.get_localized_string(60003), "color kod bold"), unseen=True))
|
||||||
Reference in New Issue
Block a user