Página 2 de 19

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 09:50
por neno1978
Vale; lo acabo de hacer como explica el master y rulándome de Puta madre en android Las dos opciones torrent 8-) q fácil hubiera sido leer esto ayer :lol: :lol: lo tranki q me habría tomado las birras :P :lol: :lol:

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 10:36
por jesus
robalo escribió:He empezado probando la table de la jefa y ha funcionado muy bien, el único problema es, al igual que las rasp, el modo 'storage_mode_allocate' hace que las semillas caigan en picado, se tiene que usar el 'storage_mode_sparse' como el que se usa para los mkv y la capacidad, se tendrá que usar unidades de red para el almacenamiento o usb si la tarjeta sd está al límite que posiblemente lo esté. Tenemos que ver como usar samba, si la librería lo permite, para las descargas sin usar un archivo temporal.

Ahora me pondré y lo probaré el módulo como librería de la carpeta lib en windows.

Si DiMartino te da el visto bueno tendremos libtorrent para plataformas más usadas :)
Me ha contestado que adelante, y que le confirmemos cuando esté hecho para ponernos en el README como "Proyectos que lo usan" :)

Su add-on lo que parece hacer es descargar el binario apropiado para tu plataforma, y además mantenerlo actualizado directamente desde su Github por si salen nuevas versiones.

Podemos hacer algo así, o incluso copiar la última versión de los binarios y ponerla dentro del ZIP.

Vosotros sois los maestros del torrent, os toca decidir :)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 14:09
por robalo
Pues nos tendremos que poner al tajo :lol: :lol:


EDITO: Se me pasaba, Muchas gracias a DiMartino!!

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 14:49
por neno1978
GRANDE DIMARTINI!!! 8-)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 15:29
por SeiTaN
Martini es otra cosa, cougghborachocougghh :roll:

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 16:00
por neno1978
:lol: :lol: :lol: he de decir q jamas he probado un Martini pero si hay que probarlo se prueba.. ahora , donde este la birra ... ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 19:43
por jtm010101

reemplazamos las referencias a la librería libtorrent. Lo que antes era

Código: Seleccionar todo

import libtorrent as lt
Ahora debería ser

Código: Seleccionar todo

from python_libtorrent import get_libtorrent
lt = get_libtorrent()
Se reinicia kodi y listo. :)
Si por lo que sea no funciona comprobamos que el módulo esté activo.
Recordar renombrar el libtorrente.pyd o . so que estemos usando para asegurarnos de que se usa el del módulo.

Así de fácil :)
Me podrias ayudar esta parte no se donde ponerlo o archivos que tengo que modificar

GRACIAS

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 23:32
por neno1978
Si tienes 4.1.1 de pelis no tienes q modificar nada, solo instalar el script de DiMartino y , eso si, en addon.xml de la raíz de pelis editar.
Si estás n la anterior, q parece q si, es entonces cuando tienes que hacer esas modificaciones sobre mct.py que se encuentra en el directorio platformcore de la raíz de pelis. Lo de renombrar solo es necesario, y tampoco imprescindible, si anteriormente has intentado añadir por tu cuenta el libtorrent y tienes un libtorrent.so o pyd antiguo en el mismo directorio ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 11 Jul 2016, 23:59
por robalo
He estado probado y de momento la forma más fácil para incluirlo en la carpeta lib sería:

· Crear una carpeta "lib/python_libtorrent" y añadir un __init__.py personalizado reutilizando código de los script de DiMartino
· Crear todas las carpetas de los OS+arch: "lib/android_armv7", "lib/android_x86", "lib/darwin", ....
· Añadir un __init__.py sin datos en las carpetas OS+arch
· Elegir la versión libtorrent que mejor funcione en cada OS+arch, extraerla del zip y pegar la que le correspoda: "lib/android_armv7/libtorrent.so", "lib/android_86/libtorrent.so", "lib/darwin/libtorrent.so", ...

__init__.py personalizado

Código: Seleccionar todo

#-*- coding: utf-8 -*-
'''
    Torrenter v2 plugin
    Copyright (C) 2015 srg70, RussakHH, DiMartino
'''
import sys
import os

def get_platform():

    ret = {
        "arch": sys.maxsize > 2 ** 32 and "x64" or "x86",
    }
    platform = sys.platform
    if platform == "linux3":
        ret["os"] = "android"
        if "arm" in os.uname()[4] or "aarch64" in os.uname()[4]:
            ret["arch"] = "arm"
    elif platform == "linux2":
        ret["os"] = "linux"
        uname=os.uname()[4]
        if "arm" in uname:
            if "armv7" in uname:
                ret["arch"] = "armv7"
            elif "armv6" in uname:
                ret["arch"] = "armv6"
            else:
                ret["arch"] = "arm"
    elif "win" in platform:
        ret["os"] = "windows"
    elif platform == "darwin":
        ret["os"] = "darwin"
    elif platform == "ios":
        ret["os"] = "ios"
        ret["arch"] = "arm"

    ret=get_system(ret)
    return ret

def get_system(ret):
    ret["system"] = ''

    if ret["os"] == 'windows':
        ret["system"] = 'windows'
    elif ret["os"] == "linux" and ret["arch"] == "x64":
        ret["system"] = 'linux_x86_64'
    elif ret["os"] == "linux" and ret["arch"] == "x86":
        ret["system"] = 'linux_x86'
    elif ret["os"] == "linux" and "arm" in ret["arch"]:
        ret["system"] = 'linux_'+ret["arch"]
    elif ret["os"] == "android":
        if ret["arch"]=='arm':
            ret["system"] = 'android_armv7'
        else:
            ret["system"] = 'android_x86'
    elif ret["os"] == "darwin":
        ret["system"] = 'darwin'
    elif ret["os"] == "ios" and ret["arch"] == "arm":
        ret["system"] = 'ios_arm'

    return ret

platform = get_platform()['system']
exec "from " + platform + " import libtorrent"

def get_libtorrent():
    return libtorrent
Hecho todo lo anterior debería funcionar en todos. Sólo lo he probado en windows, mañana probaré en ubuntu, raspberry y tablet android.

EDITO: Como notaréis, no se usa xbmc para saber que SO se está usando. Lo he cambiado por sys.platform. Queda por saber lo que entrega con darwin e ios. Los que hay puestos me lo he inventado :)

RE EDITO: Falta añadir las descargas de algunas dependencias para algunos SO "liblibtorrente.so"

NUEVO SCRIPT EDITADO en viewtopic.php?f=14&t=7708&p=32863#p32863 (Nuevo __init__.py personalizado con una nueva corrección)

NUEVO SCRIPT RE-EDITADO POR NENO en viewtopic.php?f=14&t=7708&start=40#p32961 (Nuevo __init__.py personalizado con otra nueva corrección)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 12 Jul 2016, 06:37
por robalo
Aprovechano el "fresco" de la mañana me he puesto con table y me ha funcionado haciendo lo del post anterior con una pequeña excepción en las carpetas "lib/android_armv7" y "lib/android_x86".
robalo escribió:RE EDITO: Falta añadir las descargas de algunas dependencias para algunos SO "liblibtorrente.so"
Este comentario es erróneo. Lo escribí de memoría de una lectura rápida a los script que hice el otro día. Hoy lo he mirado despacio y he visto que sólo afecta a android y que necesita como una "precarga" de la librería.

La excepción para las carpetas "lib/android_armv7" y "lib/android_x86" es
· Añadir una copia renombrada a "liblibtorrent.so" de la versión libtorrent que mejor funcione para android+arch en las carpetas "lib/android_armv7" y "lib/android_x86": "lib/android_armv7/liblibtorrent.so" y "lib/android_86/liblibtorrent.so"

Queda por saber que nos entrega "sys.platform" en darwin e ios