def call_unrar(rar_control): logger.info(rar_control['status']) item = Item().fromurl(rar_control['item']) mediaurl = rar_control['mediaurl'] rar_files = rar_control['rar_files'] torr_client = rar_control['torr_client'] password = rar_control['password'] size = rar_control['size'] # Creamos el listitem xlistitem = xbmcgui.ListItem(path=item.url) if config.get_platform(True)['num_version'] >= 16.0: xlistitem.setArt({ 'icon': item.thumbnail, 'thumb': item.thumbnail, 'poster': item.thumbnail, 'fanart': item.thumbnail }) else: xlistitem.setIconImage(item.thumbnail) xlistitem.setThumbnailImage(item.thumbnail) xlistitem.setProperty('fanart_image', item.thumbnail) if config.get_setting("player_mode"): xlistitem.setProperty('IsPlayable', 'true') platformtools.set_infolabels(xlistitem, item) return platformtools.rar_control_mng(item, xlistitem, mediaurl, rar_files, \ torr_client, password, size, rar_control)
def acciones_enlace(item): logger.info() item.__dict__['channel'] = item.__dict__.pop('from_channel') item.__dict__['action'] = item.__dict__.pop('from_action') if item.downloadStatus == STATUS_CODES.completed: acciones = ['Reproducir vídeo', 'Eliminar descarga'] elif item.downloadStatus == STATUS_CODES.canceled: acciones = ['Continuar descarga', 'Eliminar descarga'] elif item.downloadStatus == STATUS_CODES.error: acciones = ['Eliminar descarga'] ret = platformtools.dialog_select('¿Qué hacer con esta descarga?', acciones) if ret == -1: return False # pedido cancel elif acciones[ret] == 'Eliminar descarga': if not platformtools.dialog_yesno( 'Eliminar descarga', '¿ Confirmas el borrado de la descarga %s ?' % item.title, 'Se eliminará el fichero %s y su json con la información.' % item.downloadFilename): return False path_video = filetools.join(download_path, item.downloadFilename) if filetools.exists(path_video): filetools.remove(path_video) if filetools.exists(item.jsonfile): filetools.remove(item.jsonfile) platformtools.itemlist_refresh() return True elif acciones[ret] == 'Continuar descarga': item.__dict__.pop('jsonfile') server_item = Item().fromjson(item.__dict__.pop('server_item')) return download_video(server_item, item) elif acciones[ret] == 'Reproducir vídeo': import xbmcgui, xbmc mediaurl = filetools.join(download_path, item.downloadFilename) xlistitem = xbmcgui.ListItem(path=mediaurl) platformtools.set_infolabels(xlistitem, item, True) # se lanza el reproductor (no funciona si el play es desde el diálogo info !?) playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) playlist.clear() playlist.add(mediaurl, xlistitem) xbmc.Player().play(playlist, xlistitem) return True
def more_info(item): logger.info() # Si se llega aquí mediante el menú contextual, hay que recuperar los parámetros action y channel if item.from_action: item.__dict__['action'] = item.__dict__.pop('from_action') if item.from_channel: item.__dict__['channel'] = item.__dict__.pop('from_channel') import xbmcgui from core import tmdb tmdb.set_infoLabels_item(item) xlistitem = xbmcgui.ListItem() platformtools.set_infolabels(xlistitem, item, True) ret = xbmcgui.Dialog().info(xlistitem)
def acciones_enlace(item): logger.info() item.__dict__['channel'] = item.__dict__.pop('from_channel') item.__dict__['action'] = item.__dict__.pop('from_action') if item.downloadStatus == STATUS_CODES.completed: acciones = [ 'Reproducir vídeo', 'Eliminar descarga', 'Guardar una copia' ] elif item.downloadStatus == STATUS_CODES.canceled: acciones = ['Continuar descarga', 'Eliminar descarga'] # ~ elif item.downloadStatus == STATUS_CODES.error: else: acciones = ['Eliminar descarga'] ret = platformtools.dialog_select('¿Qué hacer con esta descarga?', acciones) if ret == -1: return False # pedido cancel elif acciones[ret] == 'Eliminar descarga': if not platformtools.dialog_yesno( 'Eliminar descarga', '¿ Confirmas el borrado de la descarga %s ?' % item.title, 'Se eliminará el fichero %s y su json con la información.' % item.downloadFilename): return False path_video = filetools.join(download_path, item.downloadFilename) if item.downloadFilename and filetools.exists(path_video): filetools.remove(path_video) if item.jsonfile and filetools.exists(item.jsonfile): filetools.remove(item.jsonfile) platformtools.itemlist_refresh() return True elif acciones[ret] == 'Continuar descarga': item.__dict__.pop('jsonfile') server_item = Item().fromjson(item.__dict__.pop('server_item')) return download_video(server_item, item) elif acciones[ret] == 'Reproducir vídeo': import xbmcgui, xbmc mediaurl = filetools.join(download_path, item.downloadFilename) xlistitem = xbmcgui.ListItem(path=mediaurl) platformtools.set_infolabels(xlistitem, item, True) # se lanza el reproductor (no funciona si el play es desde el diálogo info !?) playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) playlist.clear() playlist.add(mediaurl, xlistitem) xbmc.Player().play(playlist, xlistitem) return True elif acciones[ret] == 'Guardar una copia': import xbmcgui destino_path = xbmcgui.Dialog().browseSingle( 3, 'Seleccionar carpeta dónde copiar', 'files', '', False, False, '') if not destino_path: return False origen = filetools.join(download_path, item.downloadFilename) destino = filetools.join(destino_path, item.downloadFilename) if not filetools.copy(origen, destino, silent=False): platformtools.dialog_ok( config.__addon_name, 'Error, no se ha podido copiar el fichero!', origen, destino) return False platformtools.dialog_notification('Fichero copiado', destino_path) return True