Example #1
0
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)
Example #2
0
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
Example #3
0
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
Example #4
0
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)