Ejemplo n.º 1
0
def explore(tag, country, page):
    if bangumi_list == None:
        url = 'http://bangumi.bilibili.com/jsonp/timeline_v2?appkey=' + appkey
        moonplayer.download_page(url, explore_cb, tag)
    else:
        result = bangumi_list[tags.index(tag)]
        moonplayer.res_show(result)
Ejemplo n.º 2
0
def parse(url, options):
    origin_url = url
    url = 'http://www.flvcd.com/parse.php?go=1&kw=' + origin_url
    if options & moonplayer.OPT_QL_SUPER:
        url += '&format=super'
    elif options & moonplayer.OPT_QL_HIGH:
        url += '&format=high'
    moonplayer.download_page(url, parse_cb, (options, origin_url))
Ejemplo n.º 3
0
def explore(tag, country, page):
    tag_id = tags_table[tag]
    country_id = countries_table[country]
    url = "http://so.tv.sohu.com/list_p1101_p2%s_p3%s_p40_p5_p6_p77_p80_p9_2d1_p10%i_p11_p12_p13.html" % (
        tag_id,
        country_id,
        page,
    )
    moonplayer.download_page(url, explore_cb, None)
Ejemplo n.º 4
0
def load_youku_item_url_cb(page, data):
    match = yk_item_url_re.search(page)
    if match:
        url = match.group(1)
        if url.startswith('//'):
            url = 'http:' + url
        moonplayer.download_page(url, load_youku_item_cb, None)
    else:
        moonplayer.warn('Parse failed!')
Ejemplo n.º 5
0
def explore(tag, country, page):
    tag_id = tags_table[tag]
    country_id = countries_table[country]
    if page == 1:
        url = 'http://api.tv.sohu.com/v6/mobile/classificationScreening/list.json?sub_channel_id=1010000&cid=2&cursor=0&page_size=10&ugc=1&plat=12&sver=3.7.0&partner=419&api_key=%s&o=1&cat=%s&area=%s&year=' % \
           (sohu_apikey, tag_id, country_id)
    else:
        url = '%soffset=%i&page_size=20&ugc=1&plat=12&sver=3.7.0&partner=419&api_key=%s' % (
            sohu_more_list, sohu_offset + (page - 2) * 20, sohu_apikey)
    moonplayer.download_page(url, explore_cb, None)
Ejemplo n.º 6
0
def load_item(url):
    if url.startswith('bilibili://bangumi/season/'):
        season = url.replace('bilibili://bangumi/season/', '')
    elif url.startswith('/bangumi/i/'):
        season = url.replace('/bangumi/i/', '')
    if season.endswith('/'):
        season = season[:-1]
    long_epoch = int(time.time() * 1000)
    url = 'http://bangumi.bilibili.com/jsonp/seasoninfo/%s.ver?callback=seasonListCallback&jsonp=jsonp&_=%i' % (season, long_epoch)
    moonplayer.download_page(url, load_item_cb, None)
Ejemplo n.º 7
0
def parse_cb(page, data):
    (options, url) = data
    result = parse_flvcd_page(page, None)
    if 'play#' in url:
        post_data = 'episode_id=' + url.split('#')[-1]
        api_url = 'http://bangumi.bilibili.com/web_api/get_source'
        moonplayer.post_content(api_url, post_data, parse_danmaku_cb,
                                (options, result, url))
    else:
        moonplayer.download_page(url, parse_danmaku_cb, (options, result, url))
Ejemplo n.º 8
0
def load_item(url):
    if url.startswith('bilibili://bangumi/season/'):
        season = url.replace('bilibili://bangumi/season/', '')
    elif url.startswith('/bangumi/i/'):
        season = url.replace('/bangumi/i/', '')
    elif '/anime/' in url:
        season = url.split('/anime/')[1]
    else:
        moonplayer.warn('Bilibili: Cannot open url:' + url)
        return
    if season.endswith('/'):
        season = season[:-1]
    url = 'https://www.bilibili.com/bangumi/play/ss' + season
    moonplayer.download_page(url, load_item_cb, None)
Ejemplo n.º 9
0
 def parse_keys(self, content, options):
     root = ET.fromstring(content)
     i = len(self.result) / 2
     self.result.append('%s_%i.f4v' % (self.name, i))
     self.result.append(root.text)
     i += 1
     if i < len(self.keys):
         url = 'http://v2.tudou.com/f?id=' + self.keys[i]
         moonplayer.download_page(url, self.parse_keys, options)
     elif options & moonplayer.OPT_DOWNLOAD:
         if len(self.result) == 2:
             moonplayer.download(self.result)
         else:
             moonplayer.download(self.result, self.name + '.f4v')
     else:
         moonplayer.play(self.result)
Ejemplo n.º 10
0
    def parse_cb(self, page, options):
        #page = content.decode('GBK').encode('UTF-8')
        page = convert_to_utf8(page)
        name_match = name_re.search(page)
        if not name_match:
            moonplayer.warn('Cannot get video name.')
            return
        self.name = name_match.group(1)

        if options & moonplayer.OPT_QL_1080P:
            i = 6
        if options & moonplayer.OPT_QL_SUPER:
            i = 5
        elif options & moonplayer.OPT_QL_HIGH:
            i = 3
        else:
            i = 2
        vlist = [None] * 7
        iid_match = iid_re.search(page)
        vcode_match = vcode_re.search(page)

        # Link to youku
        if vcode_match and not iid_match:
            url = 'http://v.youku.com/v_show/id_%s.html' % vcode_match.group(1)
            flvcd_parser.parse(url, options)
            return

        while iid_match:
            (pt, k) = iid_match.group(1, 2)
            pt = int(pt)
            if pt == 99:  # Real quality
                pt = 6
            if pt <= 6:
                if vlist[pt] == None:
                    vlist[pt] = []
                vlist[pt].append(k)
            iid_match = iid_re.search(page, iid_match.end(0))
        while i >= 0:
            if vlist[i]:
                self.keys = vlist[i]
                self.result = []
                url = 'http://v2.tudou.com/f?id=' + self.keys[0]
                moonplayer.download_page(url, self.parse_keys, options)
                return
            i -= 1
        moonplayer.warn('Fail!')
Ejemplo n.º 11
0
def search(key, page):
    global pageTokens
    qs = {
        'q': key,
        'maxResults': 25,
        'safeSearch': 'none',
        'part': 'id,snippet',
        'type': 'video',
        'key': appkey
    }
    if page == 1:
        pageTokens = ['', '']
    elif page < len(pageTokens):
        qs['pageToken'] = pageTokens[page]
    else:
        moonplayer.warn("Cannot skip page due to the limitation of Youtube's API.")
        return
    url = 'https://www.googleapis.com/youtube/v3/search?' + urlencode(qs)
    moonplayer.download_page(url, search_cb, page)
Ejemplo n.º 12
0
def load_youku_item_cb(page, data):
    result = {}
    match = yk_img_name_re.search(page)
    if match:
        image, name = match.group(1, 2)
        result['image'] = image
        result['name'] = name
    match = yk_summary_re.search(page)
    if match:
        result['summary'] = match.group(1)
    match = yk_rating_re.search(page)
    if match:
        result['rating'] = float(match.group(1))
    match = yk_showid_re.search(page)
    if match:
        iid = match.group(1)
        result['iid'] = iid
        list_url = 'http://list.youku.com/show/module?tab=showInfo&callback=excited&id=' + iid
        moonplayer.download_page(list_url, load_youku_item_cb2, result)
    else:
        moonplayer.warn('[Youku-Detail] Cannot get the show_id!')
Ejemplo n.º 13
0
def load_item(aid):
    info = sohu_cached_info[aid]
    result = {
        'name':
        info['album_name'],
        'summary':
        info['album_desc']
        if 'album_desc' in info else info['desc'] if 'desc' in info else '',
        'rating':
        info['score'] if 'score' in info else '',
        'image':
        info['ver_high_pic'],
        'nations':
        info['area'].split(',') if 'area' in info else '',
        'directors':
        info['director'].split(',') if 'director' in info else '',
        'players':
        info['main_actor'].split(',') if 'main_actor' in info else ''
    }
    url = 'http://s1.api.tv.itc.cn/v4/album/videos/%s.json?page=1&page_size=500&site=1&plat=12&sver=3.7.0&partner=419&api_key=%s' % (
        aid, sohu_apikey)
    moonplayer.download_page(url, load_item_cb, result)
Ejemplo n.º 14
0
def parse_cb(page, data):
    options = data[0]
    url = data[1]
    match = cantonese_re.search(page)
    if match and not '_lang=1' in moonplayer.final_url:
        if moonplayer.question('是否解析为粤语版?'):
            url = match.group(1)
            if not url.startswith('http://'):
                url = 'http://www.flvcd.com/' + url
            url += '&go=1'
            moonplayer.download_page(url, parse_cb, data)
            return
    result = parse_flvcd_page(page, None)
    if len(result) == 0:
        moonplayer.use_fallback_parser(url, options & moonplayer.OPT_DOWNLOAD)
    elif options & moonplayer.OPT_DOWNLOAD:
        if len(result) == 2:
            moonplayer.download(result)
        else:
            moonplayer.download(result, result[0])
    else:
        moonplayer.play(result)
Ejemplo n.º 15
0
def load_item(url):
    if url.startswith('http://v.youku.com/v_show/'):
        moonplayer.download_page(url, load_youku_item_url_cb, None)
    elif url.startswith('http://'):
        moonplayer.download_page(url, load_youku_item_cb, None)
    else:
        url = 'http://www.soku.com' + url
        moonplayer.download_page(url, load_item_cb, url)
Ejemplo n.º 16
0
def explore(tag, country, page):
    url = 'http://list.youku.com/category/show/c_97_g_%s_a_%s_s_1_d_2_p_%i.html' % (
        tag, country, page)
    moonplayer.download_page(url, explore_cb, None)
Ejemplo n.º 17
0
def parse_childlist(url):
    moonplayer.download_page(url, load_youku_item_cb2, {})
Ejemplo n.º 18
0
def explore(tag, country, page):
    tag_id = tags_table[tag]
    country_id = countries_table[country]
    url = 'http://www.soku.com/channel/movielist_0_%i_%i_1_%i.html' % \
           (tag_id, country_id, page)
    moonplayer.download_page(url, explore_cb, None)
Ejemplo n.º 19
0
def search(key, page):
    url = 'http://www.soku.com/v?keyword=' + key
    moonplayer.download_page(url, search_cb, None)
Ejemplo n.º 20
0
def parse_cb(page, data):
    options, url = data
    result = parse_flvcd_page(page, None)
    moonplayer.download_page(url, parse_danmaku_cb, (options, result, url))
Ejemplo n.º 21
0
def search(key, page):
    url = 'http://app.bilibili.com/x/v2/search/type?pn=1&ps=20&type=1&build=10110100&keyword=' + key
    moonplayer.download_page(url, search_cb, None)
Ejemplo n.º 22
0
def load_item(url):
    moonplayer.download_page(url, load_item_cb, None)
Ejemplo n.º 23
0
 def feed(self, url, options):
     moonplayer.download_page(url, self.parse_cb, options)
Ejemplo n.º 24
0
def search(keyword, page):
    keyword = keyword.replace(' ', '+')
    url = 'http://www.soku.com/search_video_ajax/q_%s_orderby_1_limitdate_0?site=14&page=%i' % (
        keyword, page)
    moonplayer.download_page(url, search_cb, None)
Ejemplo n.º 25
0
def search(key, page):
    key = key.replace(' ', '+')
    url = 'http://m.so.tv.sohu.com/search/keyword?key=%s&page=%i&page_size=30&pay=1&pgc=1&plat=12&sver=3.7.0&partner=419&api_key=%s' % (
        key, page, sohu_apikey)
    moonplayer.download_page(url, search_cb, None)
Ejemplo n.º 26
0
def explore(tag, region, page):
    url = 'https://list.youku.com/category/page?c=96&a=%s&g=%s&type=show&p=%i' % (region, tag, page)
    moonplayer.download_page(url, explore_cb, None)
Ejemplo n.º 27
0
def load_item(url):
    url = 'http://www.soku.com' + url
    moonplayer.download_page(url, load_item_cb, url)
Ejemplo n.º 28
0
def search(keyword, page):
    url = 'http://www.soku.com/v?keyword=%s&type=0&ext=2&noqc=&curpage=%i' % (
        keyword, page)
    moonplayer.download_page(url, search_cb, None)
Ejemplo n.º 29
0
def search(key, page):
    url = "http://so.tv.sohu.com/mts?box=1&wd=" + key
    moonplayer.download_page(url, search_cb, None)