Es gibt auch einen fertigen Clienten der mit myJdownloader kommunizieren kann.
Mein Problem ist nun das dieser Client den pycrypto verwendet. Im Grunde ist das noch zu lösen. Ich habe auf
meiner Entwicklungsumgebung (Sublime) eine PreBuild version von pyCrypto genommen und dort den ordner mit
Crypto aus der exe-Datei extrahiert und ihn zu meinem Plugin gepackt. Das funktioniert auch wunderbar!
Wenn ich das ganze aber nun in KODI probiere bekomme ich den Dehler, das eine DLL nicht vorhanden ist (_AES).
Code: Alles auswählen
File "d:\KODI-Krypton\portable_data\addons\plugin.program.myPlugin\Crypto\Cipher\AES.py", line 50, in <module>
from Crypto.Cipher import _AES
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
Code: Alles auswählen
def __decrypt(self,secret_token,data):
"""
Decrypts the data from the server using the provided token
:param secret_token:
:param data:
"""
init_vector = secret_token[:len(secret_token)//2]
key = secret_token[len(secret_token)//2:]
decryptor = AES.new(key, AES.MODE_CBC, init_vector)
decrypted_data = UNPAD(decryptor.decrypt(base64.b64decode(data)))
return decrypted_data
Code: Alles auswählen
def __encrypt(self,secret_token,data):
"""
Encrypts the data from the server using the provided token
:param secret_token:
:param data:
"""
data = PAD(data.encode('utf-8'))
init_vector = secret_token[:len(secret_token)//2]
key = secret_token[len(secret_token)//2:]
encryptor = AES.new(key, AES.MODE_CBC, init_vector)
encrypted_data = base64.b64encode(encryptor.encrypt(data))
return encrypted_data.decode('utf-8')
könnte man das ganze auch ohne crypto umsetzen, um dem Fehler aus dem Weg zu gehen?