summaryrefslogtreecommitdiff
path: root/plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py')
-rw-r--r--plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py62
1 files changed, 38 insertions, 24 deletions
diff --git a/plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py b/plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py
index 3b413ce..9315387 100644
--- a/plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py
+++ b/plugin.video.vrt.nu/resources/lib/vrtplayer/vrtplayer.py
@@ -8,6 +8,8 @@ from resources.lib.vrtplayer import metadatacollector
from resources.lib.vrtplayer import statichelper
from resources.lib.vrtplayer import actions
from resources.lib.vrtplayer import metadatacreator
+from resources.lib.kodiwrappers import sortmethod
+
class VRTPlayer:
@@ -21,33 +23,38 @@ class VRTPlayer:
_VRTNU_BASE_URL = urljoin(_VRT_BASE, "/vrtnu/")
_VRTNU_SEARCH_URL = "https://search.vrt.be/suggest?facets[categories]="
- def __init__(self, addon, addon_path):
+ def __init__(self, addon_path, kodi_wrapper, url_to_stream_service):
self.metadata_collector = metadatacollector.MetadataCollector()
- self._addon = addon
self._addon_path = addon_path
+ self._kodi_wrapper = kodi_wrapper
+ self._url_toStream_service = url_to_stream_service
- def get_main_menu_items(self):
- return {helperobjects.TitleItem(self._addon.getLocalizedString(32091), {'action': actions.LISTING_AZ}, False,
+ def show_main_menu_items(self):
+ menu_items = {helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32091), {'action': actions.LISTING_AZ}, False,
None),
- helperobjects.TitleItem(self._addon.getLocalizedString(32092), {'action': actions.LISTING_CATEGORIES},
+ helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32092), {'action': actions.LISTING_CATEGORIES},
False, None),
- helperobjects.TitleItem(self._addon.getLocalizedString(32100), {'action': actions.LISTING_LIVE}, False,
+ helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32100), {'action': actions.LISTING_LIVE}, False,
None)}
+ self._kodi_wrapper.show_listing(menu_items, sortmethod.ALPHABET)
- def get_az_menu_items(self):
+ def show_az_menu_items(self):
joined_url = urljoin(self._VRTNU_BASE_URL, "./a-z/")
- return self.__get_menu_items(joined_url, {"class": "tile"}, actions.LISTING_VIDEOS, self.metadata_collector.get_az_metadata)
+ menu_items = self.__get_menu_items(joined_url, {"class": "tile"}, actions.LISTING_VIDEOS,
+ self.metadata_collector.get_az_metadata)
+ self._kodi_wrapper.show_listing(menu_items, sortmethod.ALPHABET)
- def get_category_menu_items(self):
+ def show_category_menu_items(self):
joined_url = urljoin(self._VRTNU_BASE_URL, "./categorieen/")
- return self.__get_menu_items(joined_url, {"class": "tile tile--category"}, actions.LISTING_CATEGORY_VIDEOS)
+ menu_items = self.__get_menu_items(joined_url, {"class": "tile tile--category"}, actions.LISTING_CATEGORY_VIDEOS)
+ self._kodi_wrapper.show_listing(menu_items, sortmethod.ALPHABET)
- def get_video_category_episodes(self, path):
+ def show_video_category_episodes(self, path):
category = path.split('/')[-2]
joined_url = self._VRTNU_SEARCH_URL + category
response = requests.get(joined_url)
programs = response.json()
- listing = []
+ menu_items = []
for program in programs:
title = program["title"]
plot = BeautifulSoup(program["description"], "html.parser").text
@@ -62,25 +69,33 @@ class VRTPlayer:
"")
item = helperobjects.TitleItem(title, {'action': actions.LISTING_VIDEOS, 'video': link_to_video},
False, thumbnail, video_dictionary)
- listing.append(item)
- return listing
+ menu_items.append(item)
+ self._kodi_wrapper.show_listing(menu_items, sortmethod.ALPHABET)
- def get_livestream_items(self):
- return {helperobjects.TitleItem(self._addon.getLocalizedString(32101),
+ def play_vrtnu_video(self, url):
+ stream = self._url_toStream_service.get_stream_from_url(url)
+ self._kodi_wrapper.play_video(stream)
+
+ def play_livestream(self, url):
+ self._kodi_wrapper.play_livestream(url)
+
+ def show_livestream_items(self):
+ livestream_items = {helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32101),
{'action': actions.PLAY_LIVE, 'video': self._EEN_LIVESTREAM},
True, self.__get_media("een.png")),
- helperobjects.TitleItem(self._addon.getLocalizedString(32102),
+ helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32102),
{'action': actions.PLAY_LIVE, 'video': self._CANVAS_LIVESTREAM_},
True, self.__get_media("canvas.png")),
- helperobjects.TitleItem(self._addon.getLocalizedString(32103),
+ helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32103),
{'action': actions.PLAY_LIVE, 'video': self._KETNET_LIVESTREAM},
True, self.__get_media("ketnet.png")),
- helperobjects.TitleItem(self._addon.getLocalizedString(32104),
+ helperobjects.TitleItem(self._kodi_wrapper.get_localized_string(32104),
{'action': actions.PLAY_LIVE, 'video': self._SPORZA_LIVESTREAM},
True, self.__get_media("sporza.png"))
}
+ self._kodi_wrapper.show_listing(livestream_items, sortmethod.ALPHABET)
- def get_videos(self, path):
+ def show_videos(self, path):
url = urljoin(self._VRT_BASE, path)
#xbmc.log(url, xbmc.LOGWARNING)
# go to url.relevant gets redirected and go on with this url
@@ -102,7 +117,7 @@ class VRTPlayer:
title_items.extend(self.__get_multiple_videos(soup))
else:
title_items.extend(self.__get_single_video(relevant_path.url, soup))
- return title_items
+ self._kodi_wrapper.show_listing(title_items)
def __get_episodes(self, option_tags):
@@ -118,7 +133,6 @@ class VRTPlayer:
title_items.append(helperobjects.TitleItem(title, {"action" : actions.LISTING_VIDEOS, 'video':path}, False))
return title_items
-
def __get_multiple_videos(self, tiles):
title_items = []
episode_list = tiles.find("div", {"id": "episodelist__slider"})
@@ -136,7 +150,7 @@ class VRTPlayer:
path = tile["href"]
video_dictionary = self.metadata_collector.get_multiple_layout_episode_metadata(tile)
- title_items.append(helperobjects.TitleItem(title, {"action": "play", "video": path}, True, thumbnail, video_dictionary))
+ title_items.append(helperobjects.TitleItem(title, {"action": actions.PLAY, "video": path}, True, thumbnail, video_dictionary))
return title_items
def __get_single_video(self, path, soup):
@@ -149,7 +163,7 @@ class VRTPlayer:
vrt_video = soup.find(class_="vrtvideo")
thumbnail = VRTPlayer.__format_image_url(vrt_video)
- title_items.append(helperobjects.TitleItem(list_item_title, {"action": "play", "video": path}, True, thumbnail, video_dictionary))
+ title_items.append(helperobjects.TitleItem(list_item_title, {"action": actions.PLAY, "video": path}, True, thumbnail, video_dictionary))
return title_items
def __get_media(self, file_name):