def showWidgets(): url = ("{server}/emby/Movies/Recommendations" + "?userId={userid}" + "&categoryLimit=1" + "&ItemLimit={ItemLimit}" + "&format=json" + "&ImageTypeLimit=1" + "&IsMissing=False") addMenuDirectoryItem(i18n('movies_recommendations'), "plugin://plugin.video.embycon/?mode=GET_CONTENT&media_type=Movies&url=" + urllib.quote(url)) url = ("{server}/emby/Users/{userid}/Items" + "?Limit={ItemLimit}" + "&format=json" + "&ImageTypeLimit=1" + "&IsMissing=False" + "&Filters={IsUnplayed,}IsNotFolder" + "&Recursive=true" + "&SortBy=Random" + "&SortOrder=Descending" + "&IsVirtualUnaired=false" + "&IsMissing=False" + "&IncludeItemTypes=Movie") addMenuDirectoryItem(i18n('movies_random'), "plugin://plugin.video.embycon/?mode=GET_CONTENT&media_type=Movies&url=" + urllib.quote(url)) #addMenuDirectoryItem(i18n('movies_recently_added'), 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_movies') #addMenuDirectoryItem(i18n('movies_in_progress'), 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=inprogress_movies') #addMenuDirectoryItem(i18n('episodes_recently_added'), 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_episodes') #addMenuDirectoryItem(i18n('episodes_in_progress'), 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=inprogress_episodes') #addMenuDirectoryItem(i18n('episodes_up_next'), 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=nextup_episodes') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showSearch(): addMenuDirectoryItem(i18n('movies'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Movie') addMenuDirectoryItem(i18n('tvshows'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Series') addMenuDirectoryItem(i18n('episodes'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Episode') addMenuDirectoryItem("Song", 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Audio') addMenuDirectoryItem("Album", 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=MusicAlbum') #addMenuDirectoryItem("Artist", 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=MusicArtists') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showYearsList(): server = downloadUtils.getServer() if server is None: return jsonData = downloadUtils.downloadUrl("{server}/emby/Years" + "?SortBy=Name" + "&SortOrder=Descending" + "&IncludeItemTypes=Movie" + "&Recursive=true" + "&UserId={userid}" + "&format=json") log.debug("YEAR_LIST_DATA: {0}", jsonData) result = json.loads(jsonData) if result is not None: result = result.get("Items") else: result = [] collections = [] for year in result: item_data = {} item_data['title'] = year.get("Name") item_data['media_type'] = "Movies" item_data['path'] = ('{server}/emby/Users/{userid}/Items' '?Fields={field_filters}' + '&Recursive=true' + '&Years=' + year.get("Name") + '&IncludeItemTypes=Movie' + '&ImageTypeLimit=1' + "&SortBy=Name" + "&SortOrder=Ascending" + '&format=json') collections.append(item_data) for collection in collections: url = sys.argv[0] + ("?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT" + "&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} ({1})", collection.get('title'), url) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url) xbmcplugin.addSortMethod(int(sys.argv[1]), xbmcplugin.SORT_METHOD_LABEL) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showMovieAlphaList(): log.debug("== ENTER: showMovieAlphaList() ==") settings = xbmcaddon.Addon() server = downloadUtils.getServer() if server is None: return collections = [] item_data = {} item_data['title'] = "#" item_data['media_type'] = "Movies" item_data['path'] = ('{server}/emby/Users/{userid}/Items' + '?Fields={field_filters}' + '&Recursive=true' + '&NameLessThan=A' + '&IncludeItemTypes=Movie' + '&ImageTypeLimit=1' + '&format=json') collections.append(item_data) alphaList = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "Y", "Z"] for alphaName in alphaList: item_data = {} item_data['title'] = alphaName item_data['media_type'] = "Movies" item_data['path'] = ('{server}/emby/Users/{userid}/Items' + '?Fields={field_filters}' + '&Recursive=true' + '&NameStartsWith=' + alphaName + '&IncludeItemTypes=Movie' + "&SortBy=Name" + "&SortOrder=Ascending" + '&ImageTypeLimit=1&format=json') collections.append(item_data) for collection in collections: url = (sys.argv[0] + "?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} ({1})", collection.get('title'), url) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showSearch(): addMenuDirectoryItem( i18n('movies'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Movie') addMenuDirectoryItem( i18n('tvshows'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Series') addMenuDirectoryItem( i18n('episodes'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Episode') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showWidgets(): settings = xbmcaddon.Addon() show_x_filtered_items = settings.getSetting("show_x_filtered_items") url = ("{server}/emby/Movies/Recommendations" + "?userId={userid}" + "&categoryLimit=1" + "&ItemLimit={ItemLimit}" + "&format=json" + "&ImageTypeLimit=1" + '&Fields={field_filters}' + "&Filters={IsUnplayed}" + "&IsMissing=False") addMenuDirectoryItem(string_load(30324) + " (" + show_x_filtered_items + ")", "plugin://plugin.video.embycon/?mode=GET_CONTENT&use_cache=false&media_type=Movies&url=" + urllib.quote(url)) url = ("{server}/emby/Users/{userid}/Items" + "?SortBy=Random" + "&Limit={ItemLimit}" + '&CollapseBoxSetItems=false' + '&GroupItemsIntoCollections=false' + "&format=json" + '&Fields={field_filters}' + "&ImageTypeLimit=1" + "&IsMissing=False" + "&Filters={IsUnplayed,}IsNotFolder" + "&Recursive=true" + "&SortBy=Random" + #"&SortOrder=Descending" + "&IsVirtualUnaired=false" + "&IsMissing=False" + "&IncludeItemTypes=Movie") addMenuDirectoryItem(string_load(30269) + " (" + show_x_filtered_items + ")", "plugin://plugin.video.embycon/?mode=GET_CONTENT&use_cache=false&media_type=Movies&url=" + urllib.quote(url)) addMenuDirectoryItem(string_load(30257) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_movies') addMenuDirectoryItem(string_load(30258) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=inprogress_movies') addMenuDirectoryItem(string_load(30287) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_tvshows') addMenuDirectoryItem(string_load(30263) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_episodes') addMenuDirectoryItem(string_load(30264) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=inprogress_episodes') addMenuDirectoryItem(string_load(30265) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=nextup_episodes') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def displaySections(): log.debug("== ENTER: displaySections() ==") xbmcplugin.setContent(int(sys.argv[1]), 'files') server = downloadUtils.getServer() if server is None: return # Add collections collections = getCollections() if collections: for collection in collections: if collection.get("item_type") == "plugin_link": plugin_path = collection['path'] addMenuDirectoryItem(collection.get('title', i18n('unknown')), plugin_path, thumbnail=collection.get("thumbnail")) else: url = (sys.argv[0] + "?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT&media_type=" + collection["media_type"]) if collection.get("name_format") is not None: url += "&name_format=" + urllib.quote( collection.get("name_format")) log.debug("addMenuDirectoryItem: {0} ({1})", collection.get('title'), url) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url, thumbnail=collection.get("thumbnail")) addMenuDirectoryItem( i18n('movies_year'), "plugin://plugin.video.embycon/?mode=MOVIE_YEARS") addMenuDirectoryItem( i18n('movies_genre'), "plugin://plugin.video.embycon/?mode=GENRES&item_type=movie") addMenuDirectoryItem( i18n('movies_az'), "plugin://plugin.video.embycon/?mode=MOVIE_ALPHA") addMenuDirectoryItem( i18n('tvshow_genre'), "plugin://plugin.video.embycon/?mode=GENRES&item_type=tvshow") addMenuDirectoryItem(i18n('search'), "plugin://plugin.video.embycon/?mode=SEARCH") addMenuDirectoryItem( i18n('show_clients'), "plugin://plugin.video.embycon/?mode=SHOW_SERVER_SESSIONS") addMenuDirectoryItem( i18n('change_user'), "plugin://plugin.video.embycon/?mode=CHANGE_USER") addMenuDirectoryItem( i18n('detect_server'), "plugin://plugin.video.embycon/?mode=DETECT_SERVER_USER") addMenuDirectoryItem(i18n('show_settings'), "plugin://plugin.video.embycon/?mode=SHOW_SETTINGS") # only add these if we have other collection which means we have a valid server conn if collections: addMenuDirectoryItem( i18n('cache_textures'), "plugin://plugin.video.embycon/?mode=CACHE_ARTWORK") addMenuDirectoryItem(i18n('widgets'), "plugin://plugin.video.embycon/?mode=WIDGETS") xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showGenreList(params): log.debug("showGenreList: {0}", params) server = downloadUtils.getServer() if server is None: return parent_id = params.get("parent_id") item_type = params.get("item_type") kodi_type = "Movies" emby_type = "Movie" if item_type is not None and item_type == "tvshow": emby_type = "Series" kodi_type = "tvshows" url = ("{server}/emby/Genres?" + "SortBy=SortName" + "&SortOrder=Ascending" + "&IncludeItemTypes=" + emby_type + "&Recursive=true" + "&UserId={userid}") if parent_id is not None: url += "&parentid=" + parent_id data_manager = DataManager() result = data_manager.GetContent(url) if result is not None: result = result.get("Items") else: result = [] collections = [] xbmcplugin.setContent(int(sys.argv[1]), 'genres') for genre in result: item_data = {} item_data['title'] = genre.get("Name") item_data['media_type'] = kodi_type item_data['thumbnail'] = downloadUtils.getArtwork(genre, "Primary", server=server) url = ("{server}/emby/Users/{userid}/Items" + "?Fields={field_filters}" + "&Recursive=true" + "&GenreIds=" + genre.get("Id") + "&IncludeItemTypes=" + emby_type + "&ImageTypeLimit=1") if parent_id is not None: url += "&parentid=" + parent_id item_data['path'] = url collections.append(item_data) for collection in collections: url = sys.argv[0] + ("?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT" + "&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} - {1} - {2}", collection.get('title'), url, collection.get("thumbnail")) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url, thumbnail=collection.get("thumbnail")) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showMoviePages(params): log.debug("showMoviePages: {0}", params) parent_id = params.get("parent_id") settings = xbmcaddon.Addon() group_movies = settings.getSetting('group_movies') == "true" url = ('{server}/emby/Users/{userid}/Items' + '?IsVirtualUnaired=false' + '&CollapseBoxSetItems=' + str(group_movies) + '&GroupItemsIntoCollections=' + str(group_movies) + '&Recursive=true' + "&IncludeItemTypes=Movie" '&IsMissing=False' + '&ImageTypeLimit=0' + '&format=json') if parent_id: url += "&ParentId=" + parent_id data_manager = DataManager() result = data_manager.GetContent(url) if result is None: return total_results = result.get("TotalRecordCount", 0) log.debug("showMoviePages TotalRecordCount {0}", total_results) if result == 0: return page_limit = int(settings.getSetting('moviePageSize')) if page_limit == 0: page_limit = 20 start_index = 0 collections = [] while start_index < total_results: item_url = ("{server}/emby/Users/{userid}/Items" + "?IsVirtualUnaired=false" + '&CollapseBoxSetItems=' + str(group_movies) + '&GroupItemsIntoCollections=' + str(group_movies) + "&Recursive=true" + "&IsMissing=False" + "&IncludeItemTypes=Movie" "&Fields={field_filters}" + "&ImageTypeLimit=1" + "&SortBy=Name" + "&SortOrder=Ascending" + "&format=json") if parent_id: item_url += "&ParentId=" + parent_id item_url += "&StartIndex=" + str(start_index) + "&Limit=" + str(page_limit) page_upper = start_index + page_limit if page_upper > total_results: page_upper = total_results item_data = {} item_data['title'] = "Page (" + str(start_index + 1) + " - " + str(page_upper) + ")" item_data['path'] = item_url item_data['media_type'] = 'movies' collections.append(item_data) start_index = start_index + page_limit for collection in collections: content_url = urllib.quote(collection['path']) url = sys.argv[0] + ("?url=" + content_url + "&mode=GET_CONTENT" + "&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} - {1} - {2}", collection.get('title'), url, collection.get("art")) addMenuDirectoryItem(collection.get('title', string_load(30250)), url, art=collection.get("art")) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def displaySections(): log.debug("== ENTER: displaySections() ==") xbmcplugin.setContent(int(sys.argv[1]), 'files') server = downloadUtils.getServer() if server is None: return # Add collections collections = getCollections() if collections: for collection in collections: if collection.get("item_type") == "plugin_link": plugin_path = collection['path'] addMenuDirectoryItem(collection.get('title', string_load(30250)), plugin_path, art=collection.get("art")) else: url = (sys.argv[0] + "?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT&media_type=" + collection["media_type"]) if collection.get("name_format") is not None: url += "&name_format=" + urllib.quote(collection.get("name_format")) if not collection.get("use_cache", True): url += "&use_cache=false" log.debug("addMenuDirectoryItem: {0} ({1})", collection.get('title'), url) addMenuDirectoryItem(collection.get('title', string_load(30250)), url, art=collection.get("art")) addMenuDirectoryItem(string_load(30251), "plugin://plugin.video.embycon/?mode=GENRES&item_type=movie") addMenuDirectoryItem(string_load(30252), "plugin://plugin.video.embycon/?mode=MOVIE_ALPHA") addMenuDirectoryItem("Movie (Pages)", "plugin://plugin.video.embycon/?mode=MOVIE_PAGES") addMenuDirectoryItem(string_load(30289), "plugin://plugin.video.embycon/?mode=GENRES&item_type=tvshow") addMenuDirectoryItem(string_load(30246), "plugin://plugin.video.embycon/?mode=SEARCH") addMenuDirectoryItem(string_load(30017), "plugin://plugin.video.embycon/?mode=SHOW_SERVER_SESSIONS") addMenuDirectoryItem(string_load(30253), "plugin://plugin.video.embycon/?mode=CHANGE_USER") addMenuDirectoryItem(string_load(30011), "plugin://plugin.video.embycon/?mode=DETECT_SERVER_USER") addMenuDirectoryItem(string_load(30254), "plugin://plugin.video.embycon/?mode=SHOW_SETTINGS") # only add these if we have other collection which means we have a valid server conn if collections: addMenuDirectoryItem(string_load(30293), "plugin://plugin.video.embycon/?mode=CACHE_ARTWORK") addMenuDirectoryItem(string_load(30247), "plugin://plugin.video.embycon/?mode=WIDGETS") xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showGenreList(params): log.debug("showGenreList: {0}", params) server = downloadUtils.getServer() if server is None: return parent_id = params.get("parent_id") item_type = params.get("item_type") kodi_type = "Movies" emby_type = "Movie" if item_type is not None and item_type == "tvshow": emby_type = "Series" kodi_type = "tvshows" url = ("{server}/emby/Genres?" + "SortBy=Name" + "&SortOrder=Ascending" + "&IncludeItemTypes=" + emby_type + "&Recursive=true" + "&UserId={userid}") if parent_id is not None: url += "&parentid=" + parent_id data_manager = DataManager() result = data_manager.GetContent(url) if result is not None: result = result.get("Items") else: result = [] settings = xbmcaddon.Addon() group_movies = settings.getSetting('group_movies') == "true" collections = [] xbmcplugin.setContent(int(sys.argv[1]), 'genres') for genre in result: art = getArt(item=genre, server=server) item_data = {} item_data['title'] = genre.get("Name") item_data['media_type'] = kodi_type item_data['art'] = art url = ("{server}/emby/Users/{userid}/Items" + "?Fields={field_filters}" + "&Recursive=true" + '&CollapseBoxSetItems=' + str(group_movies) + '&GroupItemsIntoCollections=' + str(group_movies) + "&GenreIds=" + genre.get("Id") + "&IncludeItemTypes=" + emby_type + "&ImageTypeLimit=1") if parent_id is not None: url += "&parentid=" + parent_id item_data['path'] = url collections.append(item_data) for collection in collections: url = sys.argv[0] + ("?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT" + "&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} - {1} - {2}", collection.get('title'), url, collection.get("art")) addMenuDirectoryItem(collection.get('title', string_load(30250)), url, art=collection.get("art")) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def show_search(): addMenuDirectoryItem(string_load(30231), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Movie') addMenuDirectoryItem(string_load(30229), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Series') addMenuDirectoryItem(string_load(30235), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Episode') addMenuDirectoryItem(string_load(30337), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Audio') addMenuDirectoryItem(string_load(30338), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=MusicAlbum') addMenuDirectoryItem(string_load(30339), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Person') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showWidgets(): settings = xbmcaddon.Addon() show_x_filtered_items = settings.getSetting("show_x_filtered_items") url = ("{server}/emby/Movies/Recommendations" + "?userId={userid}" + "&categoryLimit=1" + "&ItemLimit={ItemLimit}" + "&format=json" + "&ImageTypeLimit=1" + "&Fields={field_filters}" + "&Filters=IsUnplayed" + "&IsPlayed=false" + "&IsMissing=False") addMenuDirectoryItem(string_load(30324) + " (" + show_x_filtered_items + ")", "plugin://plugin.video.embycon/?mode=GET_CONTENT&use_cache=false&media_type=Movies&url=" + urllib.quote(url)) url = ("{server}/emby/Users/{userid}/Items" + "?Limit={ItemLimit}" + "&Ids={random_movies}" + "&Fields={field_filters}" + "&ImageTypeLimit=1") addMenuDirectoryItem(string_load(30269) + " (" + show_x_filtered_items + ")", "plugin://plugin.video.embycon/?mode=GET_CONTENT&use_cache=false&media_type=Movies&url=" + urllib.quote(url)) addMenuDirectoryItem(" - " + string_load(30257) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_movies') addMenuDirectoryItem(" - " + string_load(30258) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=inprogress_movies') addMenuDirectoryItem(" - " + string_load(30269) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=random_movies') addMenuDirectoryItem(" - " + string_load(30287) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_tvshows') addMenuDirectoryItem(" - " + string_load(30263) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=recent_episodes') addMenuDirectoryItem(" - " + string_load(30264) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=inprogress_episodes') addMenuDirectoryItem(" - " + string_load(30265) + " (" + show_x_filtered_items + ")", 'plugin://plugin.video.embycon/?mode=WIDGET_CONTENT&type=nextup_episodes') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def show_search(): addMenuDirectoryItem( i18n('movies'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Movie') addMenuDirectoryItem( i18n('tvshows'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Series') addMenuDirectoryItem( i18n('episodes'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Episode') addMenuDirectoryItem( i18n('song'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Audio') addMenuDirectoryItem( i18n('album'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=MusicAlbum') addMenuDirectoryItem( i18n('person'), 'plugin://plugin.video.embycon/?mode=NEW_SEARCH&item_type=Person') xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showGenreList(params): log.debug("showGenreList: {0}", params) server = downloadUtils.getServer() if server is None: return parent_id = params.get("parent_id") item_type = params.get("item_type") kodi_type = "Movies" emby_type = "Movie" if item_type is not None and item_type == "tvshow": emby_type = "Series" kodi_type = "tvshows" url = ("{server}/emby/Genres?" + "SortBy=Name" + "&SortOrder=Ascending" + "&IncludeItemTypes=" + emby_type + "&Recursive=true" + "&UserId={userid}") if parent_id is not None: url += "&parentid=" + parent_id data_manager = DataManager() result = data_manager.GetContent(url) if result is not None: result = result.get("Items") else: result = [] collections = [] xbmcplugin.setContent(int(sys.argv[1]), 'genres') for genre in result: art = getArt(item=genre, server=server) item_data = {} item_data['title'] = genre.get("Name") item_data['media_type'] = kodi_type item_data['art'] = art url = ("{server}/emby/Users/{userid}/Items" + "?Fields={field_filters}" + "&Recursive=true" + "&GenreIds=" + genre.get("Id") + "&IncludeItemTypes=" + emby_type + "&ImageTypeLimit=1") if parent_id is not None: url += "&parentid=" + parent_id item_data['path'] = url collections.append(item_data) for collection in collections: url = sys.argv[0] + ("?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT" + "&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} - {1} - {2}", collection.get('title'), url, collection.get("art")) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url, art=collection.get("art")) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def displaySections(): log.debug("== ENTER: displaySections() ==") xbmcplugin.setContent(int(sys.argv[1]), 'files') server = downloadUtils.getServer() if server is None: return # Add collections collections = getCollections() if collections: for collection in collections: if collection.get("item_type") == "plugin_link": plugin_path = collection['path'] addMenuDirectoryItem(collection.get('title', i18n('unknown')), plugin_path, art=collection.get("art")) else: url = (sys.argv[0] + "?url=" + urllib.quote(collection['path']) + "&mode=GET_CONTENT&media_type=" + collection["media_type"]) if collection.get("name_format") is not None: url += "&name_format=" + urllib.quote(collection.get("name_format")) log.debug("addMenuDirectoryItem: {0} ({1})", collection.get('title'), url) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url, art=collection.get("art")) addMenuDirectoryItem(i18n('movies_year'), "plugin://plugin.video.embycon/?mode=MOVIE_YEARS") addMenuDirectoryItem(i18n('movies_genre'), "plugin://plugin.video.embycon/?mode=GENRES&item_type=movie") addMenuDirectoryItem(i18n('movies_az'), "plugin://plugin.video.embycon/?mode=MOVIE_ALPHA") addMenuDirectoryItem("Movie (Pages)", "plugin://plugin.video.embycon/?mode=MOVIE_PAGES") addMenuDirectoryItem(i18n('tvshow_genre'), "plugin://plugin.video.embycon/?mode=GENRES&item_type=tvshow") addMenuDirectoryItem(i18n('search'), "plugin://plugin.video.embycon/?mode=SEARCH") addMenuDirectoryItem(i18n('show_clients'), "plugin://plugin.video.embycon/?mode=SHOW_SERVER_SESSIONS") addMenuDirectoryItem(i18n('change_user'), "plugin://plugin.video.embycon/?mode=CHANGE_USER") addMenuDirectoryItem(i18n('detect_server'), "plugin://plugin.video.embycon/?mode=DETECT_SERVER_USER") addMenuDirectoryItem(i18n('show_settings'), "plugin://plugin.video.embycon/?mode=SHOW_SETTINGS") # only add these if we have other collection which means we have a valid server conn if collections: addMenuDirectoryItem(i18n('cache_textures'), "plugin://plugin.video.embycon/?mode=CACHE_ARTWORK") addMenuDirectoryItem(i18n('widgets'), "plugin://plugin.video.embycon/?mode=WIDGETS") xbmcplugin.endOfDirectory(int(sys.argv[1]))
def showMoviePages(params): log.debug("showMoviePages: {0}", params) parent_id = params.get("parent_id") url = ('{server}/emby/Users/{userid}/Items' + '?IsVirtualUnaired=false' + '&CollapseBoxSetItems=true' + '&Recursive=true' + "&IncludeItemTypes=Movie" '&IsMissing=False' + '&ImageTypeLimit=0' + '&format=json') if parent_id: url += "&ParentId=" + parent_id data_manager = DataManager() result = data_manager.GetContent(url) if result is None: return total_results = result.get("TotalRecordCount", 0) log.debug("showMoviePages TotalRecordCount {0}", total_results) if result == 0: return settings = xbmcaddon.Addon() page_limit = int(settings.getSetting('moviePageSize')) if page_limit == 0: page_limit = 20 start_index = 0 collections = [] while start_index < total_results: item_url = ("{server}/emby/Users/{userid}/Items" + "?IsVirtualUnaired=false" + "&CollapseBoxSetItems=true" + "&Recursive=true" + "&IsMissing=False" + "&IncludeItemTypes=Movie" "&Fields={field_filters}" + "&ImageTypeLimit=1" + "&SortBy=Name" + "&SortOrder=Ascending" + "&format=json") if parent_id: item_url += "&ParentId=" + parent_id item_url += "&StartIndex=" + str(start_index) + "&Limit=" + str(page_limit) page_upper = start_index + page_limit if page_upper > total_results: page_upper = total_results item_data = {} item_data['title'] = "Page (" + str(start_index + 1) + " - " + str(page_upper) + ")" item_data['path'] = item_url item_data['media_type'] = 'movies' collections.append(item_data) start_index = start_index + page_limit for collection in collections: content_url = urllib.quote(collection['path']) url = sys.argv[0] + ("?url=" + content_url + "&mode=GET_CONTENT" + "&media_type=" + collection["media_type"]) log.debug("addMenuDirectoryItem: {0} - {1} - {2}", collection.get('title'), url, collection.get("art")) addMenuDirectoryItem(collection.get('title', i18n('unknown')), url, art=collection.get("art")) xbmcplugin.endOfDirectory(int(sys.argv[1]))