Example #1
0
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)
Example #2
0
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
Example #3
0
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)
Example #4
0
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