【问题标题】:Results not showing after search term entered from keyboard从键盘输入搜索词后未显示结果
【发布时间】:2017-03-07 17:58:06
【问题描述】:

我正在学习为 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。此外,没有错误。请帮忙。

【问题讨论】:

    标签: python python-2.7 add-on xbmc kodi


    【解决方案1】:

    添加一些日志记录,有趣的部分是如果你真的点击了 for。所以添加一些xbmc.log('hit') 甚至记录你的值。

    如果您想要完整的日志记录,请查看此示例 https://github.com/xbmc/generator-kodi-addon/blob/master/generators/app/templates/resources/lib/kodilogging.py

    【讨论】:

    • 我几乎在每一步之后都添加了日志语句,并且所有日志语句都被执行了,包括 for。我还尝试将检索到的搜索结果(即result["name"])打印到日志中,结果正在日志中打印,但结果未显示为 ListItems
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2021-09-24
    相关资源
    最近更新 更多