diff --git a/plugin.video.example/addon.xml b/plugin.video.example/addon.xml deleted file mode 100644 index f52a4c7..0000000 --- a/plugin.video.example/addon.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - video - - - Example Kodi Video Plugin - An example video plugin for Kodi mediacenter. - Free sample videos are provided by www.vidsplay.com. - - diff --git a/plugin.video.example/default.py b/plugin.video.example/default.py deleted file mode 100644 index ed4568b..0000000 --- a/plugin.video.example/default.py +++ /dev/null @@ -1,167 +0,0 @@ -# -*- coding: utf-8 -*- -# Module: default -# Author: Roman V. M. -# Created on: 28.11.2014 -# License: GPL v.3 https://www.gnu.org/copyleft/gpl.html - -import sys -from urlparse import parse_qsl -import xbmcgui -import xbmcplugin - -# Get the plugin url in plugin:// notation. -__url__ = sys.argv[0] -# Get the plugin handle as an integer number. -__handle__ = int(sys.argv[1]) - -# Free sample videos are provided by www.vidsplay.com -# Here we use a fixed set of properties simply for demonstrating purposes -# In a "real life" plugin you will need to get info and links to video files/streams -# from some web-site or online service. -VIDEOS = {'Animals': [{'name': 'Crab', - 'thumb': 'http://www.vidsplay.com/vids/crab.jpg', - 'video': 'http://www.vidsplay.com/vids/crab.mp4'}, - {'name': 'Alligator', - 'thumb': 'http://www.vidsplay.com/vids/alligator.jpg', - 'video': 'http://www.vidsplay.com/vids/alligator.mp4'}, - {'name': 'Turtle', - 'thumb': 'http://www.vidsplay.com/vids/turtle.jpg', - 'video': 'http://www.vidsplay.com/vids/turtle.mp4'} - ], - 'Cars': [{'name': 'Postal Truck', - 'thumb': 'http://www.vidsplay.com/vids/us_postal.jpg', - 'video': 'http://www.vidsplay.com/vids/us_postal.mp4'}, - {'name': 'Traffic', - 'thumb': 'http://www.vidsplay.com/vids/traffic1.jpg', - 'video': 'http://www.vidsplay.com/vids/traffic1.avi'}, - {'name': 'Traffic Arrows', - 'thumb': 'http://www.vidsplay.com/vids/traffic_arrows.jpg', - 'video': 'http://www.vidsplay.com/vids/traffic_arrows.mp4'} - ], - 'Food': [{'name': 'Chicken', - 'thumb': 'http://www.vidsplay.com/vids/chicken.jpg', - 'video': 'http://www.vidsplay.com/vids/bbqchicken.mp4'}, - {'name': 'Hamburger', - 'thumb': 'http://www.vidsplay.com/vids/hamburger.jpg', - 'video': 'http://www.vidsplay.com/vids/hamburger.mp4'}, - {'name': 'Pizza', - 'thumb': 'http://www.vidsplay.com/vids/pizza.jpg', - 'video': 'http://www.vidsplay.com/vids/pizza.mp4'} - ]} - - -def get_categories(): - """ - Get the list of video categories. - Here you can insert some parsing code that retrieves - the list of video categories (e.g. 'Movies', 'TV-shows', 'Documentaries' etc.) - from some site or server. - :return: list - """ - return VIDEOS.keys() - - -def get_videos(category): - """ - Get the list of videofiles/streams. - Here you can insert some parsing code that retrieves - the list of videostreams in a given category from some site or server. - :param category: str - :return: list - """ - return VIDEOS[category] - - -def list_categories(): - """ - Create the list of video categories in the Kodi interface. - :return: None - """ - # Get video categories - categories = get_categories() - # Iterate through categories - for category in categories: - # Create a list item with a text label and a thumbnail image. - list_item = xbmcgui.ListItem(label=category, thumbnailImage=VIDEOS[category][0]['thumb']) - # Set a fanart image for the list item. - # Here we use the same image as the thumbnail for simplicity's sake. - list_item.setProperty('fanart_image', VIDEOS[category][0]['thumb']) - # Create a URL for the plugin recursive callback. - # Example: plugin://plugin.video.example/?action=listing&category=Animals - url = '{0}?action=listing&category={1}'.format(__url__, category) - # Add the list item to a virtual Kodi folder. - # isFolder=True means that this item opens a sub-list of lower level items. - xbmcplugin.addDirectoryItem(__handle__, url, list_item, isFolder=True) - # Add a sort method for the virtual folder items (alphabetically, ignore articles) - xbmcplugin.addSortMethod(__handle__, xbmcplugin.SORT_METHOD_LABEL_IGNORE_THE) - # Finish creating a virtual folder. - xbmcplugin.endOfDirectory(__handle__) - - -def list_videos(category): - """ - Create the list of playable videos in the Kodi interface. - :param category: str - :return: None - """ - # Get the list of videos in the category. - videos = get_videos(category) - # Iterate through videos. - for video in videos: - # Create a list item with a text label and a thumbnail image. - list_item = xbmcgui.ListItem(label=video['name'], thumbnailImage=video['thumb']) - # Set a fanart image for the list item. - # Here we use the same image as the thumbnail for simplicity's sake. - list_item.setProperty('fanart_image', video['thumb']) - # Set 'IsPlayable' property to 'true'. - # This is mandatory for playable items! - list_item.setProperty('IsPlayable', 'true') - # Create a URL for the plugin recursive callback. - # Example: plugin://plugin.video.example/?action=play&video=http://www.vidsplay.com/vids/crab.mp4 - url = '{0}?action=play&video={1}'.format(__url__, video['video']) - # Add the list item to a virtual Kodi folder. - # isFolder=False means that this item won't open any sub-list. - xbmcplugin.addDirectoryItem(__handle__, url, list_item, isFolder=False) - # Finish creating a virtual folder. - xbmcplugin.endOfDirectory(__handle__) - - -def play_video(path): - """ - Play a video by the provided path. - :param path: str - :return: None - """ - # Create a playable item with a path to play. - play_item = xbmcgui.ListItem(path=path) - # Pass the item to the Kodi player. - xbmcplugin.setResolvedUrl(__handle__, True, listitem=play_item) - - -def router(paramstring): - """ - Router function that calls other functions - depending on the provided paramstring - :param paramstring: - :return: - """ - # Parse a URL-encoded paramstring to the dictionary of - # {: } elements - params = dict(parse_qsl(paramstring[1:])) - # Check the parameters passed to the plugin - if params: - if params['action'] == 'listing': - # Display the list of videos in a provided category. - list_videos(params['category']) - elif params['action'] == 'play': - # Play a video from a provided URL. - play_video(params['video']) - else: - # If the plugin is called from Kodi UI without any parameters, - # display the list of video categories - list_categories() - - -if __name__ == '__main__': - # Call the router function and pass the plugin call parameters to it. - router(sys.argv[2]) diff --git a/plugin.video.example/icon.png b/plugin.video.example/icon.png deleted file mode 100644 index f3cdd9e..0000000 Binary files a/plugin.video.example/icon.png and /dev/null differ