示例#1
0
def play(url, pathId="", srt=[]):
    xbmc.log("Playing...")

    if pathId != "":
        xbmc.log("PathID: " + pathId)

        # Ugly hack
        if pathId[:7] == "/audio/":
            raiplayradio = RaiPlayRadio()
            metadata = raiplayradio.getAudioMetadata(pathId)
            url = metadata["contentUrl"]
            srtUrl = ""
        else:
            raiplay = RaiPlay()
            xbmc.log("Url: " + raiplay.getUrl(pathId))
            metadata = raiplay.getVideoMetadata(pathId)
            url = metadata["content_url"]
            srtUrl = metadata["subtitles"]

        if srtUrl != "":
            xbmc.log("SRT URL: " + srtUrl)
            srt.append(srtUrl)

    # Handle RAI relinker
    if url[:53] == "http://mediapolis.rai.it/relinker/relinkerServlet.htm" or \
        url[:56] == "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm" or \
        url[:58] == "http://mediapolisevent.rai.it/relinker/relinkerServlet.htm":
        xbmc.log("Relinker URL: " + url)
        relinker = Relinker()
        url = relinker.getURL(url)

    # Add the server to the URL if missing
    if url[0] == "/":
        url = raiplay.baseUrl[:-1] + url
    xbmc.log("Media URL: " + url)

    # Play the item
    try:
        item = xbmcgui.ListItem(path=url + '|User-Agent=' +
                                urllib.quote_plus(Relinker.UserAgent))
    except:
        item = xbmcgui.ListItem(path=url + '|User-Agent=' +
                                urllib.parse.quote_plus(Relinker.UserAgent))
    if len(srt) > 0:
        item.setSubtitles(srt)
    xbmcplugin.setResolvedUrl(handle=handle, succeeded=True, listitem=item)
def play(url, pathId="", srt=[]):
    xbmc.log("Playing...")

    if pathId != "":
        xbmc.log("PathID: " + pathId)
        raiplay = RaiPlay()
        metadata = raiplay.getVideoMetadata(pathId)
        url = metadata["contentUrl"]
        srtUrl = metadata["subtitles"]
        if srtUrl != "":
            xbmc.log("SRT URL: " + srtUrl)
            srtFile = raiplay.fixSRT(srtUrl)
            xbmc.log("SRT file: " + srtFile)
            srt.append(srtFile)

    # Handle RAI relinker
    if url[:53] == "http://mediapolis.rai.it/relinker/relinkerServlet.htm" or \
        url[:56] == "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm" or \
        url[:58] == "http://mediapolisevent.rai.it/relinker/relinkerServlet.htm":
        xbmc.log("Relinker URL: " + url)
        relinker = Relinker()
        url = relinker.getURL(url)

    # Add the server to the URL if missing
    if url != "" and url.find("://") == -1:
        url = raiplay.baseUrl + url
    xbmc.log("Media URL: " + url)

    # It seems that all .ram files I found are not working
    # because upstream file is no longer present
    if url[-4:].lower() == ".ram":
        dialog = xbmcgui.Dialog()
        dialog.ok("Errore", "I file RealAudio (.ram) non sono supportati.")
        return

    # Play the item
    item = xbmcgui.ListItem(path=url + '|User-Agent=' +
                            urllib.quote_plus(Relinker.UserAgent))
    if len(srt) > 0:
        item.setSubtitles(srt)
    xbmcplugin.setResolvedUrl(handle=handle, succeeded=True, listitem=item)