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.
Beiträge von _Andy_
-
-
Ich vermute du moechtest ein plugin fuer Addon entfernt - die Moderation entwickeln. Somit wird dein script nicht von kodi direkt (so wie ich es zum testen gemacht hatte, deswegen der static handle) sondern vom Addon entfernt - die Moderation aufgerufen.
Der Addon entfernt - die Moderation uebergibt deinem script eine handle id. Wenn Du dann die Daten hast zeigt das Addon entfernt - die Moderation diese dann über den handle an. Somit weis das xstream woher alles kommt. vereinfacht ausgedrueckt.Das Problem scheint also wenn ich richtig liege mit dem Addon entfernt - die Moderation zusammenzuhaengen. Somit musst Du dich wohl oder uebel mit der Entwicklung von Addon entfernt - die Moderation plugins auseinandersetzten.
So wie ich es kurz gesehen habe, haben die auch ein Forum. Im Zweifelsfall da nochmals nachfragen.
-
das einzige was ich geändert habe ist die variable addon_handle. Die hatte ich static mit einem int definiert. Wenn du Bock hast kannst Du das ja nochmal wieder reinnehmen und nochmals testen.
-
Versuch doch mal ein try/catch um den request zu machen. Dann sollte im Fehlerfall das Programm in den catch springen und du kannst weiter reagieren.
-
Ok. Nach etlichen nachinstallieren von modulen, konnte ich das script dann starten.
Ich nutze zum testen diesen code:
Ich habe soweit alles dringelassen, um evtl dem Problem auf die Spur zu kommen.Python
Alles anzeigenimport xbmcaddon import xbmcgui import sys import xbmcplugin import urllib, json import requests from resources.lib.gui.gui import cGui from resources.lib.gui.guiElement import cGuiElement import sys from urllib import urlencode #from urlparse import parse_qsl import xbmcgui import xbmcplugin import xbmc addon = xbmcaddon.Addon() addonname = addon.getAddonInfo('name') #addon_handle = int(sys.argv[1]) addon_handle = 999 xbmcplugin.setContent(999, 'movies') url = 'http://localhost/some_video.mkv' li = xbmcgui.ListItem('My First Video!', iconImage='DefaultVideo.png') xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li) xbmcplugin.endOfDirectory(addon_handle) sSearchText = cGui().showKeyBoard('german') if not sSearchText: xbmc.[definition='1','0']log[/definition]("Fehler:" + str(sSearchText), level=xbmc.LOGNOTICE) xbmcgui.Dialog().ok(addonname, "error") else: search2 = sSearchText xbmcgui.Dialog().ok(addonname, search2) url2 = "http://127.0.0.1:8080/api/movies/" + search2 r = requests.get(url2) xbmcgui.Dialog().ok(addonname, url2)
Nach dem starten des scripts geht ein Fenster auf und das Wort 'german' steht schon da. Zum testen habe ich dann mal etwas anderes eingegeben und zwar blubblub
Danach bekomme ich noch ein testfenster mit blubblub und danach wird der request gemacht. Ohne Probleme, ohne das ein zweites mal das Keyboard aufgeht.
Hier das [definition='1','0']log[/definition] was natürlich den Fehler wirft im request module weil die url nicht antwortet:Code
Alles anzeigenError Contents: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/movies/blubblub (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x1BD0D3F0>: Failed to establish a new connection: [Errno 10061] No connection could be made because the target machine actively refused it',)) Traceback (most recent call last): File "I:\Kodi\kodi 17 beta6\portable_data\addons\script.test\default.py", line 38, in <module> r = requests.get(url2) File "I:\Kodi\kodi 17 beta6\portable_data\addons\script.module.requests\lib\requests\api.py", line 67, in get return request('get', url, params=params, **kwargs) File "I:\Kodi\kodi 17 beta6\portable_data\addons\script.module.requests\lib\requests\api.py", line 53, in request return session.request(method=method, url=url, **kwargs) File "I:\Kodi\kodi 17 beta6\portable_data\addons\script.module.requests\lib\requests\sessions.py", line 468, in request resp = self.send(prep, **send_kwargs) File "I:\Kodi\kodi 17 beta6\portable_data\addons\script.module.requests\lib\requests\sessions.py", line 576, in send r = adapter.send(request, **kwargs) File "I:\Kodi\kodi 17 beta6\portable_data\addons\script.module.requests\lib\requests\adapters.py", line 437, in send raise ConnectionError(e, request=request) ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/movies/blubblub (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x1BD0D3F0>: Failed to establish a new connection: [Errno 10061] No connection could be made because the target machine actively refused it',)) -->End of Python script error report<--
somit kann ich leider nur sagen das Dein code funktioniert und das Problem woanders zu suchen ist. Evtl in den verwendeten modulen oder verweisen. -
Leider sehe ich nicht wo der Fehler herkommen kann. Es muss aber dann wohl tatsächlich etwas mit dem request zu tun haben.
Wenn Du magst kannst Du mir das komplette script irgendwo hochladen. Auch per PM wenn Du das nicht öffentlich haben möchtest. Dann schaue ich mir das in meiner Testumgebung mal an.
-
Mit python und gui habe ich noch nie etwas gemacht. Aber wenn das Keyboard 2 mal aufgerufen wird, scheint es so zu sein, dass der Programmteil 2 mal aufgerufen wird. Warum auch immer. Das sehe ich jetzt hier nicht.
Frage doch erstmal ab ob der Rückgabewert einen Inhalt hat. Erst dann machst Du weiter.
Pythonif not sSearchText: xbmc.[definition='1','0']log[/definition]("Fehler:" + str(sSearchText)) else: ... xbmc.[definition='1','0']log[/definition]("User hat eingegeben:" + str(sSearchText)) xbmc.[definition='1','0']log[/definition]("Request lautet: http://127.0.0.1:8080/api/movies/" + str(sSearchText)) hier gehts weiter
Sowas in der Art. Was passiert denn dann? -
Die Fehlermeldung sagt doch alles. Du versuchst 2 Variablen unterschiedlichsten Types (String und boolean) zu verketten. Ich kenne Deinen code jetzt nicht und weis auch nicht was Du machen willst aber wenn es darum geht einen neuen String zu bilden und ein Typ kein String ist, kannst Du den Nichtstring wandeln. Z.B. geht das mit str() also zb String1 = String2 + str(boolean)
Dann kommt aber sowas raus wie test + True also testTrue wenn der Inhalt von String2 vorher 'test' war.Ich denke da liegt eher ein Logikfehler vor.
Wenn Du Hilfe benötigst, wirst Du wohl den ganzen Code posten müssen.
-
was sagt das [definition='1','0']log[/definition] von kodi?
-
Ja, hatte ich ja geschrieben. Alle PR bis zum 15ten sind drin. Der Versionsprung auf RC1 und der Splash Screen mit RC1 kam am 19ten. Ich habe mir die PRs angesehen. Fast alle die zwischen dem 15ten und 19ten liegen, sind Verbesserungen und Bugfixes vom skin.estuardy und skin.estouchy sowie Korrekture im Build System.
Evtl lasse ich das heute Abend durchlaufen. Wenn es dann auf Anhieb mit einem Build klappt, kann ich den dann auch noch hochladen.
-
Ja. Im Moment ist das die Version Beta 7 mit allen PR bis zum 15.12.2016. Zusätzlich habe ich dann die LAV Filter 0.69 genommen und dann, weil ich es auch testen wollte in Kodi die FFMPEG Version 3.2.2 einkompiliert.
Das Setup habe ich dann installiert und en par Testfiles mit Kodi und dem DSPlayer abgespielt. Beides mal kein Absturz.
Ihr könnt es ja testen und dann mal sagen ob es auch bei euch geht. Nach dem starten geht mal in die Systeminfo. Da steht dann die Versionsnummer und die letzt PR.
hier der link https://drive.google.com/open?id=0B0jBz…MGMyWklNU3ZZb2M
-
Ich habe selber eine Version vom DSPlayer kompiliert. Integriert habe ich die neuesten LAV Filter 0.69 und für die Kodi Seite die ffmpeg 3.2.2.
Bei mir hat die Installation geklappt und auch das Testen danach ging ohne Probleme.Bei Interesse kann ich einen Link posten.
-
Smartplaylist erstellen. In der Smartlist kannst Du nach verschiedensten Kriterien filtern z.B. Pfad,Name, Tag usw.
Diese Smartplaylist kannst Du dann als eigenen Menüpunkt einbinden.
-
madVR hat sehr viele Einstellungen. Da muss man echt viel probieren und auch eine starke GPU haben. Wenn das Bild in der Quelle schon sehr gut ist, holt der madVR auch nicht mehr viel raus.
Der Orginalthread ist hier http://forum.doom9.org/showthread.php?t=146228
Das sind schlappe 2000 Seiten zu lesenHier ist nochmals viel erklärt https://wiki.mikejung.biz/MadVR unten findet Ihr dann noch Links wo etliche Einstellungen inkl. screenshots verglichen werden.
Recht interessant.
-
die statistiken von madVR kannst du ueber strg+j aufrufen
-
Ich sage beides. Die Videobeschleunigung ist gut, da alles in der GPU erledigt wird. Der Skin und Kodi selbst laufen aber über die CPU. Die CPU im RPI3 ist schwach im Verhältnis zu einer einfachen i3 oder etwas vergleichbaren.
Zu dem ist Aeon (Mad)Nox einer der Skin die extrem viel Leistung brauchen. Mit den ganzen plugins und aufwendigen Views.
-
Kodi kann nur in den wenigsten Fällen das Menü einer BR abspielen. Die Menüs einer BR sind zum sehr großen Teil BR-Java. Das gibt es nicht als open-source bzw. nur zum Teil durch reverse engineering, welches aber recht fehlerhaft ist.
Wenn Du das Menü haben willst, dann geht das nur mit einem externen Player z.B PowerDVD der alles lizensiert hat. Selbst mit PowerDVd laufen nicht alle Disks.
Du kannst in Kodi aber einstellen, dass immer der Hauptfilm einer BR gestartet wird oder so wie in Deinem Fall die Struktur der ISO geöffnet wird. Das geht irgendwo in den Einstellungen. Wo genau weiss ich jetzt nicht mehr. Einfach mal durchschauen.
-
Da gibt es viele Wege. Ich weiss jetzt aber nicht wie Du Dein System eingerichtet hast. Ob Du SMB oder SSH konfigurierst hast. Wenn ich mit Unixen arbeite nutze ich immer SSH mit Putty und wenn ich Dateien von/zu einem Windows verschieben oder kopieren will dann WinSCP.
Bei Unixen gibt es keinen bestimmten Weg, da alles anders konfiguriert sein kann. Nicht so eben in Windows. Klicken und kopieren geht immer
Falls Du SSH hast würde ich probieren: Lad Dir Winscp herunter und versuche mit der IP und dem user root und das root passwort von Deinem Kodi System Dich einzuloggen. Dann folge dem Pfad in dem [definition='1','1']debuglog[/definition] und kopier mittels WinSCP die Datei auf einen Windows/Mac Rechner.
Falls das nicht geht oder Du überhaupt nicht zu recht kommst, kann ich Dir nur anbieten das Wir zusammen mittels Teamviewer und Skype mal zusammen schauen.
Dann müssen wir einen Termin ausmachen und ich gebe Dir meine Skype Daten per PM.
-
Das sind die falschen logs. Wenn Du in Kodi das [definition=12,4]debugging[/definition] einschaltest, sollte oben links das so aussehen
Externer Inhalt i990.photobucket.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
Da steht dann auch der Pfad zum [definition=9,2]kodi.[definition='1','0']log[/definition][/definition]. -
Ich würde so vorgehen:
Mittels SQL (egal ob Du MySQL oder die interne nutzt) als erstes mit dem Feld c22 alle Filme mit Deinem bestimmten Pfad raussuchen und mittels dem Feld dateAdded sotieren lassen. Dann hast du alle Filme von Deinem Pfad
dem Datum nach sortiert. Dann kopierst Du so viele Filme mittels dem Explorer an die neue Stelle. Inklusive aller Ordner und Grafiken.Dann musst Du nur noch die Referenzen für die Dateien und Grafiken auf den neuen Ort updaten. Auch das geht mittels SQL.
Da nur die Pfade ausgetauscht werden, sind alle anderen Referenzen noch intakt. Dann entfällt das rescrapen und alle neu einbinden.
Das setzt vorraus, dass Du Dich mit SQL und den Tabellen von Kodi auskennst.