Zip Datei mit Kodi entpacken

  • Hallo liebe User.
    Ich hätte mal ne Frage , wie kann ich per Python Kode eine ZIP Datei in Kodi mit Progress Bar entpacken !
    Währe echt sau lieb von euch wenn ihr mir da weiter helfen könntet .

    Vielen Dank im voraus - L.G.Loki1979

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

  • entpacken ist einfach - Progress ? je nach Größe geht das enpacken ruckzuck, da brauchste normalerweise keine Progress
    im Beispiel wird die Zip erst gedownloaded in ein Verzeichnis und danach entpackt
    gruß Gerhard

    Code
    xbmc.executebuiltin('XBMC.Notification(Senderlogos werden aktualisiert, der komplette Logopack wird geladen und extrahiert,600000,icon.png)')
     import zipfile
     urllib.urlretrieve ('http://........../logopack.zip', Pfad + 'logopack.zip') # download der zip
     zfile = zipfile.ZipFile(Pfad + 'logopack.zip')
     zfile.extractall(Ziel-Pfad)
     xbmc.executebuiltin( "Dialog.Close(infodialog)" )
  • Danke Gerhard für die Antwort !
    Ich versuch mal was damit umzusetzen und meld mich dann wieder .
    Vor allem bin ich mal gespannt ob es jetz unter Android geht !

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

  • @Gerhard 10 Minuten lässt Du die Notification stehen? Sportlich ;) @TVX1979: Es fehlt noch ein 'import xbmc' in Zeile 0... ;)

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • 10 Minuten ist doch gut, zumindest nicht knapp bemessen :thumbup:
    deshalb habe ich auch in der letzten Zeile das Dialog.Close drin, wenn alles abgearbeitet ist schließt sich der Dialog
    dann weiß man zumindest wann die Routine durch ist, mach ich meistens so

    das import xbmc wird er wahrscheinlich schon am Anfang vom Script haben, denke es geht nicht nur ums entpacken

    gruß Gerhard

  • Ja mal schaun wie sich TVX1979 schlägt.

    Ich finde das übrigens mal schön, wenn auch Fragen kommen, wie man programmiertechnisch ein Problem lösen und vor allen Dingen mal Python-mäßig selber Hand anlegen will. Respekt!

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Moym ,Moyn Gerhard & BJ1 ((-;

    So nun mal butter bei die Fische , in VB bräuchte ich für mein Vorhaben 15 Min,
    aber in Python +XBMC steh ich etwas auf verlorenem Posten und muss auch erst mahl alle Möglichkeiten kennen lernen !

    Ich hab folgendes vor !
    ich möchte ein Addon schreiben das vor allem FireStick Besitzern aber auch andern das leben erleichtert !

    Wie soll das aussehen ( Aufbau ) !

    Als erstes erscheind ein Feld für die Eingabe einer Download URL
    Diese URL beherbergt die Zip Datei die ich downloaden möchte ( Ein komplettes Backup ) = ( userdata + addons ) !

    Danach erscheint z.B. ein Auswahlfeld, wo 6 feste Pfade zur Verfügung stehen
    die zugleich auch den Zielpfad darstellen !

    Spoiler anzeigen


    AndroidAndroid/data/http://org.xbmc.kodi/files/.kodi
    iOS/private/var/mobile/Library/Preferences/Kodi
    Linux~/.kodi/userdata/Mac/Users/<your_user_name>/Library/Application Support/Kodi
    OpenELEC/storage/.kodi
    WindowsStart - type %APPDATA%\kodi

    An dieser Stelle soll nun geprüft werden ob unter dem gewählten Pfad der 6 Pfade
    die Verzeichnisse ( userdata + addons ) und mein Zip Backup bestehen und diese wenn ja gelöscht werden ( bis auf das benötigte Addon geleert werden ) !

    Nun soll das Zip Backup unter den angegebenen Pfaden in den Order ( Kodi gedownloadet werden + entpackt )

    Wenn das Zip Backup dann fertig entpackt ist soll das Zip Backup wieder gelöscht werden und
    die fertig Meldung erscheinen !

    So weit bin ich bis Jetzt im ersten Abschnitt !

    Spoiler anzeigen

    Frage gibts da irgend en Fehler [definition='1','3']Debug[/definition] ?
    Ich schreime in Notpad++

    L.G. Loki1979
    [/b]

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

    11 Mal editiert, zuletzt von loki1979 (28. Juli 2015 um 08:34)

  • Die 6 Pfade (für unterschiedliche OS) kannst Du dir sparen, unter Python ist das einfach nur

    Code
    addons = os.path.join(xbmc.translatePath('special://home'), 'addons')
    userdata = os.path.join(xbmc.translatePath('special://home'), 'userdata')

    Fehler werden im [definition=3,2]kodi.[definition='1','0']log[/definition][/definition] (Logdatei) geloggt.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Danke BJ1 ((-;
    Bin grad erst von der Arbeit gekommen ,ich test mal grad und meld mich dann nochmal .
    Das entpacken geht jetz auch .

    Ich teste das auf Kodi Portable und Kodi 14,2 auf BlueStacks

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

  • EDIT:

    Die Sache mit en Pfaden gelöst und 2 Weisheiten gewonnen !

    1 Ich bin en Idiot weil ich nicht an die unter benutzung stehenden Dateien gedacht habe !
    2. Ich weis jetz warum beim normalen Kodi Backup nicht alles übernommen wird !

    Damit weis ich aber umzugehen !

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

    3 Mal editiert, zuletzt von loki1979 (29. Juli 2015 um 08:49)

  • Hey @BJ1 !

    Ich hab en Ordner löschen Problem . :S

    Ich wollte nen vollen Ordner löschen mit :

    Code
    if ( os.path.isdir(KodiData2) == True):
        shutil.rmtree(KodiData2, ignore_errors=True)

    Behalte aber Leichen zurück :
    script.extendedinfo
    skin.back-row
    skin.xperience1080

    alles andre is weg !


    L.G. Loki1979

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

  • Die Leichen liegen im Ordner KodiData2? Was passiert, wenn Du ignore_errors=False setzt?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Ich kuck ma nach !

    10:11:01 T:5832 NOTICE: Thread LanguageInvoker start, auto delete: false
    10:11:01 T:5832 NOTICE: -->Python Interpreter Initialized<--
    10:11:01 T:5832 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <type 'exceptions.WindowsError'>
    Error Contents: [Error 2] Das System kann die angegebene Datei nicht finden: 'C:\\Users\\Loki1979\\AppData\\Roaming\\Kodi\\Kodi_Backup\\201507221607\\addons\\script.extendedinfo\\resources\\skins\\Default\\media\\flags\\studios\\Zesp\xf3l Filmowy Oko.png'
    Traceback (most recent call last):
    File "C:\Users\Loki1979\AppData\Roaming\Kodi\addons\plugin.program.backupzipdownloader\addon.py", line 15, in <module>
    shutil.rmtree(KodiData2, ignore_errors=False)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 252, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
    File "C:\Program Files (x86)\Kodi\system\python\Lib\shutil.py", line 250, in rmtree
    os.remove(fullname)
    WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden: 'C:\\Users\\Loki1979\\AppData\\Roaming\\Kodi\\Kodi_Backup\\201507221607\\addons\\script.extendedinfo\\resources\\skins\\Default\\media\\flags\\studios\\Zesp\xf3l Filmowy Oko.png'
    -->End of Python script error report<--
    10:11:01 T:5952 ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.program.backupzipdownloader/
    10:11:01 T:5952 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.program.backupzipdownloader/) failed
    10:11:01 T:3056 NOTICE: Thread BackgroundLoader start, auto delete: false

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

    Einmal editiert, zuletzt von loki1979 (30. Juli 2015 um 10:12)

  • Code
    Error Type: <type 'exceptions.WindowsError'>
    Error Contents: [Error 2] Das System kann die angegebene Datei nicht finden: 'C:\\Users\\Loki1979\\AppData\\Roaming\\Kodi\\Kodi_Backup\\201507221607\\addons\\script.extendedinfo\\resources\\skins\\Default\\media\\flags\\studios\\Zesp\xf3l Filmowy Oko.png'


    Das heißt, die o.g. Datei kann die Datei nicht finden und bricht dann das Skript ab. skin.backrow und skin.xperience1080 werden dann schon garnicht mehr angefasst...

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Ja das ist ma doof , weil da ist se ja ((-;

    Edit erst mal fertig mit Arbeiten , jetz schau ich mal nach wie in Python rekursiv löscht + errors aqbfängt

    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

    Einmal editiert, zuletzt von loki1979 (30. Juli 2015 um 14:17)

  • Höchstwahrscheinlich ein Unicodefehler. Die Datei enthält (laut Google) ein polnisches Sonderzeichen

    Code
    Zesp\xf3l Filmowy Oko.png

    . Python ist in dieser Hinsicht ziemlich scheiße... Hier ist ein Antwortversuch, spontan würde mir aber auch nichts einfallen, ich vermute unter Unix würde der selbe Python-Code die Datei löschen.

    Btw: Beim schreiben von == True solltest du immer zweimal überlegen, eine boolsche Funktion (erkennbar an is..., has... im Namen, zB isdir()) liefert einen Wahrheitswert zurück d.h. du kannst ==True einfach weglassen und erhälst das gleiche Ergebnis.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!