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")
def playRawVideo(request_obj, response_obj): video_url = request_obj.get_data()['videoLink'] Container().ga_client.reportAction('video') item = ListItem() item.get_moving_data()['videoStreamUrl'] = video_url item.set_next_action_name('Play') xbmcListItem = xbmcgui.ListItem(label='Streaming Video') item.set_xbmc_list_item_obj(xbmcListItem) response_obj.addListItem(item) response_obj.addServiceResponseParam("status", "success") response_obj.addServiceResponseParam("message", "Enjoy the video!")
def playZappyVideo(request_obj, response_obj): Logger.logDebug(request_obj.get_data()); Container().ga_client.reportAction('zappyvideo') video_id = request_obj.get_data()['videoId'] port = request_obj.get_data()['port'] ipaddress = request_obj.get_data()['client_ip'] video_url = "http://" + ipaddress + ":" + str(port) + "/?videoId=" + video_id item = ListItem() item.get_moving_data()['videoStreamUrl'] = video_url item.set_next_action_name('Play') xbmcListItem = xbmcgui.ListItem(label='Streaming Video') item.set_xbmc_list_item_obj(xbmcListItem) response_obj.addListItem(item) response_obj.addServiceResponseParam("status", "success") response_obj.addServiceResponseParam("message", "Enjoy the video!")
def retieveMovieStreams(request_obj, response_obj): soup = None if request_obj.get_data().has_key('movieInfoUrl'): html = HttpUtils.HttpClient().getHtmlContent(url=(BASE_WSITE_URL + request_obj.get_data()['movieInfoUrl'][3:])) soup = BeautifulSoup.BeautifulSoup(html) elif request_obj.get_data().has_key('moviePageUrl'): contentDiv = BeautifulSoup.SoupStrainer('div', {'dir':'ltr'}) soup = HttpUtils.HttpClient().getBeautifulSoup(url=request_obj.get_data()['moviePageUrl'], parseOnlyThese=contentDiv) if soup == None: return videoSourceLink = None scriptTags = [] for row in soup('script', {'type':'text/javascript'}): if re.search('jwplayer', ''.join(row.contents)): jwplayer = ''.join(row.contents) m_obj = re.search(r'({.*})', jwplayer) if m_obj: jwplayerStr = m_obj.group(1).replace("'", "\"") matches = re.search('"file": "(.+?)"', jwplayerStr, re.IGNORECASE) if matches: videoSourceLink = matches.group(1) break XBMCInterfaceUtils.displayDialogMessage('Do you know?', 'The content of this add-on is from www.einthusan.com.', 'Please help Einthusan by visiting his website regularly.', 'The developer has no relation with www.einthusan.com. OK to proceed!', msgType='[B]INFO & REQUEST: [/B]') item = ListItem() item.set_next_action_name('Play') item.get_moving_data()['videoStreamUrl'] = videoSourceLink xbmcListItem = xbmcgui.ListItem(label=request_obj.get_data()['movieTitle']) if(request_obj.get_data().has_key('videoInfo')): meta = request_obj.get_data()['videoInfo'] xbmcListItem.setIconImage(meta['thumb_url']) xbmcListItem.setThumbnailImage(meta['cover_url']) xbmcListItem.setInfo('video', meta) item.set_xbmc_list_item_obj(xbmcListItem) response_obj.addListItem(item)