def main_menu(): user_info = get_user_info() if user_info is None: items = [{ 'label': u'登入', 'path': plugin.url_for('login_dialog'), 'is_playable': False }] else: items = [{ 'label': u'## 管理当前帐号: %s' %user_info['username'], 'path': plugin.url_for('accout_setting'), 'is_playable': False, },{ 'label': u'## 搜索文件(文件夹/视频/音乐)', 'path': plugin.url_for('search'), 'is_playable': False },{ 'label': u'## 刷新', 'path': plugin.url_for('refresh'), 'is_playable': False }] for loopTime in range(0, 5): validation = pcs.token_validation(user_info['cookie'], user_info['tokens']) if validation: try: homemenu = plugin.get_storage('homemenu') if homemenu.get('item_list'): item_list = homemenu.get('item_list') else: item_list = menu_cache(user_info['cookie'], user_info['tokens']) items.extend(item_list) break except (KeyError, TypeError, UnicodeError): dialog.ok('Error', u'请求参数错误', u'请点击登出再重新登录') items.extend([{'label': u'登出 && 重新登录', 'path': plugin.url_for('clear_cache')}]) break else: cookie,tokens = get_auth.run(user_info['username'], user_info['password']) if tokens['bdstoken']: save_user_info(user_info['username'], user_info['password'], cookie, tokens) else: items.extend([{'label': u'重新登录', 'path': plugin.url_for('relogin')}]) break if loopTime == 4: dialog.ok('Error', u'未知错误', u'请重新登录') items.extend([{'label': u'重新登录', 'path': plugin.url_for('relogin')}]) return plugin.finish(items, update_listing=True)
def login_dialog(): username = dialog.input(u'用户名:', type=xbmcgui.INPUT_ALPHANUM) password = dialog.input(u'密码:', type=xbmcgui.INPUT_ALPHANUM, option=xbmcgui.ALPHANUM_HIDE_INPUT) if username and password: cookie,tokens = get_auth.run(username,password) if tokens: save_user_info(username,password,cookie,tokens) homemenu = plugin.get_storage('homemenu') homemenu.clear() dialog.ok('',u'登录成功', u'点击返回首页并耐心等待') items = [{'label': u'<< 返回首页', 'path': plugin.url_for('main_menu')}] return plugin.finish(items, update_listing=True) else: dialog.ok('Error',u'用户名或密码不能为空') return None