def display_list_series(): category_url = args['categoryurl'][0] selected_letter = args['selectedletter'][0] # Get name and URL of all series starting with the letter of the chosen folder. tree = build_tree(category_url) series = tree.findAll('span', attrs={'class': 'title_link'}) for entry in series: if selected_letter != "0": tag = entry.find('a', text=re.compile("^" + selected_letter + ".+?")) else: tag = entry.find('a', text=re.compile("^[0-9].+?")) if tag is not None: # Since some titles and URLs contain incompatible unicode characters. series_name = entry.text.encode("ascii", "ignore") series_url = entry.find('a')['href'].encode("ascii", "ignore") icon = os_images.get_poster_image(series_name) url = build_url({'mode': 'series', 'seriesname': series_name, 'seriesurl': series_url, 'seriesicon': icon}) li = xbmcgui.ListItem(series_name, iconImage=icon) li.setThumbnailImage(icon) li.setIconImage(icon) li.setProperty('fanart_image', __addon__.getAddonInfo('fanart')) xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True) xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True) xbmcplugin.endOfDirectory(addon_handle)
def start_chosen_video(): # Perform an additional login-check, in order to properly load the cookie. if os_account.user_is_logged_in(): episode_url = args['episodeurl'][0] episode_nbr = args['episodename'][0] series_name = args['seriesname'][0] # Check if a "mature content"-warning is displayed. response = urllib2.urlopen(episode_url) html = response.read() warnings = re.findall('warning.jpg', html) # If warnings are found: Follow the redirect URL to access the actual video. if len(warnings) > 0: new_url = re.findall('"../..(/watch.+?)">', html) episode_url = "http://otaku-streamers.com/{0}".format(new_url[0]) # Get URL to file. video_path = resolve(episode_url) # Set meta-data. li = xbmcgui.ListItem(thumbnailImage=os_images.get_poster_image(series_name)) if episode_nbr == 'Full Movie': li.setInfo('video', {'title': series_name}) else: li.setInfo('video', {'title': '{0} - {1}'.format(series_name, episode_nbr)}) # Start video playback. xbmc.Player().play(video_path, li) xbmcplugin.endOfDirectory(addon_handle)
def start_chosen_video(): # Perform an additional login-check, in order to properly load the cookie. if os_account.user_is_logged_in(): episode_url = args['episodeurl'][0] episode_nbr = args['episodename'][0] series_name = args['seriesname'][0] # Check if a "mature content"-warning is displayed. response = urllib2.urlopen(episode_url) html = response.read() warnings = re.findall('warning.jpg', html) # If warnings are found: Follow the redirect URL to access the actual video. if len(warnings) > 0: new_url = re.findall('"../..(/watch.+?)">', html) episode_url = "https://otaku-streamers.com/{0}".format(new_url[0]) # Get URL to file. video_path = resolve(episode_url) # Set meta-data. li = xbmcgui.ListItem( thumbnailImage=os_images.get_poster_image(series_name)) if episode_nbr == 'Full Movie': li.setInfo('video', {'title': series_name}) else: li.setInfo('video', {'title': '{0} - {1}'.format(series_name, episode_nbr)}) # Start video playback. xbmc.Player().play(video_path, li) xbmcplugin.endOfDirectory(addon_handle)
def display_list_episodes_movies(): series_name = args['seriesname'][0] series_url = args['seriesurl'][0] tree = build_tree(series_url) # Get image. os_images.download_poster_image(series_name, series_url) icon = os_images.get_poster_image(series_name) # Get the URL for all episodes/movies rows = tree.findAll( "a", {"href": re.compile("https://otaku-streamers.com/watch/")}) for entry in rows: # Since some URLs contain incompatible unicode characters. cleanUrl = entry['href'].encode("ascii", "ignore") url = build_url({ 'mode': 'episode', 'seriesname': series_name, 'episodename': entry.parent.text, 'episodeurl': cleanUrl }) li = xbmcgui.ListItem(entry.parent.text, iconImage=icon) li.setProperty('fanart_image', __addon__.getAddonInfo('fanart')) xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li) xbmcplugin.endOfDirectory(addon_handle)
def display_list_series(): category_url = args['categoryurl'][0] selected_letter = args['selectedletter'][0] # Get name and URL of all series starting with the letter of the chosen folder. tree = build_tree(category_url) series = tree.findAll('span', attrs={'class': 'title_link'}) for entry in series: if selected_letter != "0": tag = entry.find('a', text=re.compile("^" + selected_letter + ".+?")) else: tag = entry.find('a', text=re.compile("^[0-9].+?")) if tag is not None: # Since some titles and URLs contain incompatible unicode characters. series_name = entry.text.encode("ascii", "ignore") series_url = entry.find('a')['href'].encode("ascii", "ignore") icon = os_images.get_poster_image(series_name) url = build_url({ 'mode': 'series', 'seriesname': series_name, 'seriesurl': series_url, 'seriesicon': icon }) li = xbmcgui.ListItem(series_name, iconImage=icon) li.setThumbnailImage(icon) li.setIconImage(icon) li.setProperty('fanart_image', __addon__.getAddonInfo('fanart')) xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True) xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li, isFolder=True) xbmcplugin.endOfDirectory(addon_handle)
def display_list_episodes_movies(): series_name = args['seriesname'][0] series_url = args['seriesurl'][0] tree = build_tree(series_url) # Get image. os_images.download_poster_image(series_name, series_url) icon = os_images.get_poster_image(series_name) # Get the URL for all episodes/movies rows = tree.findAll("a", {"href": re.compile("http://otaku-streamers.com/watch/")}) for entry in rows: # Since some URLs contain incompatible unicode characters. cleanUrl = entry['href'].encode("ascii", "ignore") url = build_url({'mode': 'episode', 'seriesname': series_name, 'episodename': entry.parent.text, 'episodeurl': cleanUrl}) li = xbmcgui.ListItem(entry.parent.text, iconImage=icon) li.setProperty('fanart_image', __addon__.getAddonInfo('fanart')) xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li) xbmcplugin.endOfDirectory(addon_handle)