Exemplo n.º 1
0
def list_videos_category(plugin, item_id, category_url, page, **kwargs):

    resp = urlquick.get(category_url + "?page=%s" % page)
    root = resp.parse()

    for video_datas in root.iterfind(".//div"):
        if video_datas.get("class") is not None:
            if "col-xs-12 col-md-12 col-lg-12" in video_datas.get("class"):
                video_title = video_datas.findall(".//span/a")[1].text
                video_image = video_datas.find(".//img").get("src")
                video_url = URL_ROOT + video_datas.find(".//a").get("href")
                video_plot = ""
                if video_datas.find(".//p") is not None:
                    video_plot = video_datas.find(".//p").text

                item = Listitem()
                item.label = video_title
                item.art["thumb"] = video_image
                item.info["plot"] = video_plot

                item.set_callback(
                    get_video_url,
                    item_id=item_id,
                    video_label=LABELS[item_id] + " - " + item.label,
                    video_url=video_url,
                )
                item_post_treatment(item,
                                    is_playable=True,
                                    is_downloadable=True)
                yield item

    yield Listitem.next_page(item_id=item_id,
                             category_url=category_url,
                             page=str(int(page) + 1))
Exemplo n.º 2
0
def list_videos(plugin, item_id, context_id, program_id, page, **kwargs):

    resp = urlquick.get(URL_VIDEOS % (program_id, context_id, page))
    json_parser = json.loads(resp.text)

    for video_datas in json_parser['items']:
        video_title = video_datas["image"]["alt"].replace(' | Video', '')
        video_image = video_datas["image"]["src"]
        video_url = URL_ROOT + video_datas["url"]

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    yield Listitem.next_page(item_id=item_id,
                             context_id=context_id,
                             program_id=program_id,
                             page=str(int(page) + 1))
Exemplo n.º 3
0
def list_programs_videos(plugin, item_id, **kwargs):
    """
    Build programs listing
    - Les feux de l'amour
    - ...
    """
    resp = urlquick.get(URL_VIDEOS_DATAS)
    context_id = re.compile('contextId\" value=\"(.*?)\"').findall(
        resp.text)[0]
    root = resp.parse(
        "select", attrs={"class": "filter__input i-arrow-select-small-red"})

    for program_datas in root.iterfind(".//option"):
        program_title = program_datas.get('label')
        program_id = program_datas.get('value')

        item = Listitem()
        item.label = program_title
        item.set_callback(list_videos,
                          item_id=item_id,
                          context_id=context_id,
                          program_id=program_id,
                          page='1')
        item_post_treatment(item)
        yield item
Exemplo n.º 4
0
def list_videos_films_series_1(plugin, item_id, page, show_url, **kwargs):
    resp = urlquick.get(show_url + '?page=%s' % page)
    root = resp.parse()

    for episode in root.iterfind(
            ".//div[@class='card video-card video-card-row mdl-fixed']"):
        item = Listitem()
        item.label = episode.find('.//img').get('alt')
        try:
            video_id = re.compile('cmedia=(.*?)&').findall(
                episode.find(".//a[@class='meta-title-link']").get('href'))[0]
        except IndexError:
            continue
        if episode.find('.//img').get('data-src') is not None:
            item.art['thumb'] = episode.find('.//img').get('data-src')
        else:
            item.art['thumb'] = episode.find('.//img').get('src')

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_id=video_id)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    # More videos...
    yield Listitem.next_page(item_id=item_id, page=page + 1, show_url=show_url)
Exemplo n.º 5
0
def list_videos_search(plugin, item_id, page, search_query, **kwargs):
    resp = urlquick.get(URL_SEARCH_VIDEOS % (page, search_query))
    root = resp.parse("table", attrs={"class": "totalwidth noborder purehtml"})

    for episode in root.iterfind(".//tr"):
        if episode.find('.//img') is not None:
            item = Listitem()
            item.label = episode.find('.//img').get('alt')
            video_id = ''
            if '_cmedia=' in episode.find('.//a').get('href'):
                video_id = re.compile(r'cmedia=(.*?)\&').findall(
                    episode.find('.//a').get('href'))[0]
            elif '?cmedia=' in episode.find('.//a').get('href'):
                video_id = episode.find('.//a').get('href').split(
                    '?cmedia=')[1]
            elif 'video-' in episode.find('.//a').get('href'):
                video_id = episode.find('.//a').get('href').split(
                    '-')[1].replace('/', '')
            item.art['thumb'] = episode.find('.//img').get('src')

            item.set_callback(get_video_url,
                              item_id=item_id,
                              video_label=LABELS[item_id] + ' - ' + item.label,
                              video_id=video_id)
            item_post_treatment(item, is_playable=True, is_downloadable=True)
            yield item

    # More videos...
    yield Listitem.next_page(item_id=item_id,
                             page=page + 1,
                             search_query=search_query)
Exemplo n.º 6
0
def list_videos_seasons(plugin, item_id, next_url, **kwargs):

    resp = urlquick.get(next_url)
    json_parser = json.loads(resp.text)

    program_title = json_parser['currentPage']['displayName']

    for video_datas in json_parser['episodes']['contents']:
        if 'subtitle' in video_datas:
            video_title = program_title + ' ' + video_datas['title'] + ' ' + video_datas['subtitle']
        else:
            video_title = program_title + ' ' + video_datas['title']
        video_image = video_datas['URLImage']
        video_plot = video_datas['summary']
        video_url = video_datas['URLMedias']

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image
        item.info['plot'] = video_plot

        item.set_callback(
            get_video_url,
            item_id=item_id,
            next_url=video_url,
            video_label=LABELS[item_id] + ' - ' + item.label,
            item_dict=item2dict(item))
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item
Exemplo n.º 7
0
def list_shows_emissions_4(plugin, item_id, page, programs_url, **kwargs):
    resp = urlquick.get(programs_url + '?page=%s' % page)
    root = resp.parse()

    for program in root.iterfind(".//figure[@class='media-meta-fig']"):
        item = Listitem()
        item.label = program.find(".//h2[@class='title ']").find(
            './/span').find('.//a').text.strip()
        if program.find('.//img').get('data-attr') is not None:
            image_json_parser = json.loads(
                program.find('.//img').get('data-attr'))
            item.art['thumb'] = image_json_parser['src']
        else:
            item.art['thumb'] = program.find('.//img').get('src')
        program_url = URL_ROOT + program.find(".//h2[@class='title ']").find(
            './/span').find('.//a').get('href')

        item.set_callback(list_shows_emissions_5,
                          item_id=item_id,
                          program_url=program_url)
        item_post_treatment(item)
        yield item

    if root.find(".//div[@class_='pager pager margin_40t']") \
            is not None:
        # More programs...
        yield Listitem.next_page(item_id=item_id,
                                 programs_url=programs_url,
                                 page=page + 1)
def list_programs_concert(plugin, item_id, sub_category_code_name,
                          sub_category_url, **kwargs):
    """
    Build programs listing
    - Les feux de l'amour
    - ...
    """
    resp = urlquick.get(sub_category_url)
    json_value = re.compile(r'_INITIAL_STATE__ \= (.*?)\}\;').findall(
        resp.text)[0]
    json_parser = json.loads(json_value + '}')

    value_code = json_parser['pages']['currentCode']
    for sub_category_datas in json_parser['pages']['list'][value_code][
            'zones']:
        if sub_category_datas['code']['name'] == sub_category_code_name:
            for program_datas in sub_category_datas['data']:
                program_title = program_datas['title']
                program_url = program_datas['url']
                program_image = ''
                for image_datas in program_datas['images']['landscape'][
                        'resolutions']:
                    program_image = image_datas['url']

                item = Listitem()
                item.label = program_title
                item.art['thumb'] = program_image
                item.set_callback(list_videos_program_concert,
                                  item_id=item_id,
                                  program_url=program_url)
                item_post_treatment(item)
                yield item
def list_categories(plugin, item_id, **kwargs):
    """
    Build categories listing
    - Tous les programmes
    - Séries
    - Informations
    - ...
    """
    resp = urlquick.get(URL_ROOT % DESIRED_LANGUAGE.lower())
    json_value = re.compile(r'_INITIAL_STATE__ \= (.*?)\}\;').findall(
        resp.text)[0]
    # print 'json_value : ' + repr(json_value)
    json_parser = json.loads(json_value + '}')

    value_code = json_parser['pages']['currentCode']
    for category_datas in json_parser['pages']['list'][value_code]['zones']:
        if 'category' in category_datas['code']['name']:
            category_title = category_datas['title']
            category_url = category_datas['link']['url']

            item = Listitem()
            item.label = category_title
            item.set_callback(list_sub_categories,
                              item_id=item_id,
                              category_url=category_url)
            item_post_treatment(item)
            yield item
def list_videos_last(plugin, item_id, page=1, **kwargs):
    url_last = "standard/publish/channels/%s/contents/" % item_id
    resp = urlquick.get(URL_API(url_last),
                        params={
                            'size': 20,
                            'page': page,
                            'filter': "with-no-vod,only-visible",
                            'sort': "begin_date:desc"
                        })
    json_parser = json.loads(resp.text)

    for video in json_parser['result']:
        item = Listitem()
        broadcast_id = populate_item(item, video, True)

        item.set_callback(get_video_url,
                          item_id=item_id,
                          broadcast_id=broadcast_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          item_dict=item2dict(item))
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    # More videos...
    if json_parser['cursor']['next'] is not None:
        yield Listitem.next_page(item_id=item_id,
                                 page=json_parser['cursor']['next'])
def list_videos_other(plugin, item_id, program_part_url, page=0, **kwargs):

    # URL example: http://api-front.yatta.francetv.fr/standard/publish/taxonomies/france-2_cash-investigation/contents/?size=20&page=0&sort=begin_date:desc&filter=with-no-vod,only-visible
    url_program = "standard/publish/taxonomies/%s/contents/" % program_part_url
    resp = urlquick.get(URL_API(url_program),
                        params={
                            'size': 500,
                            'page': page,
                            'filter': "with-no-vod,only-visible",
                            'sort': "sort = begin_date:desc"
                        })
    json_parser = json.loads(resp.text)

    for video in json_parser['result']:
        if video['type'] != 'integrale' and video['type'] != 'extrait':
            item = Listitem()
            broadcast_id = populate_item(item, video)

            item.set_callback(get_video_url,
                              item_id=item_id,
                              broadcast_id=broadcast_id,
                              video_label=LABELS[item_id] + " - " + item.label,
                              item_dict=item2dict(item))
            item_post_treatment(item, is_playable=True, is_downloadable=True)
            yield item

    # More videos...
    if json_parser['cursor']['next'] is not None and json_parser['cursor'][
            'last'] is not None:
        yield Listitem.next_page(item_id=item_id,
                                 program_part_url=program_part_url,
                                 page=json_parser['cursor']['next'])
Exemplo n.º 12
0
def list_programs(plugin, item_id, category_title, **kwargs):
    """
    Build programs listing
    - Les feux de l'amour
    - ...
    """
    resp = urlquick.get(URL_SHOWS)
    root = resp.parse()

    for category_datas in root.iterfind(
            ".//div[@class='col-md-4 ProgramList-sub']"):
        if category_title in category_datas.find(".//img").get('alt'):
            for program_datas in category_datas.findall(".//a"):
                if 'emissions' in program_datas.get('href'):
                    program_title = program_datas.text
                    program_url = URL_ROOT + program_datas.get('href')

                    item = Listitem()
                    item.label = program_title
                    item.set_callback(list_videos,
                                      item_id=item_id,
                                      program_url=program_url,
                                      page='1')
                    item_post_treatment(item)
                    yield item
Exemplo n.º 13
0
def list_programs(plugin, item_id, category_emission_url, **kwargs):
    """
    Build programs listing
    - ...
    """
    resp = urlquick.get(category_emission_url)
    root = resp.parse()

    for program_datas in root.iterfind(".//div"):
        if program_datas.get("class") is not None:
            if "col-xs-12 col-md-12 col-sm-12 col-lg-12" in program_datas.get(
                    "class"):
                program_title = program_datas.findall(".//span/a")[1].text
                program_image = program_datas.find(".//img").get("src")
                program_url = URL_ROOT + program_datas.find(".//a").get("href")
                program_plot = ""
                if program_datas.find(".//p") is not None:
                    program_plot = program_datas.find(".//p").text

                item = Listitem()
                item.label = program_title
                item.art["thumb"] = program_image
                item.info["plot"] = program_plot
                item.set_callback(list_videos,
                                  item_id=item_id,
                                  program_url=program_url,
                                  page="0")
                item_post_treatment(item)
                yield item
Exemplo n.º 14
0
def list_categories(plugin, item_id, **kwargs):
    """
    Build categories listing
    - ...
    """
    category_emission_url = URL_ROOT + "/fr/a24-nos-emissions"
    item = Listitem()
    item.label = "Emissions"
    item.set_callback(list_programs,
                      item_id=item_id,
                      category_emission_url=category_emission_url)
    item_post_treatment(item)
    yield item

    resp = urlquick.get(URL_ROOT)
    root = resp.parse("section", attrs={"class": "block block-project-menu"})

    for category_datas in root.iterfind(".//li"):
        category_title = category_datas.find("a").get("title")
        category_url = URL_ROOT + category_datas.find("a").get("href")

        item = Listitem()
        item.label = category_title
        item.set_callback(list_videos_category,
                          item_id=item_id,
                          category_url=category_url,
                          page="0")
        item_post_treatment(item)
        yield item
Exemplo n.º 15
0
def list_seasons(plugin, item_id, program_url, **kwargs):

    resp = urlquick.get(program_url,
                        headers={"User-Agent": web_utils.get_random_ua()})
    root = resp.parse("ul", attrs={"class": "nav nav-tabs"})

    for season_datas in root.iterfind(".//h3"):
        season_title = season_datas.text.strip()
        season_url = program_url + '#%s' % season_datas.text.split(' ')[1]

        item = Listitem()
        item.label = season_title
        item.set_callback(list_videos, item_id=item_id, season_url=season_url)
        item_post_treatment(item)
        yield item

    if root.find('.//h2') is not None:
        season_title = 'Series %s' % root.find('.//h2').text.strip()
        season_url = program_url

        item = Listitem()
        item.label = season_title
        item.set_callback(list_videos, item_id=item_id, season_url=season_url)
        item_post_treatment(item)
        yield item
Exemplo n.º 16
0
def list_categories(plugin, item_id, **kwargs):
    """
    Build categories listing
    - Tous les programmes
    - Séries
    - Informations
    - ...
    """
    resp = urlquick.get(URL_REPLAY_CNEWS)
    root = resp.parse("menu", attrs={"class": "index-emission-menu"})

    for category in root.iterfind("ul/li"):
        if category.find('a') is not None:
            category_name = category.find('a').text
        else:
            category_name = category.text
        if 'mission' in category_name:
            category_url = URL_EMISSIONS_CNEWS
        else:
            category_url = URL_VIDEOS_CNEWS

        if category_name != 'Les tops':
            item = Listitem()
            item.label = category_name
            item.set_callback(list_videos,
                              item_id=item_id,
                              category_url=category_url,
                              page='0')
            item_post_treatment(item)
            yield item
Exemplo n.º 17
0
def list_videos(plugin, item_id, page, **kwargs):
    """Add modes in the listing"""

    resp = requests.get(URL_REPLAYS % page)
    parser = htmlement.HTMLement()
    parser.feed(resp.text)
    root = parser.close()

    for video_datas in root.iterfind(".//li"):
        video_title = video_datas.find('.//a').get('title')
        video_image = URL_ROOT + re.compile(r'url\((.*?)\)').findall(
            video_datas.find(".//div[@class='imgContainer']").get('style'))[0]
        video_id = re.compile(r'concert\/(.*?)\/').findall(
            video_datas.find('.//a').get('href'))[0]

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image

        item.set_callback(
            get_video_url,
            item_id=item_id,
            video_label=LABELS[item_id] + ' - ' + item.label,
            video_id=video_id)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    yield Listitem.next_page(item_id=item_id, page=str(int(page) + 1))
Exemplo n.º 18
0
def list_videos(plugin, item_id, category_url, page, **kwargs):

    resp = urlquick.get(category_url % page)
    parser = htmlement.HTMLement()
    parser.feed(resp.json())
    data = parser.close()

    for video_datas in data.iterfind(".//a"):
        video_title = video_datas.find('.//img').get('title')
        video_image = video_datas.find('.//img').get('data-echo')
        video_url = URL_ROOT_SITE + video_datas.get('href')

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    # More videos...
    yield Listitem.next_page(item_id=item_id,
                             category_url=category_url,
                             page=str(int(page) + 1))
Exemplo n.º 19
0
def list_categories(plugin, item_id, **kwargs):
    """
    Build categories listing
    - Tous les programmes
    - Séries
    - Informations
    - ...
    """
    resp = urlquick.get(URL_REPLAY % item_id)
    json_replay = re.compile('window.__data=(.*?)};').findall(resp.text)[0]
    json_parser = json.loads(json_replay + ('}'))

    for category in json_parser["templates"]["landing"]["strates"]:
        if category["type"] == "contentRow" or category["type"] == "contentGrid":
            if 'title' in category:
                title = category['title']
            else:
                title = json_parser["page"]["displayName"]

            item = Listitem()
            item.label = title
            item.set_callback(
                list_contents, item_id=item_id, title_value=title)
            item_post_treatment(item)
            yield item
Exemplo n.º 20
0
def list_videos(plugin, item_id, program_id, page, **kwargs):

    resp = resp = urlquick.get(URL_VIDEOS % (program_id, page))
    root = resp.parse()

    for video_datas in root.iterfind(".//li[@class='item']"):
        video_title = video_datas.find('.//h3').text
        video_image = URL_ROOT + video_datas.find('.//img').get('src')
        video_plot = video_datas.find('.//p').text
        video_url = URL_ROOT + video_datas.find('.//a').get('href')
        date_value = video_datas.find(".//span[@class='date']").text.split(
            ' ')[1]

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image
        item.info['plot'] = video_plot
        item.info.date(date_value, '%d.%m.%Y')

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    yield Listitem.next_page(item_id=item_id,
                             program_id=program_id,
                             page=str(int(page) + 1))
Exemplo n.º 21
0
def list_shows_films_series_1(plugin, item_id, category_url, **kwargs):
    # Build All Types
    resp = urlquick.get(category_url)
    root = resp.parse()

    replay_types_films_series = root.findall(
        ".//ul[@class='filter-entity-word']")[0]

    item = Listitem()
    item.label = '# Toutes les videos'
    item.set_callback(list_videos_films_series_1,
                      item_id=item_id,
                      page=1,
                      show_url=category_url)
    item_post_treatment(item)
    yield item

    for all_types in replay_types_films_series.findall('.//a'):
        item = Listitem()

        item.label = all_types.text
        show_url = URL_ROOT + all_types.get('href')

        item.set_callback(list_shows_films_series_2,
                          item_id=item_id,
                          show_url=show_url)
        item_post_treatment(item)
        yield item
Exemplo n.º 22
0
def list_videos_documentaries(plugin, item_id, next_url, page, **kwargs):

    resp = urlquick.get(next_url)
    program_id = re.compile(r'\/program\.(.*?)\/prepare').findall(resp.text)[0]

    resp2 = urlquick.get(
        eval('URL_ROOT_%s' % DESIRED_LANGUAGE) + '/listing/program.%s/prepare/telecasts/10/%s' % (program_id, page))

    root = resp2.parse("ul", attrs={"class": "telecast-list js-listing__list"})

    for video_datas in root.iterfind(
            ".//div[@class='telecast-list__content']"):
        video_title = video_datas.find(".//img").get('alt')
        video_image = video_datas.find(".//img").get('data-src')
        video_url = eval(
            'URL_ROOT_%s' %
            DESIRED_LANGUAGE) + video_datas.find('.//a').get('href')
        video_plot = video_datas.find(
            ".//p[@class='card__summary ']").text.strip()

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image
        item.info['plot'] = video_plot

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    yield Listitem.next_page(item_id=item_id,
                             next_url=next_url,
                             page=str(int(page) + 1))
Exemplo n.º 23
0
def list_videos_emissions_1(plugin, item_id, show_url, **kwargs):
    resp = urlquick.get(show_url)
    root = resp.parse("div", attrs={"class": "gd gd-gap-15 gd-xs-1 gd-s-2"})

    for episode in root.iterfind(
            ".//div[@class='card video-card video-card-col mdl-fixed']"):
        item = Listitem()
        item.label = episode.find(".//img").get('alt')

        if episode.find('.//img').get('data-attr') is not None:
            image_json_parser = json.loads(
                episode.find('.//img').get('data-attr'))
            item.art['thumb'] = image_json_parser['src']
        elif episode.find('.//img').get('data-src') is not None:
            item.art['thumb'] = episode.find('.//img').get('data-src')
        else:
            item.art['thumb'] = episode.find('.//img').get('src')

        if '?cmedia=' in episode.find('.//a').get('href'):
            video_id = episode.find('.//a').get('href').split('?cmedia=')[1]
        elif 'cfilm=' in episode.find('.//a').get('href') or \
                'cserie=' in episode.find('.//a').get('href'):
            video_id = episode.find('.//a').get('href').split(
                '_cmedia=')[1].split('&')[0]
        else:
            video_id = episode.find('.//a').get('href').split('-')[1].replace(
                '/', '')

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_id=video_id)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item
Exemplo n.º 24
0
def list_videos(plugin, item_id, page, **kwargs):

    resp = urlquick.get(
        eval('URL_ROOT_%s' % DESIRED_LANGUAGE) + '/listing/type.Videoclub.category.videos/noprepare/video-rows/10/%s' %
        (page))

    root = resp.parse("ul", attrs={"class": "media-rows js-listing__list"})

    for video_datas in root.iterfind(".//div[@class='media-rows__content']"):
        video_title = video_datas.find(".//img").get('alt')
        video_image = video_datas.find(".//img").get('data-src')
        video_url = eval(
            'URL_ROOT_%s' %
            DESIRED_LANGUAGE) + video_datas.find('.//a').get('href')

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    yield Listitem.next_page(item_id=item_id, page=str(int(page) + 1))
Exemplo n.º 25
0
def list_programs_videos_on_demand(plugin, item_id, page, **kwargs):
    """
    Build programs listing
    - Les feux de l'amour
    - ...
    """
    resp = urlquick.get(URL_SHOWS_DATAS)
    context_id = re.compile('contextId\" value=\"(.*?)\"').findall(
        resp.text)[0]
    resp2 = urlquick.get(URL_SHOWS % (context_id, page))
    json_parser = json.loads(resp2.text)

    for program_datas in json_parser["items"]:
        program_title = program_datas["title"]
        program_image = ''
        for image_datas in program_datas["image"]["items"][0]["srcset"]:
            program_image = URL_ROOT + image_datas["src"]
        program_url = URL_ROOT + program_datas["url"]

        item = Listitem()
        item.label = program_title
        item.art['thumb'] = program_image
        item.set_callback(list_videos_on_demand,
                          item_id=item_id,
                          program_url=program_url,
                          page='1')
        item_post_treatment(item)
        yield item

    yield Listitem.next_page(item_id=item_id, page=str(int(page) + 1))
Exemplo n.º 26
0
def list_categories(plugin, item_id, **kwargs):
    """
    Build categories listing
    - Tous les programmes
    - Séries
    - Informations
    - ...
    """
    resp = urlquick.get(URL_NHK_LIFESTYLE)
    root = resp.parse()

    for category_datas in root.iterfind(
            ".//h2[@class='p-sliderSection__heading']"):
        if category_datas.find('.//a') is not None:
            if category_datas.find('.//a').get('class') is not None:
                if 'text-color-' in category_datas.find('.//a').get('class'):
                    category_title = category_datas.find('.//a').text
                    category_url = URL_NHK_LIFESTYLE + category_datas.find(
                        './/a').get('href')

                    item = Listitem()
                    item.label = category_title
                    item.set_callback(list_videos,
                                      item_id=item_id,
                                      category_url=category_url)
                    item_post_treatment(item)
                    yield item
Exemplo n.º 27
0
def list_videos_on_demand(plugin, item_id, program_url, page, **kwargs):

    resp = urlquick.get(program_url)
    context_id = re.compile('contextId\" value=\"(.*?)\"').findall(
        resp.text)[0]
    resp2 = urlquick.get(URL_SHOWS % (context_id, page))
    json_parser = json.loads(resp2.text)

    for video_datas in json_parser['items']:
        video_title = video_datas["title"]
        video_image = ''
        if 'src' in video_datas["image"]:
            video_image = video_datas["image"]["src"]
        else:
            for image_datas in video_datas["image"]["items"][0]["srcset"]:
                video_image = URL_ROOT + image_datas["src"]
        video_url = URL_ROOT + video_datas["url"]

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    yield Listitem.next_page(item_id=item_id,
                             program_url=program_url,
                             page=str(int(page) + 1))
Exemplo n.º 28
0
def list_videos(plugin, item_id, category_url, **kwargs):

    resp = urlquick.get(category_url)
    root = resp.parse()

    for video_datas in root.iterfind(".//div[@class='root_qT0Me']"):
        if video_datas.find(".//p[@class='subtitle_1hI_I']") is not None:
            if video_datas.find(".//p[@class='title_1APl2']").text is not None:
                video_title = video_datas.find(
                    ".//p[@class='title_1APl2']"
                ).text + ' - ' + video_datas.find(
                    ".//p[@class='subtitle_1hI_I']").text
            else:
                video_title = video_datas.find(
                    ".//p[@class='subtitle_1hI_I']").text
        else:
            video_title = video_datas.find(".//p[@class='title_1APl2']").text
        video_image = video_datas.find('.//img').get('src')
        video_url = URL_ROOT + video_datas.find('.//a').get('href')

        item = Listitem()
        item.label = video_title
        item.art['thumb'] = video_image

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_url=video_url)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item
Exemplo n.º 29
0
def list_videos(plugin, item_id, url, **kwargs):
    headers = {'User-Agent': 'Android'}
    r = urlquick.get(url, headers=headers)
    json_parser = json.loads(r.text)
    for video in json_parser['list']:
        item = Listitem()
        item.label = video['title']
        item.info['plot'] = video['description']
        item.info['duration'] = video['duration']
        item.art["thumb"] = video['thumbnail_large_url']
        vid = video['id']

        item.set_callback(get_video_url,
                          item_id=item_id,
                          video_label=LABELS[item_id] + ' - ' + item.label,
                          video_id=vid)
        item_post_treatment(item, is_playable=True, is_downloadable=True)
        yield item

    if json_parser['has_more']:
        currentPage = json_parser['page']
        nextPage = currentPage + 1
        yield Listitem.next_page(url=url.replace("page=" + str(currentPage),
                                                 "page=" + str(nextPage)),
                                 callback=list_videos,
                                 item_id=item_id)
Exemplo n.º 30
0
def list_videos(plugin, item_id, program_url, page, **kwargs):

    resp = urlquick.get(program_url + "?page=%s" % page)
    root = resp.parse("div", attrs={"class": "region region-video-home"})

    for video_datas in root.iterfind(".//div"):
        if video_datas.get("class") is not None:
            if "col-xs-omar col-xs-6 col-md-4 col-sm-4 col-lg-4" in video_datas.get(
                    "class"):
                video_title = video_datas.findall(".//span/a")[1].text
                video_image = video_datas.find(".//img").get("src")
                video_url = URL_ROOT + video_datas.find(".//a").get("href")

                item = Listitem()
                item.label = video_title
                item.art["thumb"] = video_image

                item.set_callback(
                    get_video_url,
                    item_id=item_id,
                    video_label=LABELS[item_id] + " - " + item.label,
                    video_url=video_url,
                )
                item_post_treatment(item,
                                    is_playable=True,
                                    is_downloadable=True)
                yield item

    yield Listitem.next_page(item_id=item_id,
                             program_url=program_url,
                             page=str(int(page) + 1))