Ejemplo n.º 1
0
def playVideo(link):
    page = helper.load_page(baseLink + urllib.unquote(link))

    extractYouTubeId = re.compile(
        "<div data-youtube=\"(.*?)\" id=\"yt_video\">")

    youTubeInfo = extractYouTubeId.search(page)

    if youTubeInfo is not None:
        youTubeId = youTubeInfo.group(1)
        streamUrl = "plugin://plugin.video.youtube/?action=play_video&videoid=" + youTubeId
        helper.setResolvedUrl(streamUrl)
    else:
        #bitsontherun
        extractVideoId = re.compile(
            "<div id=\"container\" style=\"display: none;\"><script type=\"text/javascript\" src=\"(http://content.bitsontherun.com/players/.*?-.*?.js)\"></script></div>"
        )
        videoInfo = extractVideoId.search(page)
        if videoInfo is not None:
            jsURL = videoInfo.group(1)
            bitsontherunJS = helper.load_page(jsURL)
            extractVideoUrl = re.compile(
                "botrObject.swf\(\n\t\".*?\",\n\t\".*?\",\n\t\".*?\",\n\t\"(.*?)\","
            )
            videoUrlInfo = extractVideoUrl.search(bitsontherunJS)
            videoUrl = videoUrlInfo.group(1)
            #videoUrl = videoUrl.replace("conversions/","http://v.jwpcdn.com/")
            helper.setResolvedUrl(videoUrl)
Ejemplo n.º 2
0
def playVideo(link):
    playlistLink = "http://www.nickjr.com/dynamo/video/data/mrssGen.jhtml?type=network&loc=sidebar&hub=njParentsHub&mode=playlist&mgid=mgid:cms:item:nickjr.com:"
    playlistLink = playlistLink+link
    page = helper.load_page(playlistLink,True)
    media = helper.extractMrss(page)
    
    player = media[0]['player']
    link = media[0]['url']

    response = urllib.urlopen(urllib.unquote(player))
    mediaPlayer = response.geturl()
    
    page = helper.load_page(urllib.unquote(link))
    extractRtmpUrls = re.compile("<rendition.*?height=[\"\']+([0-9]*)[\"\']+.*?>[\n\ \t]*<src>(.*?)</src>[\n\ \t]*</rendition>")
    
    streamUrl = ""
    streamHeight = 0
    
    for rtmpItem in extractRtmpUrls.finditer(page):
        if rtmpItem.group(1)>streamHeight:
            streamUrl = rtmpItem.group(2)
    
    streamUrl = streamUrl + " swfUrl=" + mediaPlayer + " swfVfy=1"
    
    helper.setResolvedUrl(streamUrl)
Ejemplo n.º 3
0
def playVideo(link):
    playlistLink = "http://www.nickjr.com/dynamo/video/data/mrssGen.jhtml?type=network&loc=sidebar&hub=njParentsHub&mode=playlist&mgid=mgid:cms:item:nickjr.com:"
    playlistLink = playlistLink + link
    page = helper.load_page(playlistLink, True)
    media = helper.extractMrss(page)

    player = media[0]['player']
    link = media[0]['url']

    response = urllib.urlopen(urllib.unquote(player))
    mediaPlayer = response.geturl()

    page = helper.load_page(urllib.unquote(link))
    extractRtmpUrls = re.compile(
        "<rendition.*?height=[\"\']+([0-9]*)[\"\']+.*?>[\n\ \t]*<src>(.*?)</src>[\n\ \t]*</rendition>"
    )

    streamUrl = ""
    streamHeight = 0

    for rtmpItem in extractRtmpUrls.finditer(page):
        if rtmpItem.group(1) > streamHeight:
            streamUrl = rtmpItem.group(2)

    streamUrl = streamUrl + " swfUrl=" + mediaPlayer + " swfVfy=1"

    helper.setResolvedUrl(streamUrl)
Ejemplo n.º 4
0
def playVideo(link):
    page = helper.load_page(link, True)

    #print page
    #http://cdnapi.kaltura.com//api_v3/index.php?service=multirequest&action=null&kalsig=98219f70556227be25075e61f0505fbf&1%3Aservice=session&3%3Aks=%7B1%3Aresult%3Aks%7D&2%3Aaction=get&ignoreNull=1&3%3Aservice=uiconf&1%3Aaction=startWidgetSession&2%3Aks=%7B1%3Aresult%3Aks%7D&3%3Aid=6607922&3%3Aaction=get&clientTag=kdp%3Av3%2E5%2E53%2Eb&1%3Aexpiry=86400&1%3AwidgetId=%5F628012&2%3Aservice=widget&2%3Aid=%5F628012
    #http://cdnapi.kaltura.com//api_v3/index.php?service=multirequest&action=null&kalsig=b02f05c63e3bede1bb42077f37fb6b03&4%3Afilter%3AorderBy=%2BcreatedAt&4%3Afilter%3AobjectType=KalturaMetadataFilter&ks=YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow%3D%3D&3%3AcontextDataParams%3AstreamerType=auto&5%3Afilter%3AobjectType=KalturaCuePointFilter&1%3Aservice=baseentry&clientTag=kdp%3Av3%2E5%2E53%2Eb&4%3Afilter%3AobjectIdEqual=0%5Fm6d8wsry&4%3Afilter%3AmetadataObjectTypeEqual=1&4%3Aaction=list&ignoreNull=1&2%3Aservice=flavorasset&4%3Apager%3ApageSize=1&2%3Aaction=getWebPlayableByEntryId&2%3AentryId=0%5Fm6d8wsry&3%3AentryId=0%5Fm6d8wsry&5%3Aaction=list&1%3AentryId=0%5Fm6d8wsry&5%3Aservice=cuepoint%5Fcuepoint&1%3Aversion=%2D1&4%3Aservice=metadata%5Fmetadata&5%3Afilter%3AentryIdEqual=0%5Fm6d8wsry&1%3Aaction=get&3%3Aaction=getContextData&3%3AcontextDataParams%3AobjectType=KalturaEntryContextDataParams&3%3Aservice=baseentry&4%3Apager%3AobjectType=KalturaFilterPager
    #http://cdnapi.kaltura.com/index.php/partnerservices2/executeplaylist?uid=&format=8&partner_id=628012&subp_id=628012&playlist_id=0_l5kr39y0
    #http://cdnapi.kaltura.com/p/628012/sp/628012/playManifest/entryId/0_m6d8wsry/format/rtmp/protocol/rtmp/cdnHost/vp.disney.go.com/player/latest//storageId/1252/ks/YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow==/uiConfId/6607922/a/a.f4m?
    #http://cdnapi.kaltura.com//api_v3/index.php?service=multirequest&action=null&kalsig=b02f05c63e3bede1bb42077f37fb6b03&4%3Afilter%3AobjectType=KalturaMetadataFilter&ks=YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow%3D%3D&4%3Apager%3ApageSize=1&4%3Afilter%3AmetadataObjectTypeEqual=1&4%3Afilter%3AobjectIdEqual=0%5Fm6d8wsry&4%3Afilter%3AorderBy=%2BcreatedAt&5%3Afilter%3AobjectType=KalturaCuePointFilter&1%3Aaction=get&clientTag=kdp%3Av3%2E5%2E53%2Eb&ignoreNull=1&5%3Aaction=list&3%3AcontextDataParams%3AstreamerType=auto&4%3Aaction=list&2%3Aaction=getWebPlayableByEntryId&1%3Aservice=baseentry&4%3Aservice=metadata%5Fmetadata&5%3Afilter%3AentryIdEqual=0%5Fm6d8wsry&3%3Aaction=getContextData&3%3AentryId=0%5Fm6d8wsry&3%3Aservice=baseentry&3%3AcontextDataParams%3AobjectType=KalturaEntryContextDataParams&1%3AentryId=0%5Fm6d8wsry&5%3Aservice=cuepoint%5Fcuepoint&4%3Apager%3AobjectType=KalturaFilterPager&1%3Aversion=%2D1&2%3Aservice=flavorasset&2%3AentryId=0%5Fm6d8wsry
    #http://cdnapi.kaltura.com/p/628012/sp/628012/playManifest/entryId/0_m6d8wsry/format/rtmp/protocol/rtmp/cdnHost/vp.disney.go.com/player/latest//storageId/1252/ks/YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow==/uiConfId/6607922/a/a.f4m?
    #var tilePackVars = { configXMLPath: "http://disney.go.com/disneyjunior/data/videoConfig?cid=1944089" };
    extractId = re.compile(
        "\{ configXMLPath: \"http://disney.go.com/disneyjunior/data/videoConfig\?cid=([0-9]*)\" \}"
    ).search(page)
    if extractId is not None:
        playlistLink = "http://disney.go.com/disneyjunior/data/videoPlaylist?cid=" + extractId.group(
            1)
        xmlPage = helper.load_page(playlistLink)
        xmlPage = xmlPage.replace(" & ", " &amp; ")
        xmlDom = minidom.parseString(xmlPage)

        playChapter = xmlDom.getElementsByTagName("chapter")[0]
        for chapter in xmlDom.getElementsByTagName("chapter"):
            if chapter.getAttribute("playFirst") == "true":
                playChapter = chapter

        playerItem = xbmcgui.ListItem(playChapter.getAttribute("title"))
        playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
        playlist.clear()

        for video in playChapter.getElementsByTagName("video"):
            streamUrl = video.getAttribute("streamurl")

            app = " app=" + streamUrl[streamUrl.find("/", 8) + 1:]
            flashVer = " flashver=WIN%2010,3,181,26"
            #flashVer = ""
            swfUrl = " swfUrl=http://a.dolimg.com/en-US/disneyjunior/swf/videoplayerShell_MPF.swf swfVfy=1"
            pageUrl = " pageUrl=" + link
            playpath = " playpath=" + video.getAttribute("progurl")

            streamUrl = streamUrl[:streamUrl.find(
                "/", 8)] + swfUrl + app + pageUrl + flashVer + playpath
            print streamUrl

            helper.setResolvedUrl(streamUrl)
            #return False
            listItem = xbmcgui.ListItem(streamUrl, path=streamUrl)
            #listItem.setProperty("PlayPath", streamUrl);
            listItem.setProperty('IsPlayable', 'true')
            playlist.add(url=streamUrl, listitem=listItem)

        player = xbmc.Player()
        player.play(playlist, playerItem)
        return False
Ejemplo n.º 5
0
def playVideo(link):
    page = helper.load_page(link,True)
    
    #print page
    #http://cdnapi.kaltura.com//api_v3/index.php?service=multirequest&action=null&kalsig=98219f70556227be25075e61f0505fbf&1%3Aservice=session&3%3Aks=%7B1%3Aresult%3Aks%7D&2%3Aaction=get&ignoreNull=1&3%3Aservice=uiconf&1%3Aaction=startWidgetSession&2%3Aks=%7B1%3Aresult%3Aks%7D&3%3Aid=6607922&3%3Aaction=get&clientTag=kdp%3Av3%2E5%2E53%2Eb&1%3Aexpiry=86400&1%3AwidgetId=%5F628012&2%3Aservice=widget&2%3Aid=%5F628012
    #http://cdnapi.kaltura.com//api_v3/index.php?service=multirequest&action=null&kalsig=b02f05c63e3bede1bb42077f37fb6b03&4%3Afilter%3AorderBy=%2BcreatedAt&4%3Afilter%3AobjectType=KalturaMetadataFilter&ks=YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow%3D%3D&3%3AcontextDataParams%3AstreamerType=auto&5%3Afilter%3AobjectType=KalturaCuePointFilter&1%3Aservice=baseentry&clientTag=kdp%3Av3%2E5%2E53%2Eb&4%3Afilter%3AobjectIdEqual=0%5Fm6d8wsry&4%3Afilter%3AmetadataObjectTypeEqual=1&4%3Aaction=list&ignoreNull=1&2%3Aservice=flavorasset&4%3Apager%3ApageSize=1&2%3Aaction=getWebPlayableByEntryId&2%3AentryId=0%5Fm6d8wsry&3%3AentryId=0%5Fm6d8wsry&5%3Aaction=list&1%3AentryId=0%5Fm6d8wsry&5%3Aservice=cuepoint%5Fcuepoint&1%3Aversion=%2D1&4%3Aservice=metadata%5Fmetadata&5%3Afilter%3AentryIdEqual=0%5Fm6d8wsry&1%3Aaction=get&3%3Aaction=getContextData&3%3AcontextDataParams%3AobjectType=KalturaEntryContextDataParams&3%3Aservice=baseentry&4%3Apager%3AobjectType=KalturaFilterPager
    #http://cdnapi.kaltura.com/index.php/partnerservices2/executeplaylist?uid=&format=8&partner_id=628012&subp_id=628012&playlist_id=0_l5kr39y0
    #http://cdnapi.kaltura.com/p/628012/sp/628012/playManifest/entryId/0_m6d8wsry/format/rtmp/protocol/rtmp/cdnHost/vp.disney.go.com/player/latest//storageId/1252/ks/YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow==/uiConfId/6607922/a/a.f4m?
    #http://cdnapi.kaltura.com//api_v3/index.php?service=multirequest&action=null&kalsig=b02f05c63e3bede1bb42077f37fb6b03&4%3Afilter%3AobjectType=KalturaMetadataFilter&ks=YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow%3D%3D&4%3Apager%3ApageSize=1&4%3Afilter%3AmetadataObjectTypeEqual=1&4%3Afilter%3AobjectIdEqual=0%5Fm6d8wsry&4%3Afilter%3AorderBy=%2BcreatedAt&5%3Afilter%3AobjectType=KalturaCuePointFilter&1%3Aaction=get&clientTag=kdp%3Av3%2E5%2E53%2Eb&ignoreNull=1&5%3Aaction=list&3%3AcontextDataParams%3AstreamerType=auto&4%3Aaction=list&2%3Aaction=getWebPlayableByEntryId&1%3Aservice=baseentry&4%3Aservice=metadata%5Fmetadata&5%3Afilter%3AentryIdEqual=0%5Fm6d8wsry&3%3Aaction=getContextData&3%3AentryId=0%5Fm6d8wsry&3%3Aservice=baseentry&3%3AcontextDataParams%3AobjectType=KalturaEntryContextDataParams&1%3AentryId=0%5Fm6d8wsry&5%3Aservice=cuepoint%5Fcuepoint&4%3Apager%3AobjectType=KalturaFilterPager&1%3Aversion=%2D1&2%3Aservice=flavorasset&2%3AentryId=0%5Fm6d8wsry
    #http://cdnapi.kaltura.com/p/628012/sp/628012/playManifest/entryId/0_m6d8wsry/format/rtmp/protocol/rtmp/cdnHost/vp.disney.go.com/player/latest//storageId/1252/ks/YzRjYTUyNjI4ZDFjZjE1MDk2ZjZiZTgzMThiOGI1M2JmNDkxMmE3M3w2MjgwMTI7NjI4MDEyOzEzNDE0Njg3NTQ7MDsxMzQxMzgyMzU0LjEzNDk7MDt2aWV3Oio7Ow==/uiConfId/6607922/a/a.f4m?
    #var tilePackVars = { configXMLPath: "http://disney.go.com/disneyjunior/data/videoConfig?cid=1944089" };
    extractId = re.compile("\{ configXMLPath: \"http://disney.go.com/disneyjunior/data/videoConfig\?cid=([0-9]*)\" \}").search(page)
    if extractId is not None:
        playlistLink = "http://disney.go.com/disneyjunior/data/videoPlaylist?cid="+extractId.group(1)
        xmlPage = helper.load_page(playlistLink)
        xmlPage = xmlPage.replace(" & "," &amp; ")
        xmlDom = minidom.parseString(xmlPage)
        
        playChapter = xmlDom.getElementsByTagName("chapter")[0]
        for chapter in xmlDom.getElementsByTagName("chapter"):
            if chapter.getAttribute("playFirst") == "true":
                playChapter = chapter
        
        playerItem = xbmcgui.ListItem(playChapter.getAttribute("title"))
        playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO);
        playlist.clear();
        
        for video in playChapter.getElementsByTagName("video"):
            streamUrl = video.getAttribute("streamurl")
            
            app = " app="+streamUrl[streamUrl.find("/",8)+1:]
            flashVer = " flashver=WIN%2010,3,181,26"
            #flashVer = ""
            swfUrl = " swfUrl=http://a.dolimg.com/en-US/disneyjunior/swf/videoplayerShell_MPF.swf swfVfy=1"
            pageUrl = " pageUrl="+link
            playpath = " playpath="+video.getAttribute("progurl")
            
            streamUrl = streamUrl[:streamUrl.find("/",8)] + swfUrl + app + pageUrl + flashVer + playpath
            print streamUrl
            
            helper.setResolvedUrl(streamUrl)
            #return False
            listItem = xbmcgui.ListItem(streamUrl, path=streamUrl);
            #listItem.setProperty("PlayPath", streamUrl);
            listItem.setProperty('IsPlayable', 'true')
            playlist.add(url=streamUrl, listitem=listItem)
        
        player = xbmc.Player()
        player.play(playlist, playerItem)
        return False
Ejemplo n.º 6
0
def playVideo(link):
    streamUrl = helper.load_page(link, True, getRedirect=True)

    if not streamUrl == link:
        streamUrl = streamUrl.replace("<break>", " playpath=MP4:")
    else:
        streamPage = helper.load_page(link, True)
        extractUrl = re.compile("<url>(.*?)</url>")
        streamUrl = extractUrl.search(streamPage).group(1)
        streamUrl = streamUrl.replace("&lt;", "<")
        streamUrl = streamUrl.replace("&gt;", ">")
        streamUrl = streamUrl.replace("&amp;", "&")
        streamUrl = streamUrl.replace("<break>", " playpath=")
    helper.setResolvedUrl(streamUrl)
Ejemplo n.º 7
0
def playVideo(link):
    streamUrl = helper.load_page(link, True, getRedirect=True)

    if not streamUrl == link:
        streamUrl = streamUrl.replace("<break>", " playpath=MP4:")
    else:
        streamPage = helper.load_page(link, True)
        extractUrl = re.compile("<url>(.*?)</url>")
        streamUrl = extractUrl.search(streamPage).group(1)
        streamUrl = streamUrl.replace("&lt;", "<")
        streamUrl = streamUrl.replace("&gt;", ">")
        streamUrl = streamUrl.replace("&amp;", "&")
        streamUrl = streamUrl.replace("<break>", " playpath=")
    helper.setResolvedUrl(streamUrl)
Ejemplo n.º 8
0
def mainPage():
    page = helper.load_page(baseLink)
    extractShow = re.compile(
        "<a href=\"(.*?)\" target=\"_self\"><img src=\"(.*?)\".*?alt=\"Watch (.*?) on KidMango.com!\" /></a>"
    )

    for show in extractShow.finditer(page):
        link = show.group(1).replace("comtinpo", "com/tinpo")
        print link
        page = urllib.urlopen(link)
        if page.getcode() != 404:
            page = page.read()
            extractContentId = re.compile("contentId : '([0-9]*)',").search(
                page)
            if extractContentId is not None:
                contentId = extractContentId.group(1)
                feedUrl = "http://cms.springboard.gorillanation.com/xml_feeds_advanced/index/891/rss1/" + contentId + "/"
                helper.addDirectoryItem(
                    show.group(3), {
                        "channel": thisChannel,
                        "action": "showVideos",
                        "link": feedUrl
                    }, show.group(2))

    helper.endOfDirectory()
Ejemplo n.º 9
0
def showVideos(feedUrl):
    feed = helper.load_page(urllib.unquote(feedUrl))

    media = helper.extractMrss(feed)

    for video in media:
        parameters = {
            "channel": thisChannel,
            "action": "playVideo",
            "link": video['url']
        }
        helper.addDirectoryItem(video['title'],
                                parameters,
                                video['img'],
                                False,
                                duration=video['duration'],
                                plot=video['plot'])

    #Next page
    extractNextPage = re.compile(
        "<atom:link rel=\"next\" href=\"(.*)\" />").search(feed)
    if extractNextPage is not None:
        helper.addDirectoryItem(
            "Show more", {
                "channel": thisChannel,
                "action": "showVideos",
                "link": extractNextPage.group(1)
            }, "")

    helper.endOfDirectory()
Ejemplo n.º 10
0
def showVideos(link):
    link = urllib.unquote(link)
    page = helper.load_page(link)
    extractShowMoreButton = re.compile('<a href="(.*?)" class="lite-button">')
    extractSections = extractSection.findall(page)
    if len(extractSections) == 1:
        showVideosSection(link, extractSections[0][0])
        return False
    else:
        for section in extractSections:
            sectionLink = link
            sectionTitle = section[0]
            sectionHtml = section[1]
            showMoreButton = extractShowMoreButton.search(sectionHtml)
            sectionLinkSection = sectionTitle
            if showMoreButton is not None:
                sectionLink = baseLink + showMoreButton.group(1)
                sectionLinkSection = "/"
            helper.addDirectoryItem(
                sectionTitle,
                {
                    "channel": thisChannel,
                    "action": "showVideosSection",
                    "link": sectionLink,
                    "section": sectionLinkSection,
                },
                "",
            )

    helper.endOfDirectory()
Ejemplo n.º 11
0
def showVideosSection(link, section):
    link = urllib.unquote(link)
    showSection = urllib.unquote_plus(section)
    
    page = helper.load_page(link)
    
    extractVideo = re.compile("<section class=\".*?\">.*?<img src=\"(.*?)\".*?<a href=\"(.*?)\" class=\"title\">(.*?)</a>.*?<p>(.*?)</p>.*?<span class=\"content-item-short-description\">(.*?)</span>.*?</section>", re.DOTALL)

    sectionHtml = "";
    
    if showSection != "":
        extractSections = extractSection.finditer(page)
        for section in extractSections:
            sectionTitle = section.group(1)
            if sectionTitle == showSection:
                sectionHtml = section.group(2)
    else:
        sectionHtml = page

    for video in extractVideo.finditer(sectionHtml):
        videoTitle = video.group(3) + " (" + video.group(4).strip() + ")"
        videoImg = baseLink + video.group(1)
        videoLink = baseLink + video.group(2)
        videoPlot = video.group(5)
        helper.addDirectoryItem(videoTitle, {"channel":thisChannel, "action":"playVideo", "link":videoLink}, videoImg, False,plot=videoPlot)

    helper.endOfDirectory()
Ejemplo n.º 12
0
def subPageXml(link, action="videoPage"):
    if action == "videoPage":
        nextAction = "subPageXml"
        isFolder = True
    elif action == "playVideo":
        nextAction = "videoPageXml"
        isFolder = False

    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    for sprite in xmlDom.getElementsByTagName("sprite"):
        if sprite.getAttribute("class") == "com.disney.disneyjunior.classes.sprites.TileAsset video":
            menu_name = sprite.getElementsByTagName("text")[0].firstChild.data
            menu_name = helper.removeTags(menu_name)
            menu_link = sprite.getElementsByTagName("a")[0].getAttribute("href")
            menu_img = sprite.getElementsByTagName("img")[0].getAttribute("src")
            parameters = {"channel":thisChannel, "action":action, "link":menu_link}
            helper.addDirectoryItem(menu_name,parameters,menu_img,folder=isFolder)
    
    menuNode = xmlDom.getElementById("next")
    for a in xmlDom.getElementsByTagName("a"):
        if a.getAttribute("id") == "next":
            parameters = {"channel":thisChannel, "action":nextAction, "link":a.getAttribute("href")}
            helper.addDirectoryItem("Next page",parameters)
    
    helper.endOfDirectory()
Ejemplo n.º 13
0
def showVideos(link):
    link = urllib.unquote(link)
    page = helper.load_page(link)
    extractShowMoreButton = re.compile(
        "<a href=\"(.*?)\" class=\"lite-button\">")
    extractSections = extractSection.findall(page)
    if len(extractSections) == 1:
        showVideosSection(link, extractSections[0][0])
        return False
    else:
        for section in extractSections:
            sectionLink = link
            sectionTitle = section[0]
            sectionHtml = section[1]
            showMoreButton = extractShowMoreButton.search(sectionHtml)
            sectionLinkSection = sectionTitle
            if showMoreButton is not None:
                sectionLink = baseLink + showMoreButton.group(1)
                sectionLinkSection = "/"
            helper.addDirectoryItem(
                sectionTitle, {
                    "channel": thisChannel,
                    "action": "showVideosSection",
                    "link": sectionLink,
                    "section": sectionLinkSection
                }, "")

    helper.endOfDirectory()
Ejemplo n.º 14
0
def mainPage():
    page = helper.load_page(baseLink + "/videos")

    heroCats = re.compile(
        "<ul id=\"hero_cats\">(.*?</ul><ul id=\"more_cats\">.*?)</ul>",
        re.DOTALL).search(page).group(1)

    items = re.compile(
        "<a href=\"(/videos/category/(.*?))\" class=\".*?\"><span>(.*?)</span></a>"
    ).finditer(heroCats)

    helper.addDirectoryItem("All", {
        "channel": thisChannel,
        "action": "showCategory",
        "link": "/videos"
    })

    for category in items:
        catName = category.group(3)
        catLink = category.group(1)
        catImg = baseLink + "/assets/icons/cats/" + category.group(2).replace(
            "+", "_") + "_normal.png"
        helper.addDirectoryItem(catName, {
            "channel": thisChannel,
            "action": "showCategory",
            "link": catLink
        }, catImg)

    helper.endOfDirectory()
Ejemplo n.º 15
0
def showSubMenu(level1=-1):
    page = helper.load_page(baseLink)
    mainMenu = extractMenu(page)

    if level1 == -1:
        menu = mainMenu
    else:
        menu = mainMenu[int(level1)]['children']

    counter = 0
    for menuItem in menu:
        menu_name = menuItem['name']

        menu_link = menuItem['link']
        if len(menuItem['children']):
            helper.addDirectoryItem(menuItem['name'], {
                "channel": thisChannel,
                "action": "showSubMenu",
                "link": counter
            })
        else:
            helper.addDirectoryItem(menuItem['name'], {
                "channel": thisChannel,
                "action": "showVideos",
                "link": menu_link
            })
        counter = counter + 1

    helper.endOfDirectory()
Ejemplo n.º 16
0
def extractMenu(parent=None):
    page = helper.load_page(baseLink)
    
    extractChannels = re.compile("<div id=\"video-navigation\">(.*?)</div>",re.DOTALL)
    extractChannel = re.compile("<li.*?href=\"\?c=(.*?)\">(.*?)</a>")
    
    channels = extractChannels.search(page).group(1)
    
    channels = channels.replace("</li>","</li>\n")
    channels = channels.replace("</a>","</a>\n")
    
    menuList = []
    parent = -1;
    hasParent = False
    for line in channels.split("\n"):
        if line.find("<ul class=\"level_1\">") > -1:
            hasParent = True
        
        channel = extractChannel.search(line)
        if channel is not None:
            if not hasParent:
                parent = parent + 1
                menuList.append({"name" : channel.group(2), "link" : channel.group(1), "children" : []})
            else:
                menuList[parent]['children'].append({"name" : channel.group(2), "link" : channel.group(1), "children" : []})
        
        if line.find("</ul>") > -1:
            hasParent = False

    return menuList
Ejemplo n.º 17
0
def playVideo(mediaId):
    link = metaframeLink % (mediaId)

    page = helper.load_page(link)
    data = json.loads(page)
    streamUrl = data['videos']['limelight700']['uri']

    helper.setResolvedUrl(streamUrl)
Ejemplo n.º 18
0
def playVideo(mediaId):
    link = metaframeLink % (mediaId)
    
    page = helper.load_page(link)
    data = json.loads(page)
    streamUrl = data['videos']['limelight700']['uri']
    
    helper.setResolvedUrl(streamUrl)
Ejemplo n.º 19
0
def videoPageXml(link, start, showName):
    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    for release in xmlDom.getElementsByTagName("Release"):
        titles = release.getElementsByTagName("title")
        menu_name = release.getElementsByTagName("title")[len(titles) -
                                                          1].firstChild.data
        clip = ""
        for customData in release.getElementsByTagName("CustomDataElement"):
            if customData.getElementsByTagName(
                    "title")[0].firstChild.data == "Episode_Title":
                if customData.getElementsByTagName(
                        "value")[0].firstChild is not None:
                    menu_name = customData.getElementsByTagName(
                        "value")[0].firstChild.data
            if customData.getElementsByTagName(
                    "title")[0].firstChild.data == "IsClip":
                if customData.getElementsByTagName(
                        "value")[0].firstChild.data == "true":
                    clip = " (Clip)"
        menu_name = menu_name + clip
        menu_link = release.getElementsByTagName("URL")[0].firstChild.data
        menu_img = ""
        if release.getElementsByTagName(
                "thumbnailURL")[0].firstChild is not None:
            menu_img = release.getElementsByTagName(
                "thumbnailURL")[0].firstChild.data
        menu_duration = str(
            int(release.getElementsByTagName("length")[0].firstChild.data) /
            1000 / 60)
        parameters = {
            "channel": thisChannel,
            "action": "playVideo",
            "link": menu_link
        }
        helper.addDirectoryItem(menu_name,
                                parameters,
                                menu_img,
                                folder=False,
                                duration=menu_duration)

    total_count = int(
        xmlDom.getElementsByTagName("totalCount")[0].firstChild.data)
    if int(start) + 20 < total_count:
        menu_link = videoPageLink % (str(int(start) + 20),
                                     str(int(start) + 40), showName, affiliate,
                                     player, playerQuery)
        parameters = {
            "channel": thisChannel,
            "action": "videoPageXml",
            "link": menu_link,
            "start": str(int(start) + 20),
            "name": showName
        }
        helper.addDirectoryItem("Show more", parameters)
    helper.endOfDirectory()
Ejemplo n.º 20
0
def showVideos(id):
    feedLink = releasesFeedLink+id
    page = helper.load_page(feedLink)
    data = json.loads(page)
    for releaseItem in data['items']:
        length = str(int(releaseItem['length'])/1000/60)
        parameters = {"channel":thisChannel, "action" : "playVideo", "link": releaseItem['URL']}
        helper.addDirectoryItem(releaseItem['title'], parameters, releaseItem['thumbnailURL'],False,duration=length)
    
    helper.endOfDirectory()
Ejemplo n.º 21
0
def playVideo(link):
    page = helper.load_page(urllib.unquote(link))
    videoPlayer = re.compile("brightcove_mediaId: ([0-9]*),").search(page).group(1)
    stream = brightcovePlayer.play(const, playerID, videoPlayer, publisherID, playerKey)
    
    rtmpbase = stream[1][0:stream[1].find("&")]
    playpath = stream[1][stream[1].find("&") + 1:]
    finalurl = rtmpbase + ' playpath=' + playpath
    
    helper.setResolvedUrl(finalurl)
Ejemplo n.º 22
0
def playVideo(link):
    page = helper.load_page(urllib.unquote(link))
    videoPlayer = (
        re.compile('<input type="hidden" name="asset-id" value="([0-9]*)" id="asset-id" />').search(page).group(1)
    )
    stream = brightcovePlayer.play(const, playerID, videoPlayer, publisherID, playerKey)

    rtmpbase = stream[1][0 : stream[1].find("&")]
    playpath = stream[1][stream[1].find("&") + 1 :]
    finalurl = rtmpbase + " playpath=" + playpath

    helper.setResolvedUrl(finalurl)
Ejemplo n.º 23
0
def showVideos(link):
    link ="http://media.treehousetv.com/videos.ashx?c="+urllib.unquote(link)
    page = helper.load_page(link)
    data = json.loads(page)
        
    for video in data:
        menu_link = video["Id"]
        menu_name = video["Name"]
        menu_img = video["ThumbnailURL"]
        parameters = {"channel":thisChannel,"action":"playVideo","link":menu_link}
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=False)

    helper.endOfDirectory()
Ejemplo n.º 24
0
def mainPage():
    page = helper.load_page(apiLink%("kids-video-landing"))
    
    data = json.loads(page)
    items = data['config']['promos'][0]['items']

    for category in items:
        catName = helper.removeHtmlSpecialChars(category['title'])
        catLink = apiLink%(category['urlAlias'])
        catImg =  baseLink+category['thumbnail'];
        helper.addDirectoryItem(catName, {"channel":thisChannel,"action":"showCategory","link":catLink}, catImg)

    helper.endOfDirectory()
Ejemplo n.º 25
0
def playVideo(link):
    page = helper.load_page(urllib.unquote(link))
    videoPlayer = re.compile(
        "<input type=\"hidden\" name=\"asset-id\" value=\"([0-9]*)\" id=\"asset-id\" />"
    ).search(page).group(1)
    stream = brightcovePlayer.play(const, playerID, videoPlayer, publisherID,
                                   playerKey)

    rtmpbase = stream[1][0:stream[1].find("&")]
    playpath = stream[1][stream[1].find("&") + 1:]
    finalurl = rtmpbase + ' playpath=' + playpath

    helper.setResolvedUrl(finalurl)
Ejemplo n.º 26
0
def playVideo(link):
    page = helper.load_page(baseLink + urllib.unquote(link))
    
    extractYouTubeId = re.compile("<div data-youtube=\"(.*?)\" id=\"yt_video\">")
    
    youTubeInfo = extractYouTubeId.search(page)
    
    if youTubeInfo is not None:
        youTubeId = youTubeInfo.group(1)
        streamUrl = "plugin://plugin.video.youtube/?action=play_video&videoid=" + youTubeId 
        helper.setResolvedUrl(streamUrl)
    else:
        #bitsontherun
        extractVideoId = re.compile("<div id=\"container\" style=\"display: none;\"><script type=\"text/javascript\" src=\"(http://content.bitsontherun.com/players/.*?-.*?.js)\"></script></div>")
        videoInfo = extractVideoId.search(page)
        if videoInfo is not None:
            jsURL = videoInfo.group(1)            
            bitsontherunJS = helper.load_page(jsURL)
            extractVideoUrl = re.compile("botrObject.swf\(\n\t\".*?\",\n\t\".*?\",\n\t\".*?\",\n\t\"(.*?)\",")
            videoUrlInfo = extractVideoUrl.search(bitsontherunJS)
            videoUrl = videoUrlInfo.group(1);
            #videoUrl = videoUrl.replace("conversions/","http://v.jwpcdn.com/")
            helper.setResolvedUrl(videoUrl)
Ejemplo n.º 27
0
def showSubMenu(feedLink):
    page = helper.load_page(feedLink)
    data = json.loads(page)
    
    for categoryItem in data['items']:
        action = "showCategory"
        if categoryItem['hasChildren'] == False:
            action = "showVideos"
        print categoryItem['title']
        print categoryItem['ID']
        parameters = {"channel":thisChannel, "action" : action, "link": categoryItem['ID']}
        helper.addDirectoryItem(categoryItem['title'], parameters, categoryItem['thumbnailURL'])
        
    helper.endOfDirectory()
Ejemplo n.º 28
0
def showVideos(feedUrl):
	feed = helper.load_page(urllib.unquote(feedUrl))
	
	media = helper.extractMrss(feed)

   	for video in media:
   		parameters = {"channel":thisChannel,"action":"playVideo","link":video['url']}
   		helper.addDirectoryItem(video['title'], parameters, video['img'], False, duration=video['duration'], plot=video['plot'])
	
	#Next page
	extractNextPage = re.compile("<atom:link rel=\"next\" href=\"(.*)\" />").search(feed)
	if extractNextPage is not None:
		helper.addDirectoryItem("Show more", {"channel":thisChannel,"action":"showVideos","link":extractNextPage.group(1)}, "")
	
	helper.endOfDirectory()
Ejemplo n.º 29
0
def mainPage():
    page = helper.load_page(baseLink+"/video")
    extractChannels = re.compile("<ul id=\"channelCarousel_ul\">(.*?)</ul>",re.DOTALL)
    extractChannel = re.compile("<a href=\"(.*?)\".*?alt=\"(.*?)\" src=\"(.*?)\"",re.DOTALL)
    
    channels = extractChannels.search(page).group(1)
    
    for channel in extractChannel.finditer(channels):
        menu_link = baseLink+channel.group(1)
        menu_name = channel.group(2)
        menu_img = baseLink+channel.group(3)
        parameters = {"channel":thisChannel,"action":"showVideos","link":menu_link}
        helper.addDirectoryItem(menu_name, parameters, menu_img)

    helper.endOfDirectory()
Ejemplo n.º 30
0
def showVideos(link):
    page = helper.load_page(urllib.unquote(link))
    extractVideos = re.compile("<ul id=\"videoList_ul\">(.*?)</ul>",re.DOTALL)
    extractVideo = re.compile("<li class=\"vidItem [a-z]*\" id=\"video_(.*?)\".*?src=\"(.*?)\".*?<span id=\".*?\">(.*?)</span>",re.DOTALL)
    
    videos = extractVideos.search(page).group(1)
    
    for video in extractVideo.finditer(videos):
        menu_link = video.group(1)
        menu_name = helper.removeHtmlSpecialChars(video.group(3))
        menu_img = video.group(2)
        parameters = {"channel":thisChannel,"action":"playVideo","link":menu_link}
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=False)

    helper.endOfDirectory()
Ejemplo n.º 31
0
def showShows(link):
    page = helper.load_page(urllib.unquote(link))
    
    extractShow = re.compile("<section class=\".*?content-item-vertical.*?\">.*?<div class=\"thumbimg\">.*?src=\"(.*?)\".*?href=\"(.*?)\".*?>(.*?)</a>", re.DOTALL)
    
    for show in extractShow.finditer(page):
        showImg = baseLink + show.group(1)
        showLink = baseLink + show.group(2) + "/videos"
        showTitle = show.group(3)
        
        showPage = urllib.urlopen(showLink)
        if showLink == showPage.geturl():
            if extractSection.search(showPage.read()) is not None:
                helper.addDirectoryItem(showTitle, {"channel":thisChannel, "action":"showVideos", "link":showLink}, showImg)
    helper.endOfDirectory()
Ejemplo n.º 32
0
def mainPage():
    page = helper.load_page(baseLink + "/videos")
    
    heroCats = re.compile("<ul id=\"hero_cats\">(.*?</ul><ul id=\"more_cats\">.*?)</ul>", re.DOTALL).search(page).group(1)
    
    items = re.compile("<a href=\"(/videos/category/(.*?))\" class=\".*?\"><span>(.*?)</span></a>").finditer(heroCats)
    
    helper.addDirectoryItem("All", {"channel":thisChannel, "action":"showCategory", "link":"/videos"})
    
    for category in items:
        catName = category.group(3)
        catLink = category.group(1)
        catImg = baseLink + "/assets/icons/cats/" + category.group(2).replace("+", "_") + "_normal.png"
        helper.addDirectoryItem(catName, {"channel":thisChannel, "action":"showCategory", "link":catLink}, catImg)

    helper.endOfDirectory()
Ejemplo n.º 33
0
def showCategory(link):
    page = helper.load_page(urllib.unquote(link))
    
    page = page.replace("\xED","\xc3\xad")
    
    data = json.loads(page)
    items = data['config']['promos'][0]['items']
    
    for video in items:
        vidName = helper.removeHtmlSpecialChars(video['title'])
        vidId = video['id']
        vidImg =  video['thumbnail']
        
        helper.addDirectoryItem(vidName, {"channel":thisChannel,"action":"playVideo","link":vidId}, vidImg, False)

    helper.endOfDirectory()
Ejemplo n.º 34
0
def showVideos(link):
    link = "http://media.treehousetv.com/videos.ashx?c=" + urllib.unquote(link)
    page = helper.load_page(link)
    data = json.loads(page)

    for video in data:
        menu_link = video["Id"]
        menu_name = video["Name"]
        menu_img = video["ThumbnailURL"]
        parameters = {
            "channel": thisChannel,
            "action": "playVideo",
            "link": menu_link
        }
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=False)

    helper.endOfDirectory()
Ejemplo n.º 35
0
def mainPage():
	page = helper.load_page(baseLink)
	extractShow = re.compile("<a href=\"(.*?)\" target=\"_self\"><img src=\"(.*?)\".*?alt=\"Watch (.*?) on KidMango.com!\" /></a>")
	
	for show in extractShow.finditer(page):
		link = show.group(1).replace("comtinpo","com/tinpo")
		print link
		page = urllib.urlopen(link)
		if page.getcode() != 404:
			page =page.read()
			extractContentId = re.compile("contentId : '([0-9]*)',").search(page)
			if extractContentId is not None:
				contentId = extractContentId.group(1)
				feedUrl = "http://cms.springboard.gorillanation.com/xml_feeds_advanced/index/891/rss1/"+contentId+"/"
				helper.addDirectoryItem(show.group(3), {"channel":thisChannel,"action":"showVideos","link":feedUrl}, show.group(2))

	helper.endOfDirectory()
Ejemplo n.º 36
0
def mainPage():
    page = helper.load_page(apiLink % ("kids-video-landing"))

    data = json.loads(page)
    items = data['config']['promos'][0]['items']

    for category in items:
        catName = helper.removeHtmlSpecialChars(category['title'])
        catLink = apiLink % (category['urlAlias'])
        catImg = baseLink + category['thumbnail']
        helper.addDirectoryItem(catName, {
            "channel": thisChannel,
            "action": "showCategory",
            "link": catLink
        }, catImg)

    helper.endOfDirectory()
Ejemplo n.º 37
0
def mainPage():
    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    
    for entry in xmlDom.getElementsByTagName("entry"):
        youtubeUrl = entry.getElementsByTagName("id")[0].firstChild.data
        youtubeId = youtubeUrl[youtubeUrl.rfind("/")+1:]
        title = entry.getElementsByTagName("title")[0].firstChild.data

        descirption = entry.getElementsByTagName("content")[0].firstChild.data
        img = entry.getElementsByTagName("media:thumbnail")[0].getAttribute("url")
        videoDuration = entry.getElementsByTagName("media:content")[0].getAttribute("duration")
        videoDuration = str(int(videoDuration)/60)
        
        parameters = {"channel":thisChannel,"action":"playVideo","id":youtubeId}
        helper.addDirectoryItem(title, parameters, img, False, plot=descirption, duration=videoDuration)
        
    helper.endOfDirectory()
Ejemplo n.º 38
0
def videoPageXml(link, start, showName):
    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    for release in xmlDom.getElementsByTagName("Release"):
        titles = release.getElementsByTagName("title")
        menu_name = release.getElementsByTagName("title")[len(titles) - 1].firstChild.data
        clip = ""
        for customData in release.getElementsByTagName("CustomDataElement"):
            if customData.getElementsByTagName("title")[0].firstChild.data == "Episode_Title":
                if customData.getElementsByTagName("value")[0].firstChild is not None:
                    menu_name = customData.getElementsByTagName("value")[0].firstChild.data
            if customData.getElementsByTagName("title")[0].firstChild.data == "IsClip":
                if customData.getElementsByTagName("value")[0].firstChild.data == "true":
                    clip = " (Clip)"
        menu_name = menu_name + clip
        menu_link = release.getElementsByTagName("URL")[0].firstChild.data
        menu_img = ""
        if release.getElementsByTagName("thumbnailURL")[0].firstChild is not None:
            menu_img = release.getElementsByTagName("thumbnailURL")[0].firstChild.data
        menu_duration = str(int(release.getElementsByTagName("length")[0].firstChild.data) / 1000 / 60)
        parameters = {"channel": thisChannel, "action": "playVideo", "link": menu_link}
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=False, duration=menu_duration)

    total_count = int(xmlDom.getElementsByTagName("totalCount")[0].firstChild.data)
    if int(start) + 20 < total_count:
        menu_link = videoPageLink % (
            str(int(start) + 20),
            str(int(start) + 40),
            showName,
            affiliate,
            player,
            playerQuery,
        )
        parameters = {
            "channel": thisChannel,
            "action": "videoPageXml",
            "link": menu_link,
            "start": str(int(start) + 20),
            "name": showName,
        }
        helper.addDirectoryItem("Show more", parameters)
    helper.endOfDirectory()
Ejemplo n.º 39
0
def subPageXml(link):
    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    for category in xmlDom.getElementsByTagName("Category"):
        menu_name = category.getElementsByTagName("fullTitle")[0].firstChild.data
        menu_link = videoPageLink % ("1", "20", menu_name, affiliate, player, playerQuery)
        menu_img = ""
        menuImgItem = category.getElementsByTagName("CustomDataElement")[0].getElementsByTagName("value")[0].firstChild
        if menuImgItem is not None:
            menu_img = menuImgItem.data
        parameters = {
            "channel": thisChannel,
            "action": "videoPageXml",
            "link": menu_link,
            "start": "1",
            "name": menu_name,
        }
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=True)

    helper.endOfDirectory()
Ejemplo n.º 40
0
def showCategory(link):
    page = helper.load_page(urllib.unquote(link))

    page = page.replace("\xED", "\xc3\xad")

    data = json.loads(page)
    items = data['config']['promos'][0]['items']

    for video in items:
        vidName = helper.removeHtmlSpecialChars(video['title'])
        vidId = video['id']
        vidImg = video['thumbnail']

        helper.addDirectoryItem(vidName, {
            "channel": thisChannel,
            "action": "playVideo",
            "link": vidId
        }, vidImg, False)

    helper.endOfDirectory()
Ejemplo n.º 41
0
def subPageXml(link, action="videoPage"):
    if action == "videoPage":
        nextAction = "subPageXml"
        isFolder = True
    elif action == "playVideo":
        nextAction = "videoPageXml"
        isFolder = False

    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    for sprite in xmlDom.getElementsByTagName("sprite"):
        if sprite.getAttribute(
                "class"
        ) == "com.disney.disneyjunior.classes.sprites.TileAsset video":
            menu_name = sprite.getElementsByTagName("text")[0].firstChild.data
            menu_name = helper.removeTags(menu_name)
            menu_link = sprite.getElementsByTagName("a")[0].getAttribute(
                "href")
            menu_img = sprite.getElementsByTagName("img")[0].getAttribute(
                "src")
            parameters = {
                "channel": thisChannel,
                "action": action,
                "link": menu_link
            }
            helper.addDirectoryItem(menu_name,
                                    parameters,
                                    menu_img,
                                    folder=isFolder)

    menuNode = xmlDom.getElementById("next")
    for a in xmlDom.getElementsByTagName("a"):
        if a.getAttribute("id") == "next":
            parameters = {
                "channel": thisChannel,
                "action": nextAction,
                "link": a.getAttribute("href")
            }
            helper.addDirectoryItem("Next page", parameters)

    helper.endOfDirectory()
Ejemplo n.º 42
0
def showVideos(link):
    page = helper.load_page(urllib.unquote(link))
    extractVideos = re.compile("<ul id=\"videoList_ul\">(.*?)</ul>", re.DOTALL)
    extractVideo = re.compile(
        "<li class=\"vidItem [a-z]*\" id=\"video_(.*?)\".*?src=\"(.*?)\".*?<span id=\".*?\">(.*?)</span>",
        re.DOTALL)

    videos = extractVideos.search(page).group(1)

    for video in extractVideo.finditer(videos):
        menu_link = video.group(1)
        menu_name = helper.removeHtmlSpecialChars(video.group(3))
        menu_img = video.group(2)
        parameters = {
            "channel": thisChannel,
            "action": "playVideo",
            "link": menu_link
        }
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=False)

    helper.endOfDirectory()
Ejemplo n.º 43
0
def mainPage():
    page = helper.load_page(baseLink + "/video")
    extractChannels = re.compile("<ul id=\"channelCarousel_ul\">(.*?)</ul>",
                                 re.DOTALL)
    extractChannel = re.compile(
        "<a href=\"(.*?)\".*?alt=\"(.*?)\" src=\"(.*?)\"", re.DOTALL)

    channels = extractChannels.search(page).group(1)

    for channel in extractChannel.finditer(channels):
        menu_link = baseLink + channel.group(1)
        menu_name = channel.group(2)
        menu_img = baseLink + channel.group(3)
        parameters = {
            "channel": thisChannel,
            "action": "showVideos",
            "link": menu_link
        }
        helper.addDirectoryItem(menu_name, parameters, menu_img)

    helper.endOfDirectory()
Ejemplo n.º 44
0
def showSubMenu(level1=-1):
    page = helper.load_page(baseLink)
    mainMenu = extractMenu(page)
    
    if level1 == -1:
        menu = mainMenu
    else:
        menu = mainMenu[int(level1)]['children']
    
    counter = 0
    for menuItem in menu:
        menu_name = menuItem['name'];
        
        menu_link = menuItem['link'];
        if len(menuItem['children']):
            helper.addDirectoryItem(menuItem['name'], {"channel":thisChannel, "action" : "showSubMenu", "link": counter})   
        else:        
            helper.addDirectoryItem(menuItem['name'], {"channel":thisChannel, "action" : "showVideos", "link": menu_link})
        counter = counter + 1
    
    helper.endOfDirectory()
Ejemplo n.º 45
0
def showCategory(link):
    page = helper.load_page(baseLink+urllib.unquote(link))

    extractVideos = re.compile("<div class=\"peepshow\">.*?<a href=\"(.*?)\">(.*?)</a>.*?<img.*?src=\"(.*?)\".*?<p>(.*?)</p>",re.DOTALL)
    
    for video in extractVideos.finditer(page):
        vidName = video.group(2)
        vidName = helper.removeHtmlSpecialChars(vidName)
        vidLink = video.group(1)
        vidImg = video.group(3)
        vidPlot = video.group(4)
        parameters = {"channel":thisChannel, "action":"playVideo", "link":vidLink}
        helper.addDirectoryItem(vidName, parameters, vidImg, False, plot=vidPlot)
        
    extractNextPage = re.compile("<li class=\"next\"><a href=\"(.*?)\" rel=\"next\">Next")
    
    nextPage = extractNextPage.search(page)
    
    if nextPage is not None:
        helper.addDirectoryItem("Show more", {"channel":thisChannel, "action":"showCategory", "link":nextPage.group(1)})
    
    helper.endOfDirectory()
Ejemplo n.º 46
0
def extractMenu(parent=None):
    page = helper.load_page(baseLink)

    extractChannels = re.compile("<div id=\"video-navigation\">(.*?)</div>",
                                 re.DOTALL)
    extractChannel = re.compile("<li.*?href=\"\?c=(.*?)\">(.*?)</a>")

    channels = extractChannels.search(page).group(1)

    channels = channels.replace("</li>", "</li>\n")
    channels = channels.replace("</a>", "</a>\n")

    menuList = []
    parent = -1
    hasParent = False
    for line in channels.split("\n"):
        if line.find("<ul class=\"level_1\">") > -1:
            hasParent = True

        channel = extractChannel.search(line)
        if channel is not None:
            if not hasParent:
                parent = parent + 1
                menuList.append({
                    "name": channel.group(2),
                    "link": channel.group(1),
                    "children": []
                })
            else:
                menuList[parent]['children'].append({
                    "name": channel.group(2),
                    "link": channel.group(1),
                    "children": []
                })

        if line.find("</ul>") > -1:
            hasParent = False

    return menuList
Ejemplo n.º 47
0
def playVideo(link):
    page = helper.load_page(baseLink + urllib.unquote(link))

    extractYouTubeId = re.compile(
        "<div data-youtube=\"(.*?)\" id=\"yt_video\">")

    youTubeInfo = extractYouTubeId.search(page)

    if youTubeInfo is not None:
        youTubeId = youTubeInfo.group(1)
        streamUrl = "plugin://plugin.video.youtube/?action=play_video&videoid=" + youTubeId
        helper.setResolvedUrl(streamUrl)
    else:
        const = "07e6acedf6c0f426a377e5b3ba077229e6e826f9"
        publisherID = "1521649306001"

        extractVideo = re.compile(
            "<param name=\"playerID\" value=\"([0-9]*)\".*?name=\"playerKey\" value=\"(.*?)\".*name=\"@videoPlayer\" value=\"([0-9]*)\""
        )

        video = extractVideo.search(page)
        playerID = video.group(1)
        playerKey = video.group(2)
        videoPlayer = video.group(3)

        stream = brightcovePlayer.play(const, playerID, videoPlayer,
                                       publisherID, playerKey)

        vidStr = "?videoId=" + videoPlayer + "&lineUpId=&pubId=" + publisherID + "&playerId=" + playerID + "&affiliateId="

        rtmpbase = stream[1][0:stream[1].find("&")]
        conn = stream[1][stream[1].find("&") + 1:]
        playpath = conn[0:conn.find("&")] + vidStr
        app = rtmpbase[rtmpbase.find("/", 7) + 1:-1] + vidStr

        finalurl = rtmpbase + ' playpath=' + playpath + " conn=B:0 conn=S:" + conn + " app=" + app

        helper.setResolvedUrl(finalurl)
Ejemplo n.º 48
0
def playVideo(link):
    page = helper.load_page(baseLink + urllib.unquote(link))

    extractYouTubeId = re.compile('<div data-youtube="(.*?)" id="yt_video">')

    youTubeInfo = extractYouTubeId.search(page)

    if youTubeInfo is not None:
        youTubeId = youTubeInfo.group(1)
        streamUrl = "plugin://plugin.video.youtube/?action=play_video&videoid=" + youTubeId
        helper.setResolvedUrl(streamUrl)
    else:
        const = "07e6acedf6c0f426a377e5b3ba077229e6e826f9"
        publisherID = "1521649306001"

        extractVideo = re.compile(
            '<param name="playerID" value="([0-9]*)".*?name="playerKey" value="(.*?)".*name="@videoPlayer" value="([0-9]*)"'
        )

        video = extractVideo.search(page)
        playerID = video.group(1)
        playerKey = video.group(2)
        videoPlayer = video.group(3)

        stream = brightcovePlayer.play(const, playerID, videoPlayer, publisherID, playerKey)

        vidStr = (
            "?videoId=" + videoPlayer + "&lineUpId=&pubId=" + publisherID + "&playerId=" + playerID + "&affiliateId="
        )

        rtmpbase = stream[1][0 : stream[1].find("&")]
        conn = stream[1][stream[1].find("&") + 1 :]
        playpath = conn[0 : conn.find("&")] + vidStr
        app = rtmpbase[rtmpbase.find("/", 7) + 1 : -1] + vidStr

        finalurl = rtmpbase + " playpath=" + playpath + " conn=B:0 conn=S:" + conn + " app=" + app

        helper.setResolvedUrl(finalurl)
Ejemplo n.º 49
0
def showCategory(link):
    page = helper.load_page(baseLink + urllib.unquote(link))

    extractVideos = re.compile(
        "<div class=\"peepshow\">.*?<a href=\"(.*?)\">(.*?)</a>.*?<img.*?src=\"(.*?)\".*?<p>(.*?)</p>",
        re.DOTALL)

    for video in extractVideos.finditer(page):
        vidName = video.group(2)
        vidName = helper.removeHtmlSpecialChars(vidName)
        vidLink = video.group(1)
        vidImg = video.group(3)
        vidPlot = video.group(4)
        parameters = {
            "channel": thisChannel,
            "action": "playVideo",
            "link": vidLink
        }
        helper.addDirectoryItem(vidName,
                                parameters,
                                vidImg,
                                False,
                                plot=vidPlot)

    extractNextPage = re.compile(
        "<li class=\"next\"><a href=\"(.*?)\" rel=\"next\">Next")

    nextPage = extractNextPage.search(page)

    if nextPage is not None:
        helper.addDirectoryItem(
            "Show more", {
                "channel": thisChannel,
                "action": "showCategory",
                "link": nextPage.group(1)
            })

    helper.endOfDirectory()
Ejemplo n.º 50
0
def subPageXml(link):
    xmlPage = helper.load_page(link)
    xmlDom = minidom.parseString(xmlPage)
    for category in xmlDom.getElementsByTagName("Category"):
        menu_name = category.getElementsByTagName(
            "fullTitle")[0].firstChild.data
        menu_link = videoPageLink % ("1", "20", menu_name, affiliate, player,
                                     playerQuery)
        menu_img = ""
        menuImgItem = category.getElementsByTagName(
            "CustomDataElement")[0].getElementsByTagName("value")[0].firstChild
        if menuImgItem is not None:
            menu_img = menuImgItem.data
        parameters = {
            "channel": thisChannel,
            "action": "videoPageXml",
            "link": menu_link,
            "start": "1",
            "name": menu_name
        }
        helper.addDirectoryItem(menu_name, parameters, menu_img, folder=True)

    helper.endOfDirectory()
Ejemplo n.º 51
0
def videoPage(link):
    page = helper.load_page(urllib.unquote(link))
    extractXml = re.compile("tileService: \"(.*?)\" };").search(page)
    if extractXml is not None:
        videoPageXml(extractXml.group(1).replace("%26", "&"))
Ejemplo n.º 52
0
def videoPage(link):
    page = helper.load_page(urllib.unquote(link))
    extractXml = re.compile("tileService: \"(.*?)\" };").search(page)
    if extractXml is not None:
        videoPageXml(extractXml.group(1).replace("%26","&"))