2016-11-12 76 views
0

我試圖編寫一個腳本,它將在我的XBMC上運行「更新庫」命令。從Python腳本更新XBMC庫

當我嘗試運行:

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

我看到該庫已更新,但我發現了以下錯誤:

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("''",)) 

我試圖修改代碼:

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) 

但它似乎不工作,這意味着我沒有看到圖書館更新。

我在做什麼錯了?

回答

2

誰在URL中「根」?一切顯得簡單:

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

/json端點接受POST,以及,request.post將處理dict成你一個適當的JSON請求。

+0

我仍然得到相同的結果,XBMC庫已更新,我也收到錯誤消息。有任何想法嗎? –

+0

我忘了「id」參數(從您的帖子中盲目複製粘貼JSON)。現在JSON有效負載是正確的,但我不能告訴其他部分,如Kodi設置(您需要啓用遠程控制Kodi)或JSON-RPC端點地址。你應該自己檢查一下。 –