def _retrieve_video_links_(req_attrib, modelMap): modelMap['channel-name'] = req_attrib['channel-name'] modelMap['tv-show-name'] = req_attrib['tv-show-name'] modelMap['episode-name'] = req_attrib['episode-name'] video_source_id = 1 video_source_img = None video_source_name = None video_part_index = 0 video_playlist_items = [] ignoreAllLinks = False list_items = [] contentDiv = BeautifulSoup.SoupStrainer('div', {'id':'left-div'}) soup = HttpClient().get_beautiful_soup(url=req_attrib['episode-url'], parseOnlyThese=contentDiv) # soup = BeautifulSoup.BeautifulSoup(HttpClient().get_html_content(url=req_attrib['episode-url'])).findAll('blockquote', {'class':re.compile(r'\bpostcontent\b')})[0] centerTag = soup.findNext('center') logging.getLogger().debug(centerTag) prevChild = '' prevAFont = None isHD = 'false' videoSource = '' for child in soup.findChildren(): if child.name == 'span': if len(video_playlist_items) > 0: list_items.append(__preparePlayListItem__(video_source_id, video_source_img, video_source_name, video_playlist_items, modelMap, isHD)) logging.getLogger().debug(videoSource) videoSource = child.getText() if(re.search('720p', videoSource, re.I)): isHD = 'true' else: isHD = 'false' if video_source_img is not None: video_source_id = video_source_id + 1 video_source_img = None video_source_name = None video_part_index = 0 video_playlist_items = [] ignoreAllLinks = False elif not ignoreAllLinks and child.name == 'a': if (str(child['href']) != 'https://www.facebook.com/iamdesirulez'): video_part_index = video_part_index + 1 video_link = {} video_link['videoTitle'] = 'Source #' + str(video_source_id) + ' | ' + 'Part #' + str(video_part_index) + ' | ' + child.getText() video_link['videoLink'] = str(child['href']) video_link['videoSource'] = videoSource try: try: __prepareVideoLink__(video_link) except Exception, e: logging.getLogger().exception(e) video_hosting_info = SnapVideo().findVideoHostingInfo(video_link['videoLink']) if video_hosting_info is None or video_hosting_info.get_name() == 'UrlResolver by t0mm0': raise video_link['videoSourceImg'] = video_hosting_info.get_icon() video_link['videoSourceName'] = video_hosting_info.get_name() video_playlist_items.append(video_link) video_source_img = video_link['videoSourceImg'] video_source_name = video_link['videoSourceName'] item = xbmcgui.ListItem(label='Source #' + str(video_source_id) + ' | ' + 'Part #' + str(video_part_index) , iconImage=video_source_img, thumbnailImage=video_source_img) item.setProperty('videoLink', video_link['videoLink']) item.setProperty('videoTitle', video_link['videoTitle']) item.setProperty('videoSourceName', video_source_name) item.setProperty('isContinuousPlayItem', 'false') list_items.append(item) prevAFont = child.findChild('font') except: logging.getLogger().error('Unable to recognize a source = ' + str(video_link['videoLink'])) video_source_img = None video_source_name = None video_part_index = 0 video_playlist_items = [] ignoreAllLinks = True prevAFont = None
def _retrieve_video_links_(req_attrib, modelMap): modelMap['channel-name'] = req_attrib['channel-name'] modelMap['tv-show-name'] = req_attrib['tv-show-name'] modelMap['episode-name'] = req_attrib['episode-name'] video_source_id = 1 video_source_img = None video_source_name = None video_part_index = 0 video_playlist_items = [] ignoreAllLinks = False list_items = [] contentDiv = BeautifulSoup.SoupStrainer('div', {'id': 'left-div'}) soup = HttpClient().get_beautiful_soup(url=req_attrib['episode-url'], parseOnlyThese=contentDiv) # soup = BeautifulSoup.BeautifulSoup(HttpClient().get_html_content(url=req_attrib['episode-url'])).findAll('blockquote', {'class':re.compile(r'\bpostcontent\b')})[0] centerTag = soup.findNext('center') logging.getLogger().debug(centerTag) prevChild = '' prevAFont = None isHD = 'false' videoSource = '' for child in soup.findChildren(): if child.name == 'span': if len(video_playlist_items) > 0: list_items.append( __preparePlayListItem__(video_source_id, video_source_img, video_source_name, video_playlist_items, modelMap, isHD)) logging.getLogger().debug(videoSource) videoSource = child.getText() if (re.search('720p', videoSource, re.I)): isHD = 'true' else: isHD = 'false' if video_source_img is not None: video_source_id = video_source_id + 1 video_source_img = None video_source_name = None video_part_index = 0 video_playlist_items = [] ignoreAllLinks = False elif not ignoreAllLinks and child.name == 'a': if (str(child['href']) != 'https://www.facebook.com/iamdesirulez'): video_part_index = video_part_index + 1 video_link = {} video_link['videoTitle'] = 'Source #' + str( video_source_id) + ' | ' + 'Part #' + str( video_part_index) + ' | ' + child.getText() video_link['videoLink'] = str(child['href']) video_link['videoSource'] = videoSource try: try: __prepareVideoLink__(video_link) except Exception, e: logging.getLogger().error(e) video_hosting_info = SnapVideo().findVideoHostingInfo( video_link['videoLink']) if video_hosting_info is None or video_hosting_info.get_name( ) == 'UrlResolver by t0mm0': raise video_link[ 'videoSourceImg'] = video_hosting_info.get_icon() video_link[ 'videoSourceName'] = video_hosting_info.get_name() video_playlist_items.append(video_link) video_source_img = video_link['videoSourceImg'] video_source_name = video_link['videoSourceName'] item = xbmcgui.ListItem(label='Source #' + str(video_source_id) + ' | ' + 'Part #' + str(video_part_index), iconImage=video_source_img, thumbnailImage=video_source_img) item.setProperty('videoLink', video_link['videoLink']) item.setProperty('videoTitle', video_link['videoTitle']) item.setProperty('videoSourceName', video_source_name) item.setProperty('isContinuousPlayItem', 'false') list_items.append(item) prevAFont = child.findChild('font') except: logging.getLogger().error( 'Unable to recognize a source = ' + str(video_link['videoLink'])) video_source_img = None video_source_name = None video_part_index = 0 video_playlist_items = [] ignoreAllLinks = True prevAFont = None