コード例 #1
0
ファイル: __init__.py プロジェクト: Kornflexx/blissflixx
def _extract(doc):
  rtree = select_all(doc, 'li.list-item')
  results = PlayItemList()
  for l in rtree:
    a = select_one(l, 'a')
    url = get_attr(a, 'href')
    if url is None or not url.startswith('/iplayer'):
      continue
    url = "http://www.bbc.co.uk" + url

    pdiv = select_one(l, 'div.primary')
    idiv = select_one(pdiv, 'div.r-image')
    img = get_attr(idiv, 'data-ip-src')

    sdiv = select_one(l, 'div.secondary')
    title = get_text(select_one(sdiv, 'div.title'))
    subtitle = get_text(select_one(sdiv, 'div.subtitle'))
    synopsis = get_text(select_one(sdiv, 'p.synopsis'))
    item = PlayItem(title, img, url, subtitle, synopsis)
    a = select_one(l, 'a.view-more-container')
    if a is not None:
      link = "http://bbc.co.uk" + a.get('href')
      item.add_action(MoreEpisodesAction(link, title))
    results.add(item)
  return results
コード例 #2
0
ファイル: __init__.py プロジェクト: blissland/blissflixx
def _extract(doc):
    rtree = select_all(doc, 'li.list-item')
    results = PlayItemList()
    for l in rtree:
        a = select_one(l, 'a')
        url = get_attr(a, 'href')
        if url is None:
            continue
        if url.startswith('/iplayer'):
            url = "http://www.bbc.co.uk" + url

        pdiv = select_one(l, 'div.primary')
        idiv = select_one(pdiv, 'div.r-image')
        if idiv is None:
            idiv = select_one(pdiv, 'div.rs-image')
            idiv = select_one(idiv, 'source')
            img = get_attr(idiv, 'srcset')
        else:
            img = get_attr(idiv, 'data-ip-src')

        sdiv = select_one(l, 'div.secondary')
        title = get_text(select_one(sdiv, 'div.title'))
        subtitle = get_text(select_one(sdiv, 'div.subtitle'))
        synopsis = get_text(select_one(sdiv, 'p.synopsis'))
        item = PlayItem(title, img, url, subtitle, synopsis)
        a = select_one(l, 'a.view-more-container')
        if a is not None:
            link = "http://bbc.co.uk" + a.get('href')
            item.add_action(MoreEpisodesAction(link, title))
        results.add(item)
    return results
コード例 #3
0
ファイル: __init__.py プロジェクト: crow34/vhsheaven
def feed(idx):
  url = _FEEDLIST[idx]['url']
  doc = get_doc(url)
  rtree = select_all(doc, "a.complex-link")
  results = PlayItemList()
  for l in rtree:
    url = get_attr(l, 'href')
    el = select_one(l, '.tout__title')
    if el is None:
      continue
    title = get_text(el)
    el = select_one(l, 'img.fluid-media__media')
    img = get_attr(el, 'src')
    el = select_one(l, 'p.tout__meta')
    subtitle = get_text_content(el)
    if subtitle == 'No episodes available':
      continue    
    item = PlayItem(title, img, url, subtitle)
    if subtitle != '1 episode':
      item.add_action(MoreEpisodesAction(url, title))
    results.add(item)
  if idx == 0:
    global _SHOWLIST
    _SHOWLIST = results
  return results
コード例 #4
0
def search(q):
    q = q.replace(' ', '-')
    q = q.replace("'", '')
    doc = get_doc(_SEARCH_URL + q)
    rtree = select_all(doc, 'div.search-wrapper')
    results = PlayItemList()
    for l in rtree:
        el = select_one(l, 'h4 a')
        url = get_attr(el, 'href')
        title = get_text(el)
        el = select_one(l, "div.search-result-image a img")
        img = get_attr(el, 'src')
        el = select_one(l, ".search-episode-count")
        matched = int(get_attr(el, 'data-matched_episodes'))
        episodes = get_text(el)
        episodes = int(episodes[0:episodes.find(' ')])
        action = None
        if episodes > matched:
            action = MoreEpisodesAction(url, title)
        eps = select_all(l, ".episode")
        for e in eps:
            el = select_one(e, ".episode-title a")
            url = _PREFIX + get_attr(el, 'href')
            subtitle = get_text(el)
            el = select_one(e, ".description")
            synopsis = get_text_content(el)
            item = PlayItem(title, img, url, subtitle, synopsis)
            results.add(item)
            if action:
                item.add_action(action)
                break
    return results
コード例 #5
0
def _extract_search(search_json):
    results = PlayItemList()
    for track in search_json:
        kind = track['kind']
        if kind != 'track':
            continue
        title = track['title']
        user = track['user']['username']
        if track['duration'] != track['full_duration']:
            continue
        duration_s = track['duration'] // 1000
        duration = str(timedelta(seconds=duration_s))
        plays = 'likes: ' + \
            human_format(track['likes_count']) + ' plays: ' + \
            human_format(track['playback_count'])
        subtitle = user + '<br/> duration: ' + duration + ' ' + plays
        if track['artwork_url'] and track['artwork_url'] != '':
            img = track['artwork_url'].replace('-large.', '-t300x300.')
        elif track['user']['avatar_url'] and track['user']['avatar_url'] != '':
            img = track['user']['avatar_url'].replace('-large.', '-t300x300.')
        else:
            img = '/img/icons/music.svg'
        url = track['permalink_url']
        results.add(PlayItem(title, img, url, subtitle))
    return results
コード例 #6
0
ファイル: __init__.py プロジェクト: PaulBunker/blissflixx
def search(q):
  q = q.replace(' ', '-')
  q = q.replace("'", '')
  doc = get_doc(_SEARCH_URL + q)
  rtree = select_all(doc, 'div.search-wrapper')
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'div.remaining-time')
    if el is not None and get_text(el).strip() == 'unavailable':
      continue
    el = select_one(l, 'h4 a')
    url = get_attr(el, 'href')
    title = get_text(el)
    el = select_one(l, "div.search-result-image a img")
    img = get_attr(el, 'src')
    el = select_one(l, ".search-episode-count")
    matched = int(get_attr(el, 'data-matched_episodes'))
    episodes = get_text(el)
    episodes = int(episodes[0:episodes.find(' ')])
    action = None
    if episodes > matched:
      action = MoreEpisodesAction(url, title)
    eps = select_all(l, ".episode")
    for e in eps:
      el = select_one(e, ".episode-title a")
      url = _PREFIX + get_attr(el, 'href')
      subtitle = get_text(el)
      el = select_one(e, ".description")
      synopsis = get_text_content(el)
      item = PlayItem(title, img, url, subtitle, synopsis)
      results.add(item)
      if action:
        item.add_action(action)
        break
  return results
コード例 #7
0
def feed(idx):
    url = _FEEDLIST[idx]['url']
    doc = get_doc(url)
    rtree = select_all(doc, "a.complex-link")
    results = PlayItemList()
    for l in rtree:
        url = get_attr(l, 'href')
        el = select_one(l, '.tout__title')
        if el is None:
            continue
        title = get_text(el)
        el = select_one(l, 'img.fluid-media__media')
        img = get_attr(el, 'src')
        el = select_one(l, 'p.tout__meta')
        subtitle = get_text_content(el)
        if subtitle == 'No episodes available':
            continue
        item = PlayItem(title, img, url, subtitle)
        if subtitle != '1 episode':
            item.add_action(MoreEpisodesAction(url, title))
        results.add(item)
    if idx == 0:
        global _SHOWLIST
        _SHOWLIST = results
    return results
コード例 #8
0
def _extract(data):
    results = PlayItemList()
    if 'data' not in data:
        return results
    if 'movies' not in data['data']:
        return results
    rtree = data['data']['movies']
    for r in rtree:
        if 'torrents' not in r:
            continue
        torrent = _smallest_size(r['torrents'])
        title = r['title_long']
        img = r['medium_cover_image']
        # Proxy
        img = "https://img.yts.mx" + img[14:]
        url = torrent['url']
        size = torrent['size']
        seeds = torrent['seeds']
        peers = torrent['peers']
        subtitle = chanutils.torrent.subtitle(size, seeds, peers)
        rating = str(r['rating'])
        if rating[-1] == '0':
            rating = rating[:-1]
        imdb = "<a target='_blank' href='http://www.imdb.com/title/" + r[
            'imdb_code'] + "/'>IMDB Rating: " + rating + "</a>"
        synopsis = imdb
        subs = movie_title_year(title)
        subs['imdb'] = r['imdb_code']
        results.add(TorrentPlayItem(title, img, url, subtitle, synopsis, subs))
    return results
コード例 #9
0
ファイル: __init__.py プロジェクト: blissland/blissflixx
def _extract_grid(doc):
    rtree = select_all(doc, 'li.grid__item')
    results = PlayItemList()
    for l in rtree:
        a = select_one(l, 'a')
        url = get_attr(a, 'href')
        if url is None:
            continue
        if url.startswith('/iplayer'):
            url = "http://www.bbc.co.uk" + url
        idiv = select_one(l, 'div.rs-image')
        idiv = select_one(idiv, 'img')
        img = get_attr(idiv, 'srcset').split()[0]

        sdiv = select_one(l, 'div.content-item__info__text')
        avail = select_one(sdiv, 'div.content-item__labels')
        if get_text_content(avail) == "Not available":
            continue

        title = get_text_content(select_one(sdiv, 'div.content-item__title'))
        subtitle = get_text_content(
            select_one(sdiv, 'div.content-item__description'))
        if title.endswith("..."):
            title = title[:-3]
        if subtitle.endswith("..."):
            subtitle = subtitle[:-3]

        item = PlayItem(title, img, url, subtitle)
        a = select_one(l, 'a.js-view-all-episodes')
        if a is not None:
            link = "http://bbc.co.uk" + a.get('href')
            item.add_action(MoreEpisodesAction(link, title))
        results.add(item)
    return results
コード例 #10
0
def _extract_popular(doc):
    rtree = select_all(doc, 'li.most-popular__item')
    results = PlayItemList()

    for l in rtree:
        a = select_one(l, 'a')
        url = get_attr(a, 'href')
        if url is None:
            continue
        if url.startswith('/iplayer'):
            url = "http://www.bbc.co.uk" + url
        idiv = select_one(l, 'div.rs-image')
        idiv = select_one(idiv, 'source')
        img = get_attr(idiv, 'srcset')
        img = img.split()[0]

        idiv = select_one(l, 'div.content-item__info__text')
        title = get_text(select_one(idiv, 'div.content-item__title'))
        pdiv = select_one(idiv, 'div.content-item__info__primary')
        subtitle = get_text(select_one(pdiv, 'div.content-item__description'))
        pdiv = select_one(idiv, 'div.content-item__info__secondary')
        synopsis = get_text(select_one(pdiv, 'div.content-item__description'))
        item = PlayItem(title, img, url, subtitle, synopsis)
        results.add(item)
    return results
コード例 #11
0
ファイル: __init__.py プロジェクト: snowmeister/blissflixx
def search(q):
  results = PlayItemList()
  items = _SHOWLIST.to_list()
  for i in items:
    title = i.title 
    if q.lower() in title.lower():
      results.add(i)
  return results
コード例 #12
0
def search(q):
    results = PlayItemList()
    items = _SHOWLIST.to_list()
    for i in items:
        title = i.title
        if q.lower() in title.lower():
            results.add(i)
    return results
コード例 #13
0
def feed(idx):
    folder = _FEEDLIST[idx]['folder']
    results = PlayItemList()
    files = os.listdir(folder)
    for f in files:
        title = os.path.splitext(f)[0]
        url = 'file://' + os.path.join(folder, f)
        results.add(PlayItem(title, '/img/icons/file-o.svg', url))
    return results
コード例 #14
0
def _extract_html(doc):
  results = PlayItemList()
  result_list = _extract_list(doc)
  # sort by seeds (removing dots and commas)
  result_list.sort(key=lambda el: int(el['seeds'].translate(None, ".,")), reverse = True) 
  for l in result_list:    
    subtitle = _subtitle(l['size'], l['seeds'], l['released'])
    results.add(TorrentPlayItem(l['title'], l['img'], l['url'], subtitle, subs=l['subs']))
  return results
コード例 #15
0
def search(q):
    shows = get_json(_ALL_SHOWS_URL)
    results = PlayItemList()
    for i in shows:
        if not 'episode' in i['url']:
            continue
        if q.lower() in i['title'].lower():
            results.add(
                PlayItem(i['title'], i['image']['jelly'], i['url']['episode'],
                         i['synopses']))
    return results
コード例 #16
0
def _extract(stream_json):
  results = PlayItemList()
  for stream in stream_json:
    title = stream['user_name'] if 'user_name' in stream else ''
    status = stream['title'] if 'title' in stream else ''
    viewers = stream['viewer_count'] if 'viewer_count' in stream else ''
    subtitle = 'viewers: ' + str(viewers) + '<br>' + status
    img = stream['thumbnail_url'].replace('{width}','165').replace('{height}','124')
    url = _BASE_URL + stream['user_name'] if 'user_name' in stream else ''
    results.add(LiveStreamPlayItem(title, img, url, subtitle))
  return results
コード例 #17
0
def _extract_streams(stream_json):
  results = PlayItemList()
  for stream in stream_json:
    title = stream['channel']['display_name'] if 'display_name' in stream['channel'] else ''
    status = stream['channel']['status'] if 'status' in stream['channel'] else ''
    viewers = stream['viewers'] if 'viewers' in stream else ''
    subtitle = 'viewers: ' + str(viewers) + '<br>' + status
    img = stream['channel']['logo']
    url = stream['channel']['url'] if 'url' in stream['channel'] else ''
    results.add(LiveStreamPlayItem(title, img, url, subtitle))
  return results
コード例 #18
0
ファイル: __init__.py プロジェクト: crow34/vhsheaven
def _extract(text):
    start = text.find('var data = {')
    end = text.find('console.debug(data);', start)
    data = json.loads(text[start+11:end-14])
    results = PlayItemList()
    for item in data['filtered']['data']:
      url = item['clip']['link']
      title = item['clip']['name']
      img = item['clip']['pictures']['sizes'][-1]['link']
      results.add(PlayItem(title, img, url))
    return results
コード例 #19
0
ファイル: __init__.py プロジェクト: crow34/vhsheaven
def _extract(text):
    start = text.find('var data = {')
    end = text.find('console.debug(data);', start)
    data = json.loads(text[start + 11:end - 14])
    results = PlayItemList()
    for item in data['filtered']['data']:
        url = item['clip']['link']
        title = item['clip']['name']
        img = item['clip']['pictures']['sizes'][-1]['link']
        results.add(PlayItem(title, img, url))
    return results
コード例 #20
0
ファイル: __init__.py プロジェクト: Kornflexx/blissflixx
def _extract(stream_json):
  results = PlayItemList()
  for stream in stream_json:
    title = stream['channel']['name'] if 'name' in stream['channel'] else ''
    status = stream['channel']['status'] if 'status' in stream['channel'] else ''
    viewers = stream['viewers'] if 'viewers' in stream else ''
    subtitle = 'viewers: ' + str(stream['viewers']) + '<br>' + status
    img = stream['channel']['logo']
    url = stream['channel']['url'] if 'url' in stream['channel'] else ''
    results.add(LiveStreamPlayItem(title, img, url, subtitle))
  return results
コード例 #21
0
ファイル: __init__.py プロジェクト: Kornflexx/blissflixx
def _extract(data):
  results = PlayItemList()
  rtree = data['results']
  for r in rtree:
    title = replace_entity(r['title'])
    img = r['thumbnailUrl']
    if 'url' in r:
      url = r['url']
    else:
      url = r['URL']
    results.add(PlayItem(title, img, url))
  return results
コード例 #22
0
def _extract(data):
    results = PlayItemList()
    rtree = data['results']
    for r in rtree:
        title = replace_entity(r['title'])
        img = r['thumbnailUrl']
        if 'url' in r:
            url = r['url']
        else:
            url = r['URL']
        results.add(PlayItem(title, img, url))
    return results
コード例 #23
0
ファイル: __init__.py プロジェクト: blissland/blissflixx
def _extract(doc):
    result_list = _extract_list(doc)
    results = PlayItemList()
    for l in result_list:
        subtitle = chanutils.torrent.subtitle(l['size'], l['seeds'],
                                              l['peers'])
        results.add(
            TorrentPlayItem(l['title'],
                            l['img'],
                            l['url'],
                            subtitle,
                            subs=l['subs']))
    return results
コード例 #24
0
def _extract_showlist(doc):
  rtree = select_all(doc, 'tr[name="hover"]')
  img = None
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'a.thread_link')
    title = get_text(el)
    url = get_attr(el, 'href')
    el = select_one(l, 'b')
    rating = get_text(el)
    subtitle = "Rating: " + rating
    item = ShowMoreItem(title, img, url, subtitle)
    results.add(item)
  return results
コード例 #25
0
def _extract(doc):
    results = PlayItemList()
    rtree = select_all(doc, 'div.col')
    for r in rtree:
        el = select_one(r, "h4")
        title = get_text(el)
        if not title:
            continue
        el = select_one(r, "img")
        img = get_attr(el, "src")
        el = select_one(r, "a.js-click-video")
        url = get_attr(el, "href")
        results.add(PlayItem(title, img, url))
    return results
コード例 #26
0
def _extract(doc):
    results = PlayItemList()
    rtree = select_all(doc, 'tr')
    first = True
    for l in rtree:
        if first:
            first = False
            continue
        el = select_one(l, "a[title='More from this category']")
        maincat = get_text(el)
        img = '/img/icons/film.svg'
        if maincat is not None:
            if maincat == 'Video':
                img = '/img/icons/film.svg'
            elif maincat == 'Audio':
                img = '/img/icons/music.svg'
            else:
                continue
        el = select_one(l, 'a.detLink')
        title = get_text(el)
        el = select_one(l, "a[title='Download this torrent using magnet']")
        url = get_attr(el, 'href')
        el = select_one(l, 'font.detDesc')
        desc = get_text(el)
        start = desc.find(', Size ')
        if start == -1:
            continue
        start = start + 7
        end = desc.find(',', start)
        if end == -1:
            continue
        size = desc[start:end].replace("iB", "B")
        el = select_one(l, "td:nth-child(3)")
        seeds = get_text(el)
        el = select_one(l, "td:nth-child(4)")
        peers = get_text(el)
        subtitle = chanutils.torrent.subtitle(size, seeds, peers)
        subcat = "Movies"
        el = select_one(l, ":nth-child(3)")
        if el.text is not None:
            subcat = get_text(el)
        subs = None
        if subcat.endswith("Movies"):
            subs = movie_title_year(title)
        elif subcat.endswith("shows"):
            subs = series_season_episode(title)
        if not url:
            continue
        results.add(TorrentPlayItem(title, img, url, subtitle, subs=subs))
    return results
コード例 #27
0
def _extract(doc):
    rtree = select_all(doc, '#browse_content li a')
    results = PlayItemList()
    for l in rtree:
        url = _PREFIX + l.get('href')
        title = get_attr(l, 'title')
        if title is None:
            break
        el = select_one(l, 'img')
        img = get_attr(el, 'src')
        el = select_one(l, 'time')
        subtitle = get_text(el)
        results.add(PlayItem(title, img, url, subtitle))
    return results
コード例 #28
0
ファイル: __init__.py プロジェクト: Kornflexx/blissflixx
def _extract(doc):
  rtree = select_all(doc, '#browse_content li a')
  results = PlayItemList()
  for l in rtree:
    url = _PREFIX + l.get('href')
    title = get_attr(l, 'title')
    if title is None:
      break
    el = select_one(l, 'img')
    img = get_attr(el, 'src')
    el = select_one(l, 'time')
    subtitle = get_text(el)
    results.add(PlayItem(title, img, url, subtitle))
  return results
コード例 #29
0
def _extract_show(data):
  results = PlayItemList()
  img = data['images']['poster']
  series = data['title']
  rtree = data['episodes'] 
  for r in rtree:
    title = r['title']
    url = r['torrents']['0']['url']
    subtitle = "Season: " + str(r['season']) + ", Episode: " + str(r['episode'])
    synopsis = r['overview']
    subs = {'series':series, 'season':r['season'], 
            'episode':r['episode']}
    results.add(TorrentPlayItem(title, img, url, subtitle, synopsis, subs=subs))
  return results
コード例 #30
0
def _extract(doc):
    rtree = select_all(doc, 'li.browse-content-item-videos')
    results = PlayItemList()
    for l in rtree:
        el = select_one(l, 'a')
        href = get_attr(el, 'href')
        if href is None:
            continue
        url = _PREFIX + href
        el = select_one(l, 'img')
        img = get_attr(el, 'src')
        el = select_one(l, 'div.browse-content-top-line')
        subtitle = get_text(el)
        el = select_one(l, 'div.browse-content-second-line')
        title = get_text(el)
        results.add(PlayItem(title, img, url, subtitle))
    return results

    results = PlayItemList()
    for l in rtree:
        el = select_one(l, 'a')
        url = get_attr(el, 'href')
        if not url.startswith('/talks/'):
            continue
        url = _PREFIX + url
        title = get_text(el)
        el = select_one(l, 'img')
        img = get_attr(el, 'src')
        el = select_one(l, 'div.search__result__description')
        synopsis = get_text(el)
        results.add(PlayItem(title, img, url, synopsis=synopsis))
    return results
コード例 #31
0
ファイル: __init__.py プロジェクト: blissland/blissflixx
def feed(idx):
  doc = get_doc(_FEEDLIST[idx]['url'])
  rtree = select_all(doc, 'div.post-block')
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'a')
    url = get_attr(el, 'href')
    el = select_one(l, 'img')
    img = get_attr(el, 'src')
    el = select_one(l, 'div.post-block__content')
    subtitle = get_text(el)
    el = select_one(l, 'a.post-block__title__link')
    title = get_text(el)
    results.add(PlayItem(title, img, url, subtitle))
  return results
コード例 #32
0
ファイル: __init__.py プロジェクト: erick-guerra/Royalbox
def feed(idx):
    url = _FEEDLIST[idx]['url']
    count = 0
    results = PlayItemList()
    shows = get_json(url)
    for ep_info in shows["entries"]:
        video_key = ep_info["id"]
        title = ep_info["title"]
        description = ep_info["description"]
        thumbnail = ep_info["plmedia$defaultThumbnailUrl"]
        video_url = VIDEO_URL % video_key.split("/")[-1]
        item = PlayItem(title, thumbnail, video_url, description)
        results.add(item)

    return results
コード例 #33
0
def feed(idx):
  doc = get_doc(_FEEDLIST[idx]['url'])
  rtree = select_all(doc, 'div.thumbs li')
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'a')
    url = get_attr(el, 'href')
    el = select_one(l, 'img')
    img = get_attr(el, 'src')
    el = select_one(l, 'h4.talk-link__speaker')
    subtitle = get_text(el)
    el = select_one(l, 'a span')
    title = get_text(el)
    results.add(PlayItem(title, img, url, subtitle))
  return results
コード例 #34
0
ファイル: __init__.py プロジェクト: erick-guerra/Royalbox
def search(q):
    url = _SEARCH_URL + q + "&range=1-50"
    count = 0
    results = PlayItemList()
    shows = get_json(url)
    for ep_info in shows["entries"]:
        video_key = ep_info["id"]
        title = ep_info["title"]
        description = ep_info["description"]
        thumbnail = ep_info["plmedia$defaultThumbnailUrl"]
        video_url = VIDEO_URL % video_key.split("/")[-1]
        item = PlayItem(title, thumbnail, video_url, description)
        results.add(item)

    return results
コード例 #35
0
def _extract(rtree):
    results = PlayItemList()
    for i in rtree:
        img = i['posters']['primary']
        title = i['title']
        subtitle = "DVD Release Date: " + i['dvdReleaseDate']
        tomatoScore = "Unknown"
        if 'tomatoScore' in i:
            tomatoScore = str(i['tomatoScore']) + "%"
        popcornScore = "Unknown"
        if 'popcornScore' in i:
            popcornScore = str(i['popcornScore']) + "%"
        synopsis = "Tomato Score: " + tomatoScore
        synopsis = synopsis + ", Popcorn Score: " + popcornScore
        results.add(SearchItem(title, img, subtitle, synopsis))
    return results
コード例 #36
0
ファイル: __init__.py プロジェクト: blissland/devflixx
def _extract(data):
  results = PlayItemList()
  if not 'data' in data or data['data']['totalItems'] == 0:
    return results
  rtree = data['data']['items']
  for r in rtree:
    title = r['title']
    img = r['thumbnail']['sqDefault']
    url = r['player']['default']
    m, s = divmod(r['duration'], 60)
    h, m = divmod(m, 60)
    subtitle = 'Duration: ' + "%d:%02d:%02d" % (h, m, s)
    if 'viewCount' in r:
      subtitle = subtitle + ', Views: ' + "{:,}".format(r['viewCount'])
    results.add(PlayItem(title, img, url, subtitle))
  return results
コード例 #37
0
ファイル: __init__.py プロジェクト: erick-guerra/Royalbox
def search(q):
  url = _SEARCH_URL + q
  count = 0
  results = PlayItemList()
  shows = get_json(url)
  for ep_info in shows:
    video_key = ep_info["episodeHouseNumber"]
    series_title = ep_info["seriesTitle"]
    title = ep_info.get("title", None)
    episode_title = format_episode_title(series_title, title)
    thumbnail = ep_info["thumbnail"]
    video_url = API_URL + "/programs/" + video_key
    item = PlayItem(series_title, thumbnail, video_url, title, episode_title)
    results.add(item)

  return results
コード例 #38
0
ファイル: __init__.py プロジェクト: Kornflexx/blissflixx
def _extract(rtree):
  results = PlayItemList()
  for i in rtree:
    img = i['posters']['primary']
    title = i['title']
    subtitle = "DVD Release Date: " + i['dvdReleaseDate']
    tomatoScore = "Unknown"
    if 'tomatoScore' in i:
      tomatoScore = str(i['tomatoScore']) + "%"
    popcornScore = "Unknown"
    if 'popcornScore' in i:
      popcornScore = str(i['popcornScore']) + "%"
    synopsis = "Tomato Score: " + tomatoScore
    synopsis = synopsis + ", Popcorn Score: " + popcornScore
    results.add(SearchItem(title, img, subtitle, synopsis))
  return results
コード例 #39
0
ファイル: __init__.py プロジェクト: PaulBunker/blissflixx
def feed(idx):
  url = _FEEDLIST[idx]['url']
  doc = get_doc(url)
  rtree = select_all(doc, 'li.programme')
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, '.programme-title a')
    url = _PREFIX + get_attr(el, 'href')
    title = get_text(el)
    el = select_one(l, 'img')
    img = get_attr(el, 'src')
    subtitle = get_text(select_one(l, '.episode-info span.episode-free'))
    item = PlayItem(title, img, url, subtitle)
    if (subtitle is not None) and (not subtitle.startswith('1 ')):
      item.add_action(MoreEpisodesAction(url, title))
    results.add(item)
  return results
コード例 #40
0
def feed(idx):
    url = _FEEDLIST[idx]['url']
    doc = get_doc(url)
    rtree = select_all(doc, 'li.programme')
    results = PlayItemList()
    for l in rtree:
        el = select_one(l, '.programme-title a')
        url = _PREFIX + get_attr(el, 'href')
        title = get_text(el)
        el = select_one(l, 'img')
        img = get_attr(el, 'src')
        subtitle = get_text(select_one(l, '.episode-info span.episode-free'))
        item = PlayItem(title, img, url, subtitle)
        if (subtitle is not None) and (not subtitle.startswith('1 ')):
            item.add_action(MoreEpisodesAction(url, title))
        results.add(item)
    return results
コード例 #41
0
ファイル: __init__.py プロジェクト: henrytrager/blissflixx
def _extract(data):
  results = PlayItemList()
  rtree = data['items']
  for r in rtree:
    title= r['snippet']['title']
    subtitle= r['snippet']['publishedAt'][:10]
    synopsis= r['snippet']['description']
    if len(synopsis) > 200:
      synopsis = synopsis[:200] + "..."
    img = r['snippet']['thumbnails']['default']['url']
    if isinstance(r['id'], basestring):
      vid = r['id']
    else:
      vid = r['id']['videoId']
    url = 'https://www.youtube.com/watch?v=' + vid
    results.add(PlayItem(title, img, url, subtitle, synopsis))
  return results
コード例 #42
0
ファイル: __init__.py プロジェクト: snowmeister/blissflixx
def showmore(link):
  doc = get_doc(link)
  rtree = select_all(doc, "a.complex-link")
  results = PlayItemList()
  for l in rtree:
    url = get_attr(l, 'href')
    el = select_one(l, 'img.fluid-media__media')
    img = get_attr(el, 'src')
    el = select_one(l, 'h3')
    title = get_text(el)
    el = select_one(l, 'time')
    subtitle = get_text(el)
    el = select_one(l, 'p.tout__summary')
    synopsis = get_text(el)
    item = PlayItem(title, img, url, subtitle, synopsis)
    results.add(item)
  return results
コード例 #43
0
ファイル: __init__.py プロジェクト: SalvatoreT/blissflixx
def _extract(data):
  results = PlayItemList()
  if not 'data' in data or data['data']['totalItems'] == 0:
    return results
  rtree = data['data']['items']
  for r in rtree:
    title = r['title']
    # Ignore device support video in searches
    if title == 'https://youtube.com/devicesupport':
      continue
    img = r['thumbnail']['sqDefault']
    url = r['player']['default']
    m, s = divmod(r['duration'], 60)
    h, m = divmod(m, 60)
    subtitle = 'Duration: ' + "%d:%02d:%02d" % (h, m, s)
    if 'viewCount' in r:
      subtitle = subtitle + ', Views: ' + "{:,}".format(r['viewCount'])
    results.add(PlayItem(title, img, url, subtitle))
  return results
コード例 #44
0
ファイル: __init__.py プロジェクト: PaulBunker/blissflixx
def showmore(link):
  doc = get_doc(link)
  rtree = select_all(doc, 'div.views-row')
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'a')
    url = _PREFIX + get_attr(el, 'href')
    el = select_one(el, 'img')
    img = get_attr(el, 'src')
    el = select_one(l, 'span.date-display-single')
    subtitle = get_text(el)
    el = select_one(l, 'div.field-season-number')
    title1 = get_text_content(el)
    el = select_one(l, 'div.field-episode-number')
    title = title1 + " " + get_text_content(el)
    el = select_one(l, 'div.field-name-field-short-synopsis')
    synopsis = get_text_content(el)
    item = PlayItem(title, img, url, subtitle, synopsis)
    results.add(item)
  return results
コード例 #45
0
ファイル: __init__.py プロジェクト: PaulBunker/blissflixx
def _extract(data):
  videos = data['videos']
  results = PlayItemList()
  for v in videos:
    title = v['title']
    img = v['thumbnailUrl']
    url = "http://www.vevo.com/watch/"
    if 'artists' in v:
      artist = v['artists'][0]
    else: 
      artist = v['primaryArtists'][0]
    subtitle = artist['name']
    url = url + artist['urlSafeName'] + '/'
    if 'urlSafeTitle' in v:
      url = url + v['urlSafeTitle'] + '/'
    else:
      url = url + v['title'] + '/'
    url = url + v['isrc']
    results.add(PlayItem(title, img, url, subtitle))
  return results
コード例 #46
0
ファイル: __init__.py プロジェクト: PaulBunker/blissflixx
def _extract(doc):
  rtree = select_all(doc, 'li.browse-content-item-videos')
  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'a')
    href = get_attr(el, 'href')
    if href is None:
      continue
    url = _PREFIX + href
    el = select_one(l, 'img')
    img = get_attr(el, 'src')
    el = select_one(l, 'div.browse-content-top-line')
    subtitle = get_text(el)
    el = select_one(l, 'div.browse-content-second-line')
    title = get_text(el)
    results.add(PlayItem(title, img, url, subtitle))
  return results

  results = PlayItemList()
  for l in rtree:
    el = select_one(l, 'a')
    url = get_attr(el, 'href')
    if not url.startswith('/talks/'):
      continue
    url = _PREFIX + url
    title = get_text(el)
    el = select_one(l, 'img')
    img = get_attr(el, 'src')
    el = select_one(l, 'div.search__result__description')
    synopsis = get_text(el)
    results.add(PlayItem(title, img, url, synopsis=synopsis))
  return results
コード例 #47
0
ファイル: __init__.py プロジェクト: PaulBunker/blissflixx
def _extract(data):
  results = PlayItemList()
  if not('tracks' in data or 'collection' in data):
    return results
  if 'tracks' in data:
    rtree = data['tracks']
  else:
    rtree = data['collection']
  for r in rtree:
    if not 'title' in r:
      continue
    if not r['streamable']:
      continue
    title = r['title']
    if r['artwork_url']: 
      img = r['artwork_url']
    else:
      img = r['user']['avatar_url']
    url = r['permalink_url']
    subtitle = 'Plays: ' + number_commas(r['playback_count'])
    subtitle = subtitle + ', Likes: ' + number_commas(r['likes_count'])
    results.add(PlayItem(title, img, url, subtitle))
  return results