def display_path(path): """ Display path depending on its contents: video item, video list or categories. """ __log__('display_path; path', path) if plugin.addon.getSetting('cache_pages') == 'true': page_type, contents = check_page(path) else: page_type, contents = exua_parser.check_page(path) view_mode = None if page_type == 'video_page': listing = views.list_video_details(plugin, contents) if plugin.addon.getSetting('use_skin_info') == 'true': # Switch view based on a current skin. current_skin = xbmc.getSkinDir() if current_skin in ('skin.confluence', 'skin.confluence-plood', 'skin.confluence-plood-gotham'): view_mode = 503 elif current_skin in ('skin.aeon.nox', 'skin.aeon.nox.gotham', 'skin.aeon.shednox.helix'): view_mode = 52 elif current_skin == 'skin.aeon.nox.5': view_mode = 55 elif page_type == 'video_list': listing = views.list_videos(plugin, contents, path=path) elif page_type == 'categories': listing = views.list_categories(plugin, contents) else: listing = [] __log__('display_path; listing', listing) return plugin.finish(listing, view_mode=view_mode)
def search_category(path=''): """ Perform search in an ex.ua category or via Google.com. """ listing = [] keyboard = xbmc.Keyboard('', u'Поисковый запрос') keyboard.doModal() search_text = keyboard.getText() if search_text and keyboard.isConfirmed(): if path: search_path = '/search?s={0}&original_id={1}'.format(urllib.quote_plus(search_text), SEARCH_CATEGORIES[path]) else: if plugin.addon.getSetting('use_google') == 'false': search_path = '/search?s={0}'.format(urllib.quote_plus(search_text)) else: search_path = 'http://www.google.com.ua/search?q=site%3Aex.ua+{0}'.format(urllib.quote_plus(search_text)) __log__('search_category; search_path', search_path) if plugin.addon.getSetting('cache_pages') == 'true': videos = get_videos(search_path, page=0, pages=plugin.addon.getSetting('itemcount')) else: videos = exua_parser.get_videos(search_path, page=0, pages=plugin.addon.getSetting('itemcount')) listing = views.list_videos(plugin, videos, search_path) if listing and plugin.addon.getSetting('savesearch') == 'true': storage['search_history'].insert(0, {'text': search_text, 'query': search_path}) if len(storage['search_history']) > int(plugin.addon.getSetting('historylength')): storage['search_history'].pop(-1) elif not listing: xbmcgui.Dialog().ok(u'Ничего не найдено!', u'Уточните поисковый запрос и повторите попытку.') __log__('search_category; listing', listing) return listing
def bookmarks(): """ Login to display ex.ua bookmarks :return: None """ successful_login = False listing = [] if not loader.is_logged_in(): username = plugin.addon.getSetting('username') password = webloader.decode(plugin.addon.getSetting('password')) captcha = loader.check_captcha() login_dialog = login_window.LoginWindow(username, password, captcha['captcha_file']) if not login_dialog.login_cancelled: successful_login = loader.login(login_dialog.username, login_dialog.password, captcha_text=login_dialog.captcha_text, captcha_id=captcha['captcha_id']) if successful_login: plugin.addon.setSetting('username', login_dialog.username) if plugin.addon.getSetting('save_pass') == 'true': plugin.addon.setSetting('password', webloader.encode(login_dialog.password)) else: plugin.addon.setSetting('password', '') else: xbmcgui.Dialog().ok(u'Ошибка входа!', u'Проверьте логин и пароль, а затем повторите попытку.') del login_dialog __log__('bookmarks; is_logged_in', loader.is_logged_in()) __log__('bookmarks; successful_login', successful_login) if loader.is_logged_in() or successful_login: listing += views.list_videos(plugin, exua_parser.get_videos('/buffer', loader)) __log__('bookmarks; listing', listing) return listing
def video_articles(path, page_No='0'): """ Show video articles. """ __log__('video_articles; path', path) page = int(page_No) pages = plugin.addon.getSetting('itemcount') if plugin.addon.getSetting('cache_pages') == 'true': videos = get_videos(path, page, pages) else: videos = exua_parser.get_videos(path, page=page, pages=pages) listing = views.list_videos(plugin, videos, path, page) __log__('video_articles; listing', listing) return plugin.finish(listing, view_mode=50)