Exemple #1
0
def playRawAudio(request_obj, response_obj):
    pbType = int(Container().getAddonContext().addon.getSetting('playbacktype'))
    Container().ga_client.reportAction('audio')
    if XBMCInterfaceUtils.isPlayingVideo():
        response_obj.addServiceResponseParam("status", "error")
        response_obj.addServiceResponseParam("title", "Stop active video!")
        response_obj.addServiceResponseParam("message", "Note: XBMC cannot play audio when video playback is in progress.")
        item = ListItem()
        item.set_next_action_name('respond')
        response_obj.addListItem(item)
    elif pbType == 2 and XBMCInterfaceUtils.isPlaying():
        response_obj.addServiceResponseParam("status", "error")
        response_obj.addServiceResponseParam("title", "XBMC is already playing.")
        response_obj.addServiceResponseParam("message", "Check PlayIt Service add-on settings. Your this request is ignored.")
        item = ListItem()
        item.set_next_action_name('respond')
        response_obj.addListItem(item)
    else:
        if pbType == 0:
            XBMCInterfaceUtils.stopPlayer()
        if not XBMCInterfaceUtils.isPlaying():
            XBMCInterfaceUtils.clearPlayList(list_type="audio")
            response_obj.addServiceResponseParam("message", "Enjoy your music!")
        else:
            response_obj.addServiceResponseParam("title", "Request Enqueued!")
            response_obj.addServiceResponseParam("message", "Your request has been added to player queue.")
        item = ListItem()
        item.get_moving_data()['audioStreamUrl'] = request_obj.get_data()['track_link']
        item.set_next_action_name('Play')
        xbmcListItem = xbmcgui.ListItem(label=request_obj.get_data()['track_title'], iconImage=request_obj.get_data()['track_artwork_url'], thumbnailImage=request_obj.get_data()['track_artwork_url'])
        xbmcListItem.setInfo('music', {'title':request_obj.get_data()['track_title']})
        item.set_xbmc_list_item_obj(xbmcListItem)
        response_obj.addListItem(item)
        response_obj.addServiceResponseParam("status", "success")
Exemple #2
0
def playHostedVideo(request_obj, response_obj):
    pbType = int(Container().getAddonContext().addon.getSetting('playbacktype'))
    
    Container().getAddonContext().addon.setSetting('ga_video_title', 'false')
    
    if pbType == 2 and XBMCInterfaceUtils.isPlaying():
        response_obj.addServiceResponseParam("status", "error")
        response_obj.addServiceResponseParam("title", "XBMC is already playing.")
        response_obj.addServiceResponseParam("message", "Check PlayIt Service add-on settings. Your this request is ignored.")
        item = ListItem()
        item.set_next_action_name('respond')
        response_obj.addListItem(item)
    else:
        if pbType == 0:
            XBMCInterfaceUtils.stopPlayer()
            
        video_url = request_obj.get_data()['videoLink']
        if video_url.startswith('http://goo.gl/'):
            Logger.logDebug('Found google short URL = ' + video_url)
            video_url = HttpUtils.getRedirectedUrl(video_url)
            Logger.logDebug('After finding out redirected URL = ' + video_url)
            request_obj.get_data()['videoLink'] = video_url
        if __is_valid_url(video_url):
            contentType = __check_media_url(video_url)
            if contentType is not None:
                if contentType == 'audio':
                    response_obj.set_redirect_action_name('play_direct_audio')
                    request_obj.get_data()['track_title'] = ''
                    request_obj.get_data()['track_link'] = video_url
                    request_obj.get_data()['track_artwork_url'] = ''
                else:
                    response_obj.set_redirect_action_name('play_direct_video')
            else:
                if XBMCInterfaceUtils.isPlayingAudio():
                    response_obj.addServiceResponseParam("status", "error")
                    response_obj.addServiceResponseParam("title", "Stop active music!")
                    response_obj.addServiceResponseParam("message", "Note: XBMC cannot play video when audio playback is in progress.")
                    item = ListItem()
                    item.set_next_action_name('respond')
                    response_obj.addListItem(item)
                else:
                    video_hosting_info = SnapVideo.findVideoHostingInfo(video_url)
                    if video_hosting_info is None:
                        response_obj.addServiceResponseParam("status", "error")
                        response_obj.addServiceResponseParam("title", "URL not supported")
                        response_obj.addServiceResponseParam("message", "Video URL is currently not supported by PlayIt. Please check if URL selected is correct.")
                        item = ListItem()
                        item.set_next_action_name('respond')
                        response_obj.addListItem(item)
                    else:
                        Container().ga_client.reportContentUsage('hostedvideo', video_hosting_info.get_video_hosting_name())
                        response_obj.addServiceResponseParam("status", "success")
                        if not XBMCInterfaceUtils.isPlaying():
                            XBMCInterfaceUtils.clearPlayList(list_type="video")
                            response_obj.addServiceResponseParam("message", "Enjoy your video!")
                        else:
                            response_obj.addServiceResponseParam("title", "Request Enqueued!")
                            response_obj.addServiceResponseParam("message", "Your request has been added to player queue.")
                        response_obj.set_redirect_action_name('play_it')
                        request_obj.get_data()['videoTitle'] = 'PlayIt Video'
        else:
            Logger.logError('video_url = ' + str(video_url))
            response_obj.addServiceResponseParam("status", "error")
            response_obj.addServiceResponseParam("title", "Invalid URL")
            response_obj.addServiceResponseParam("message", "Video URL is not valid one! Please check and try again.")
            item = ListItem()
            item.set_next_action_name('respond')
            response_obj.addListItem(item)