0
我正在學習爲Kodi開發插件並需要實現搜索功能。我在網上發現了一些資源,從鍵盤獲取用戶輸入,然後用搜索詞調用API來獲取結果。該API正在被要求罰款,但結果不通過ListItems
顯示。下面是我的代碼從鍵盤輸入搜索詞後未顯示結果
_url = sys.argv[0]
_handle = int(sys.argv[1])
def get_url(**kwargs):
return '{0}?{1}'.format(_url, urlencode(kwargs))
def display_main_menu():
list_item = xbmcgui.ListItem(label="Search")
url = get_url(action='search')
xbmcplugin.addDirectoryItem(_handle, url, list_item)
def perform_search(search_term):
link = "api_url_here" + search_term
r = requests.get(link)
resp = json.loads(r.text)
for result in resp:
list_item = xbmcgui.ListItem(label=result["name"])
list_item.setArt({'thumb': result["img"], 'icon' : result["img"], 'fanart' : result["img"]})
url = '' #blank url for testing
is_folder = True
xbmcplugin.addDirectoryItem(_handle, url, list_item, is_folder)
xbmcplugin.endOfDirectory(_handle)
def search():
keyb = xbmc.Keyboard('',"Search for Videos", False)
keyb.setDefault('')
keyb.doModal()
if (keyb.isConfirmed() and len(keyb.getText()) > 0):
perform_search(keyb.getText())
def router(paramstring):
params = dict(parse_qsl(paramstring))
if params:
if params['action'] == 'search':
search()
else:
raise ValueError('Invalid paramstring: {0}!'.format(paramstring))
else:
display_main_menu()
if __name__ == '__main__':
router(sys.argv[2][1:])
當我選擇Search
,然後鍵入我的話,搜索鍵盤撤職,但沒有任何反應。正在顯示相同的菜單,並且perform_search
功能中的新ListItems未顯示。另外,沒有錯誤。請幫忙。
我添加記錄語句幾乎每一步,都記錄語句被執行,包括爲後。我還嘗試將檢索到的搜索結果(即result [「name」])打印到日誌中,並將結果打印在日誌中,但結果不顯示爲ListItems –