Página 3 de 19

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 12 Jul 2016, 06:42
por robalo
Se me olvidaba otra vez. La forma de usarlo ha cambiado de

Código: Seleccionar todo

from python_libtorrent import get_libtorrent
lt = get_libtorrent()
a

Código: Seleccionar todo

from lib.python_libtorrent import *
lt = get_libtorrent()

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 12 Jul 2016, 11:59
por neno1978
robalo escribió:
Queda por saber que nos entrega "sys.platform" en darwin e ios

Como dijo aquel ¡Por el aire quisiera mi impaciencia que lo trajeras!...

En mac da "darwin" y en iOS , sorprendentemente da tambien "darwin" :shock:
Habría que diferenciarlos , porque más veces que he probado yo el libtorrent del Osx en iOS ...

Que tal algo como :

Código: Seleccionar todo

    import platform
    pepe = sys.platform
    
    if pepe == 'darwin':
       try:
          check_platform=platform.machine()
          print "Mac OSX!!"
       except:
             print "IOS"


Uso "pepe" porque me da conflicto platform con platform.machine , lo que se solucionaría cambiando a platform.system() , pero eso ya com veas( la única diferencia a nivel de iOS o mac , es que darwin pasaría a Darwin"
Y tampoco sé si esto seria operativo para todos , en el mío que es el que he probado hasta que el iphone peto la batería, funciono.

Uso el try except porque en iOS "platform.machine()" por lo menos a mi me peta.
No obstante, esto es solo el concept, es decir , una manera, segura que hay muchas mas, rapidita que he visto para diferenciar OSX de iOS ;)
Ea... a seguir bien ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 12 Jul 2016, 21:28
por robalo
:lol: :lol: :lol:

te/os paso un nuevo __init__ personalizado que debería funcionar mejor. Le he cambiado el método para importar y añadido el path de búsqueda de las librerias también reutilizando código de los script de DiMartino

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

THIS_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__),"."))
dest_path = os.path.join(THIS_PATH, _platform)
sys.path.insert(0, dest_path)

if _platform in ['linux_x86', 'windows', 'linux_armv6', 'linux_armv7', 'linux_x86_64']:
    import libtorrent
elif _platform in ['darwin', 'ios_arm']:
    import imp
    path_list = [dest_path]
    fp, pathname, description = imp.find_module('libtorrent', path_list)
    try:
        libtorrent = imp.load_module('libtorrent', fp, pathname, description)
    finally:
        if fp: fp.close()
elif _platform in ['android_armv7', 'android_x86']:
    import imp
    from ctypes import CDLL
    dll_path=os.path.join(dest_path, 'liblibtorrent.so')
    liblibtorrent=CDLL(dll_path)
    path_list = [dest_path]
    fp, pathname, description = imp.find_module('libtorrent', path_list)
    try:
        libtorrent = imp.load_module('libtorrent', fp, pathname, description)
    finally:
        if fp: fp.close()

def get_libtorrent():
    return libtorrent
Neno trabaja con este nuevo archivo, tengo el iphone sin jailbreak y creo me moriré de asco esperando :x

El motivo de la modificación es que lo probé esta mañana sin reiniciar el kodi de la tablet y seguía conservando los archivos y la ruta de los .os en el path de búsqueda de la última prueba con la primera forma de este hilo

Editaré el post anterior para que apunte a este post para conservar el historial

EDITO: He corregido el script. Para variar, había pegado el que no era :)

RE-EDITO: La línea " liblibtorrent=CDLL(dll_path)" estaba duplicada, puto copy/paste voy a tener que recurrir al adjunto :)

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, 23:43
por neno1978
:lol: tranki robalo, el 9.3.2 está apunto de caramelo y el iOS 10 ya está hecho, en agosto seguramente tendremos jailbreak , a no ser q no te apetezca , claro está ;)
Mañana a primera hora con el cafelito negro le damos vueltas q ya estoy pa tintito reponedor , comidita y a quedarme sobao viendo acuarios XXL ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 13 Jul 2016, 07:02
por neno1978
Buenos dias desde donde el sol no te calienta, intenta matarte lenta y sádicamente...
Robalo, he estado probando con Mac OSX first, y lo primero es que el

Código: Seleccionar todo

elif "win" in _platform:
da conflico, poooruqeee "dar-WIN" ze cuelaaaaarrrrrrrr , jandemorrr. Ya que if "win" esta antes ==darwin, cambiandolo de posición creo que valdría, yo, como buen puto vago, lo he elimina o del tirón.
Y ahora estoy reliao con el siguiente error que me da : uzeaze...

Código: Seleccionar todo

 from lib.python_libtorrent import *
                                              File "/Users/ignaciobernal/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/python_libtorrent/__init__.py", line 82, in <module>
                                                fp, pathname, description = imp.find_module('libtorrent', path_list)
                                            ImportError: No module named lib torrent
Vamos a darle un ratito ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 13 Jul 2016, 07:59
por neno1978
Espera espera, el init el path indica hacia python_libtorrent/darwin , es ahí donde hay que copiar las diferentes plataformas? , porque creo haberte leído lib/darwin? ... si las copio dentro de python_libtorrent rula de lujo ;)

Bueno, ya me diras... voy hacer un poco de deporte, que hay que estirar las piernas, y después pruebo con iphone, ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 13 Jul 2016, 10:38
por neno1978
Bueno pues una vez "culturizado" primera prueba fallida en iOS, "arquitectura errónea", evidentemente identifica darwin con mac y no tira de iOS ...
Segunda prueba con mi "peazo de parche" , sustituyendo después de 'elif _platform == "darwin":' ;

Código: Seleccionar todo

elif _platform == "darwin":
        import platform
        
        try:
            check_platform=platform.machine()
            print "Mac"
            ret["os"] = "darwin"
        except:
            ret["os"] = "ios"
            ret["arch"] = "arm"
            print "IOS"

    
    ret=get_system(ret)
    return ret


Rula perfect ;) Si no te mola el Peajo parchepodemos buscar otra manera de diferenciarlo , pues tampoco estoy muy convencido de que la excepción sea en todo iOS , o solo en el mío, vete tu a saber.
Esta hehco en iphone 5s , en mi iphone 6s no puedo pobrarlo pues me vino con iOS 9.2.3 ... también dispongo de vetusto iphone 4 que podría probarlo ... aunque no sé si responderá muy bien pues este lo trastea mi bicho mediano(6añitos) , pero podemos ver ;)

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 13 Jul 2016, 13:00
por Cmos
Qué buena pinta está cogiendo el tema, es lo único que le faltaba a MCT, ser multiplataforma, seguro que quien lo pruebe ya no vuelve a los quasar y derivados :D No sé si habéis testeado algo en android, si no es así hago la prueba, en el resto de plataformas no os puedo echar una mano :( Neno, menos mal que te pones a la fresquita, estos días ponerse delante del pc en según qué horas es deporte extremo :lol:

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 13 Jul 2016, 14:50
por neno1978
:lol: :lol: :lol: joder Cmos calor es un tabú pa lo q hace aquí, todos los años digo lo mismo y creo q no se puede superar y todos los años me equivoco ... menos mal q Nos quedan dos semanitas y media pa irnos 11 diitas 8-) eso sí, montañita y mar , el caló lejitoooooo :lol: :lol: android a probao el master en una tablet y perfect , to lo voy a probar en un Samsun galaxy y pruébalo tu también , mientras más pruebas mejor ;) . X cierto, probado en iPhone 4 y rulándome a las mil maravillas, creo q asco parche funciona :lol: :lol: ...
Siguiente intento mi vacacional rasp viejuna 1... ab q hiace ;)
Edito: Estoy amamonao... en el Samsung galaxy ya lo probé y rula :lol: :lol: ... estoy fatal de lo mío ...

Re: usar binarios script.module.libtorrent by DiMartino

Publicado: 13 Jul 2016, 18:01
por neno1978
Master , Cmos, si tenéis un espacio intentad reproducir el torrent los 100 temp 1 capítulo 3 en bityouth por MCT , me ha dado un error raro en play de MCT que no he podido ojear xq me han echao los niños a patas del ordenador :lol: :lol: pero me ha pasado varias veces ;)
Edito: lo he probado en el iPhone y no da problema, algo he debido tocar trasteando. De todas formas probadlo porfa y me decís ;)