python
  • request
  • xbmc
  • kodi
  • 2016-11-12 1 views 0 likes 
    0

    Ich versuche, ein Skript zu schreiben, die den Befehl "Update-Bibliothek" auf meinem XBMC ausführen wird.Update XBMC-Bibliothek von Python-Skript

    Wenn ich versuche zu laufen:

    url = 'http://root:[email protected]%IP_ADDRESS%:12345/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}' 
    r = requests.get(url) 
    

    Ich sehe, dass die Bibliothek aktualisiert worden ist, aber ich bin immer folgende Fehlermeldung:

    Traceback (most recent call last): 
        File "<input>", line 2, in <module> 
        File "C:\Python27\lib\site-packages\requests\api.py", line 70, in get 
        return request('get', url, params=params, **kwargs) 
        File "C:\Python27\lib\site-packages\requests\api.py", line 56, in request 
        return session.request(method=method, url=url, **kwargs) 
        File "C:\Python27\lib\site-packages\requests\sessions.py", line 475, in request 
        resp = self.send(prep, **send_kwargs) 
        File "C:\Python27\lib\site-packages\requests\sessions.py", line 596, in send 
        r = adapter.send(request, **kwargs) 
        File "C:\Python27\lib\site-packages\requests\adapters.py", line 473, in send 
        raise ConnectionError(err, request=request) 
    ConnectionError: ('Connection aborted.', BadStatusLine("''",)) 
    

    Ich habe versucht, den Code zu ändern, um:

    url = 'http://root:[email protected]%IP_ADDRESS%:12345/jsonrpc?' 
        data = json.dumps({"request": {"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}}) 
        r = requests.get(url, params=data) 
    

    aber es scheint nicht zu funktionieren, was bedeutet, ich sehe die Bibliothek nicht aktualisiert.

    Was mache ich falsch?

    Antwort

    2

    Wer "root" in der URL? Alles ist viel einfacher:

    url = 'http://libreelec:12345/jsonrpc' 
    data = {"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "1"} 
    r = requests.post(url, json=data) 
    

    Der /json Endpunkt POST übernimmt als auch, und request.post eine dict in eine richtige JSON Anfrage für Sie verarbeiten.

    +0

    Ich bekomme immer noch das gleiche Ergebnis, XBMC-Bibliothek wurde aktualisiert und auch ich bekomme die Fehlermeldung. irgendwelche Ideen? –

    +0

    Ich habe den Parameter "id" vergessen (blind kopierten JSON aus Ihrem Post). Jetzt ist die JSON-Payload korrekt, aber ich kann nichts über andere Teile wie Kodi-Einstellungen (Sie müssen die Fernsteuerung von Kodi aktivieren) oder JSON-RPC-Endpunkt-Adresse sagen. Sie sollten diese selbst überprüfen. –

    Verwandte Themen