Ok. Wenn Du kein Plugin schreiben willst (ist auch besser so ) dann verwende nicht den request, sondern nimm zb. urllib2.urlopen(url)
Das gibt Dir auch einen String zurück. Im Prinzip genau das gleiche. Dafür brauchst Du dann auch keine request module.
Python string Klonen?
-
XsupergurkeX -
27. Dezember 2016 um 19:39 -
Erledigt
-
-
Ein Video Addon ist doch auch ein plugin, oder?
Also ich möchte im Prinzip ein eigenständiges Addon schreiben.Habe ich mit urllib2 denn auch die möglichkeit, das ganze zum json Objekt zu machen?
Beim request kann ich mit mainObj = r.json() ein json Objekt machen, und dann nachher mit mainObj[x]['title'] auf die keys zugreifen. Beim String geht das dann nicht, oder?Edit: Hab jetzt urllib2 und json.load verwendet. gleicher Fehler, wie vorher ;/
-
-
Nein, aber für JSON hast Du ja eingebaute Funktionen in Python. Dafür braucht es kein request.
import json
parsed_json = json.loads(string)Dann geht es genau so weiter mit den keys. Wenn Du so viele module und Abhängigkeiten hast, ist es schwer zu überblicken wo es hakt. Wenn das Problem aus dem Modul kommt, musst Du das debuggen.
Das ist weitaus schwieriger. Auch haben die Module auch wieder zig Abhängigkeiten.
Also lass lieber die Finger weg und versuch es über die eingebauten Funktionen zu lösen.
-
Ich versuche mal, die Module raus zu schmeißen, die ich nicht brauche. Eigentlich soll das Addon ja gar nicht so viel machen.
Edit: Hier der aufgeräumte code:
http://pastebin.com/SaNjkZfxDer Fehler ist geblieben.
-
-
Ich habe jetzt Deinen Code selber ausprobiert. Da ich Deine json Antwort nicht habe, musste ich einen http request von mir nehmen und dann ein par elemente hinzufuegen.
Ich bekomme nach dem starten und der eingabe meine videos aufgelistet, so wie es soll. Wenn ich die meine url mit der eingabe verknuepfe, wird das json file nicht gefunden undich bekomme ein 404
Das ist aber ok.
Trozdem wird kein 2tes mal das keyboard aufgerufen. Bei mir funktioniert Dein Beispiel.Das einzige was ich nicht testen kann ist Dein request auf den Server. Wenn Du magst kannst Du mir ja eine Antwort von einem request von Dir irgendwo hinkopieren. Das füge ich dann mal auf meinen Webserver ein und mache auch einen request. Dann kann ich so ziemlich alles testen, bis auf Deinen Server selbst. Wenn aber beide antworten die gleichen Strings ergeben sehe ich keinen Grund warum das bei Dir nicht gehen sollte.
-
Danke fürs testen. Bin grad nicht zuhause, aber eine Beispieljson schicke ich dir, sobald ich @home bin.
Meine api braucht ein paar Sek. bis sie antwortet, aber einen Timeout bekomme ich nicht.
Danke für deine Hilfe. -
-
Echt Merkwürdig. Ich hab die json ausgabe aus dem Browser kopiert, und in eine html Datei gepackt.
Die url dann auf die Lokale Datei geändert, und als letzten Parameter die Inputvariable angehängt (+ '.html').
Gebe ich den Dateinamen ein, funktioniert es ohne Probleme. Nutze ich meine api bekomme ich die gleiche Liste, aber die Tastatur öffnet sich wieder.
Ich hab dir die json mal geschickt. Du kannst sie dir ja mal anschauen, wenn du Zeit hast. Vielleicht weißt du ja noch was. -
Soo, langsam komm ich dem Problem auf die schliche.
Hab mal eine 10sek. wartezeit nach dem API aufruf eingebaut, und siehe da, keine zweite Tastatur -
-
Ist trozdem irgendwie komisch. der request blockt so lange bis eine antwort kommt oder einen fehler wirft.
aber wenn es erstmal funktioniert, dann ist es ja ok.
-
Ich fand es auch merkwürdig, dass Kodi die üblichen 5sek. die meine Anfrage dauert gewartet hat, und dann erst der Fehler kam. Aber die 2sek. sind ja nicht so dramatisch. Vielen Dank auf jeden Fall.
-
-
Hast du mal mit
d = dialog.input('Enter secret code', type=xbmcgui.INPUT_ALPHANUM) probiert ? Ist das einfachste für ne Tastatur . In steht dann der Text drin... Aber vielleicht hab ichs auch falsch verstanden ist ja schon spät -
Danke dir. Mein eigentliches Problem war zwar gelöst, aber deine Variante für die Tastatur ist deutlich eleganter (und schmeißt weniger Fehler )
-
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!