def PopWindowStack(): if windowstack: window_type, content_id = windowstack.pop() if window_type == "video": from DialogVideoInfo import DialogVideoInfo dialog = DialogVideoInfo(u'script-%s-DialogVideoInfo.xml' % __addonname__, __cwd__, id=content_id) dialog.doModal() elif window_type == "actor": from DialogActorInfo import DialogActorInfo dialog = DialogActorInfo(u'script-%s-DialogInfo.xml' % __addonname__, __cwd__, id=content_id) dialog.doModal() elif window_type == "list": from DialogVideoList import DialogVideoList dialog = DialogVideoList(u'script-%s-VideoList.xml' % __addonname__, __cwd__, listitems=content_id) dialog.doModal()
def _StartInfoActions(self): for info in self.infos: ########### Images ##################### if info == 'xkcd': passDataToSkin('XKCD', GetXKCDInfo(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'flickr': passDataToSkin('Flickr', GetFlickrImages(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'cyanide': passDataToSkin('CyanideHappiness', GetCandHInfo(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'dailybabes': passDataToSkin('DailyBabes', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('DailyBabes', GetDailyBabes(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'dailybabe': passDataToSkin('DailyBabe', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('DailyBabe', GetDailyBabes(single=True), self.prop_prefix, self.window, self.control, self.handle, self.limit) ########### Audio ##################### elif info == 'discography': passDataToSkin('Discography', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) Discography = GetDiscography(self.ArtistName) if len(Discography) == 0: Discography = GetArtistTopAlbums(self.Artist_mbid) passDataToSkin('Discography', Discography, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'mostlovedtracks': passDataToSkin('MostLovedTracks', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('MostLovedTracks', GetMostLovedTracks(self.ArtistName), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'artistdetails': passDataToSkin('Discography', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('MusicVideos', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) ArtistDetails = GetArtistDetails(self.ArtistName) if "audiodbid" in ArtistDetails: MusicVideos = GetMusicVideos(ArtistDetails["audiodbid"]) passDataToSkin('MusicVideos', MusicVideos, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('Discography', GetDiscography(self.ArtistName), self.prop_prefix, self.window, self.control, self.handle, self.limit) passHomeDataToSkin(ArtistDetails, self.prop_prefix) elif info == 'albuminfo': if self.id: AlbumDetails = GetAlbumDetails(self.id) Trackinfo = GetTrackDetails(self.id) passHomeDataToSkin(AlbumDetails, self.prop_prefix) passDataToSkin('Trackinfo', Trackinfo, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'albumshouts': passDataToSkin('Shout', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.ArtistName and self.AlbumName: passDataToSkin('Shout', GetAlbumShouts(self.ArtistName, self.AlbumName), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'artistshouts': passDataToSkin('Shout', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.ArtistName: passDataToSkin('Shout', GetArtistShouts(self.ArtistName), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'topartists': passDataToSkin('TopArtists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('TopArtists', GetTopArtists(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'hypedartists': passDataToSkin('HypedArtists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('HypedArtists', GetHypedArtists(), self.prop_prefix, self.window, self.control, self.handle, self.limit) ### RottenTomatoesMovies ################################################################################# elif info == 'intheaters': passDataToSkin('InTheatersMovies', GetRottenTomatoesMovies("movies/in_theaters"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'boxoffice': passDataToSkin('BoxOffice', GetRottenTomatoesMovies("movies/box_office"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'opening': passDataToSkin('Opening', GetRottenTomatoesMovies("movies/opening"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'comingsoon': passDataToSkin('ComingSoonMovies', GetRottenTomatoesMovies("movies/upcoming"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'toprentals': passDataToSkin('TopRentals', GetRottenTomatoesMovies("dvds/top_rentals"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'currentdvdreleases': passDataToSkin('CurrentDVDs', GetRottenTomatoesMovies("dvds/current_releases"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'newdvdreleases': passDataToSkin('NewDVDs', GetRottenTomatoesMovies("dvds/new_releases"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'upcomingdvds': passDataToSkin('UpcomingDVDs', GetRottenTomatoesMovies("dvds/upcoming"), self.prop_prefix, self.window, self.control, self.handle, self.limit) ### The MovieDB ########################################################################################## elif info == 'incinemas': passDataToSkin('InCinemasMovies', GetMovieDBMovies("now_playing"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'upcoming': passDataToSkin('UpcomingMovies', GetMovieDBMovies("upcoming"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'topratedmovies': passDataToSkin('TopRatedMovies', GetMovieDBMovies("top_rated"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'popularmovies': passDataToSkin('PopularMovies', GetMovieDBMovies("popular"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'airingtodaytvshows': passDataToSkin('AiringTodayTVShows', GetMovieDBTVShows("airing_today"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'onairtvshows': passDataToSkin('OnAirTVShows', GetMovieDBTVShows("on_the_air"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'topratedtvshows': passDataToSkin('TopRatedTVShows', GetMovieDBTVShows("top_rated"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'populartvshows': passDataToSkin('PopularTVShows', GetMovieDBTVShows("popular"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarmovies': passDataToSkin('SimilarMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: MovieId = self.id elif self.dbid and (int(self.dbid) > -1): MovieId = GetImdbIDFromDatabase("movie", self.dbid) log("IMDBId from local DB:" + str(MovieId)) else: MovieId = "" if MovieId: passDataToSkin('SimilarMovies', GetSimilarMovies(MovieId), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'studio': passDataToSkin('StudioInfo', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.studio: CompanyId = SearchforCompany(self.studio) passDataToSkin('StudioInfo', GetCompanyInfo(CompanyId), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'set': passDataToSkin('MovieSetItems', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.dbid and not "show" in str(self.type): name = GetMovieSetName(self.dbid) if name: self.setid = SearchForSet(name) if self.setid: SetData = GetSetMovies(self.setid) if SetData: passDataToSkin('MovieSetItems', SetData, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'movielists': passDataToSkin('MovieLists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.dbid: movieid = GetImdbIDFromDatabase("movie", self.dbid) log("MovieDB Id:" + str(movieid)) if movieid: passDataToSkin('MovieLists', GetMovieLists(movieid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'keywords': passDataToSkin('Keywords', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.dbid: movieid = GetImdbIDFromDatabase("movie", self.dbid) log("MovieDB Id:" + str(movieid)) if movieid: passDataToSkin('Keywords', GetMovieKeywords(movieid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'popularpeople': passDataToSkin('PopularPeople', GetPopularActorList(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'extendedinfo': from DialogVideoInfo import DialogVideoInfo if self.handle: xbmcplugin.endOfDirectory(self.handle) dialog = DialogVideoInfo(u'script-%s-DialogVideoInfo.xml' % __addonname__, __cwd__, id=self.id, dbid=self.dbid, imdbid=self.imdbid, name=self.name) dialog.doModal() elif info == 'extendedactorinfo': from DialogActorInfo import DialogActorInfo dialog = DialogActorInfo(u'script-%s-DialogInfo.xml' % __addonname__, __cwd__, id=self.id, name=self.name) dialog.doModal() elif info == 'extendedtvinfo': from DialogTVShowInfo import DialogTVShowInfo if self.handle: xbmcplugin.endOfDirectory(self.handle) dialog = DialogTVShowInfo(u'script-%s-DialogVideoInfo.xml' % __addonname__, __cwd__, id=self.id, dbid=self.dbid, imdbid=self.imdbid, name=self.name) dialog.doModal() elif info == 'seasoninfo': passDataToSkin("SeasonVideos", None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.tvshow and self.season: seasoninfo, videos = GetSeasonInfo(self.tvshow, self.season) passHomeDataToSkin(seasoninfo, self.prop_prefix) passDataToSkin("SeasonVideos", videos, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'directormovies': passDataToSkin('DirectorMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.director: directorid = GetPersonID(self.director) if directorid: passDataToSkin('DirectorMovies', GetDirectorMovies(directorid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'writermovies': passDataToSkin('WriterMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.writer and not self.writer.split(" / ")[0] == self.director.split(" / ")[0]: writerid = GetPersonID(self.writer) if writerid: passDataToSkin('WriterMovies', GetDirectorMovies(writerid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarmoviestrakt': passDataToSkin('SimilarTrakt', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if (self.id or self.dbid): if self.dbid: movieid = GetImdbIDFromDatabase("movie", self.dbid) else: movieid = self.id passDataToSkin('SimilarMovies', GetSimilarTrakt("movie", movieid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similartvshowstrakt': passDataToSkin('SimilarTrakt', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if (self.id or self.dbid): if self.dbid: if self.type == "episode": tvshowid = GetImdbIDFromDatabasefromEpisode(self.dbid) else: tvshowid = GetImdbIDFromDatabase("tvshow", self.dbid) else: tvshowid = self.id passDataToSkin('SimilarTVShows', GetSimilarTrakt("show", tvshowid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'airingshows': passDataToSkin('AiringShows', GetTraktCalendarShows("shows"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'premiereshows': passDataToSkin('PremiereShows', GetTraktCalendarShows("premieres"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'trendingshows': passDataToSkin('TrendingShows', GetTrendingShows(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'trendingmovies': passDataToSkin('TrendingMovies', GetTrendingMovies(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarartistsinlibrary': passDataToSkin('SimilarArtists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.Artist_mbid: passDataToSkin('SimilarArtists', GetSimilarArtistsInLibrary(self.Artist_mbid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'artistevents': passDataToSkin('ArtistEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.Artist_mbid: passDataToSkin('ArtistEvents', GetEvents(self.Artist_mbid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'youtubesearch': homewindow.setProperty('%sSearchValue' % self.prop_prefix, self.id) # set properties passDataToSkin('YoutubeSearch', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: passDataToSkin('YoutubeSearch', GetYoutubeSearchVideosV3(self.id, self.hd, self.orderby), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'youtubeplaylist': passDataToSkin('YoutubePlaylist', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: passDataToSkin('YoutubePlaylist', GetYoutubePlaylistVideos(self.id), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'youtubeusersearch': passDataToSkin('YoutubeUserSearch', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: passDataToSkin('YoutubeUserSearch', GetYoutubeUserVideos(self.id), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'nearevents': passDataToSkin('NearEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('NearEvents', GetNearEvents(self.tag, self.festivalsonly, self.lat, self.lon, self.location, self.distance), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'trackinfo': homewindow.setProperty('%sSummary' % self.prop_prefix, "") # set properties if self.ArtistName and self.TrackName: TrackInfo = GetTrackInfo(self.ArtistName, self.TrackName) homewindow.setProperty('%sSummary' % self.prop_prefix, TrackInfo["summary"]) # set properties elif info == 'venueevents': passDataToSkin('VenueEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.location: self.id = GetVenueID(self.location) if self.id: passDataToSkin('VenueEvents', GetVenueEvents(self.id), self.prop_prefix, self.window, self.control, self.handle, self.limit) else: Notify("Error", "Could not find venue") elif info == 'topartistsnearevents': passDataToSkin('TopArtistsNearEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) artists = GetXBMCArtists() events = GetArtistNearEvents(artists["result"]["artists"][0:49]) passDataToSkin('TopArtistsNearEvents', events, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'channels': channels = create_channel_list() # prettyprint(channels) elif info == 'favourites': if self.id: favourites = GetFavouriteswithType(self.id) else: favourites = GetFavourites() homewindow.setProperty('favourite.count', str(len(favourites))) if len(favourites) > 0: homewindow.setProperty('favourite.1.name', favourites[-1]["Label"]) passDataToSkin('Favourites', favourites, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'json': passDataToSkin('RSS', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) videos = GetYoutubeVideos(self.feed, self.prop_prefix) passDataToSkin('RSS', videos, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarlocal' and self.dbid: passDataToSkin('SimilarLocalMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passDataToSkin('SimilarLocalMovies', GetSimilarFromOwnLibrary(self.dbid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'iconpanel': passDataToSkin('IconPanel', GetIconPanel(1), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'weather': passDataToSkin('WeatherImages', GetWeatherImages(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'updatexbmcdatabasewithartistmbidbg': SetMusicBrainzIDsForAllArtists(False, False) elif info == 'setfocus': self.control = "" # workaround to avoid breaking PlayMedia xbmc.executebuiltin("SetFocus(22222)") elif info == 'playliststats': GetPlaylistStats(self.id) elif info == "sortletters": listitems = GetSortLetters(self.path, self.id) passDataToSkin('SortLetters', listitems, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'slideshow': windowid = xbmcgui.getCurrentWindowId() Window = xbmcgui.Window(windowid) focusid = Window.getFocusId() itemlist = Window.getFocus() numitems = itemlist.getSelectedPosition() log("items:" + str(numitems)) for i in range(0, numitems): Notify(item.getProperty("Image")) elif info == 'action': xbmc.executebuiltin(self.id) elif info == "youtubevideo": if self.id: self.control = "" # workaround to avoid breaking PlayMedia PlayTrailer(self.id) elif info == 'playtrailer': xbmc.executebuiltin("ActivateWindow(busydialog)") xbmc.sleep(500) if self.id: MovieId = self.id elif self.dbid and (int(self.dbid) > -1): MovieId = GetImdbIDFromDatabase("movie", self.dbid) log("MovieDBID from local DB:" + str(MovieId)) elif self.imdbid: MovieId = GetMovieDBID(self.imdbid) else: MovieId = "" if MovieId: trailer = GetTrailer(MovieId) xbmc.executebuiltin("Dialog.Close(busydialog)") if trailer: xbmc.executebuiltin("PlayMedia(%s)" % trailer) self.control = "" # workaround to avoid breaking PlayMedia else: Notify("Error", "No Trailer available") elif info == 'updatexbmcdatabasewithartistmbid': SetMusicBrainzIDsForAllArtists(True, False)
def StartInfoActions(infos, params): if "artistname" in params: params["artistname"] = params.get("artistname", "").split(" feat. ")[0].strip() params["artist_mbid"] = fetch_musicbrainz_id(params["artistname"]) prettyprint(params) prettyprint(infos) if "prefix" in params and (not params["prefix"].endswith('.')) and (params["prefix"] is not ""): params["prefix"] = params["prefix"] + '.' for info in infos: data = [] # Images if info == 'xkcd': from MiscScraper import GetXKCDInfo data = GetXKCDInfo(), "XKCD" elif info == 'cyanide': from MiscScraper import GetCandHInfo data = GetCandHInfo(), "CyanideHappiness" elif info == 'dailybabes': from MiscScraper import GetDailyBabes data = GetDailyBabes(), "DailyBabes" elif info == 'dailybabe': from MiscScraper import GetDailyBabes data = GetDailyBabes(single=True), "DailyBabe" # Audio elif info == 'discography': Discography = GetDiscography(params["artistname"]) if not Discography: Discography = GetArtistTopAlbums(params.get("artist_mbid")) data = Discography, "Discography" elif info == 'mostlovedtracks': data = GetMostLovedTracks(params["artistname"]), "MostLovedTracks" elif info == 'artistdetails': ArtistDetails = GetArtistDetails(params["artistname"]) passDictToSkin(ArtistDetails, params.get("prefix", "")) if "audiodbid" in ArtistDetails: data = GetMusicVideos(ArtistDetails["audiodbid"]), "MusicVideos" elif info == 'musicvideos': pass # if "audiodbid" in ArtistDetails: # data = GetMusicVideos(ArtistDetails["audiodbid"]), "MusicVideos" elif info == 'albuminfo': if params.get("id", ""): AlbumDetails = GetAlbumDetails(params.get("id", "")) passDictToSkin(AlbumDetails, params.get("prefix", "")) elif info == 'trackdetails': if params.get("id", ""): data = GetTrackDetails(params.get("id", "")), "Trackinfo" elif info == 'albumshouts': if params["artistname"] and params["albumname"]: data = GetAlbumShouts(params["artistname"], params["albumname"]), "Shout" elif info == 'artistshouts': if params["artistname"]: data = GetArtistShouts(params["artistname"]), "Shout" elif info == 'topartists': data = GetTopArtists(), "TopArtists" elif info == 'hypedartists': data = GetHypedArtists(), "HypedArtists" elif info == 'latestdbmovies': data = get_db_movies('"sort": {"order": "descending", "method": "dateadded"}', params.get("limit", 10)), "LatestMovies" elif info == 'randomdbmovies': data = get_db_movies('"sort": {"method": "random"}', params.get("limit", 10)), "RandomMovies" elif info == 'inprogressdbmovies': method = '"sort": {"order": "descending", "method": "lastplayed"}, "filter": {"field": "inprogress", "operator": "true", "value": ""}' data = get_db_movies(method, params.get("limit", 10)), "RecommendedMovies" # RottenTomatoesMovies elif info == 'intheaters': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("movies/in_theaters"), "InTheatersMovies" elif info == 'boxoffice': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("movies/box_office"), "BoxOffice" elif info == 'opening': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("movies/opening"), "Opening" elif info == 'comingsoon': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("movies/upcoming"), "ComingSoonMovies" elif info == 'toprentals': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("dvds/top_rentals"), "TopRentals" elif info == 'currentdvdreleases': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("dvds/current_releases"), "CurrentDVDs" elif info == 'newdvdreleases': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("dvds/new_releases"), "NewDVDs" elif info == 'upcomingdvds': from RottenTomatoes import GetRottenTomatoesMovies data = GetRottenTomatoesMovies("dvds/upcoming"), "UpcomingDVDs" # The MovieDB elif info == 'incinemas': data = GetMovieDBMovies("now_playing"), "InCinemasMovies" elif info == 'upcoming': data = GetMovieDBMovies("upcoming"), "UpcomingMovies" elif info == 'topratedmovies': data = GetMovieDBMovies("top_rated"), "TopRatedMovies" elif info == 'popularmovies': data = GetMovieDBMovies("popular"), "PopularMovies" elif info == 'airingtodaytvshows': data = GetMovieDBTVShows("airing_today"), "AiringTodayTVShows" elif info == 'onairtvshows': data = GetMovieDBTVShows("on_the_air"), "OnAirTVShows" elif info == 'topratedtvshows': data = GetMovieDBTVShows("top_rated"), "TopRatedTVShows" elif info == 'populartvshows': data = GetMovieDBTVShows("popular"), "PopularTVShows" elif info == 'similarmovies': dbid = params.get("dbid", False) if params.get("id", False): movie_id = params["id"] elif dbid and int(dbid) > 0: movie_id = GetImdbIDFromDatabase("movie", dbid) log("IMDB Id from local DB:" + str(movie_id)) else: movie_id = "" if movie_id: data = GetSimilarMovies(movie_id), "SimilarMovies" elif info == 'similartvshows': tvshow_id = None dbid = params.get("dbid", False) name = params.get("name", False) tmdb_id = params.get("tmdb_id", False) tvdb_id = params.get("tvdb_id", False) imdb_id = params.get("imdb_id", False) if tmdb_id: tvshow_id = tmdb_id elif dbid and int(dbid) > 0: tvdb_id = GetImdbIDFromDatabase("tvshow", dbid) log("IMDB Id from local DB:" + str(tvdb_id)) if tvdb_id: tvshow_id = get_show_tmdb_id(tvdb_id) log("tvdb_id to tmdb_id: %s --> %s" % (str(tvdb_id), str(tvshow_id))) elif tvdb_id: tvshow_id = get_show_tmdb_id(tvdb_id) log("tvdb_id to tmdb_id: %s --> %s" % (tvdb_id, str(tvshow_id))) elif imdb_id: tvshow_id = get_show_tmdb_id(imdb_id, "imdb_id") log("imdb_id to tmdb_id: %s --> %s" % (imdb_id, str(tvshow_id))) elif name: tvshow_id = search_media(name, "", "tv") log("search string to tmdb_id: %s --> %s" % (name, str(tvshow_id))) if tvshow_id: data = GetSimilarTVShows(tvshow_id), "SimilarTVShows" elif info == 'studio': if "studio" in params and params["studio"]: CompanyId = SearchforCompany(params["studio"])[0]["id"] data = GetCompanyInfo(CompanyId), "StudioInfo" elif info == 'set': if params.get("dbid", False) and "show" not in str(params.get("type", "")): name = GetMovieSetName(params["dbid"]) if name: params["setid"] = SearchForSet(name) if params.get("setid", False): SetData, info = GetSetMovies(params["setid"]) if SetData: data = SetData, "MovieSetItems" elif info == 'movielists': if params.get("dbid", False): movie_id = GetImdbIDFromDatabase("movie", params["dbid"]) log("MovieDB Id:" + str(movie_id)) if movie_id: data = GetMovieLists(movie_id), "MovieLists" elif info == 'keywords': if params.get("dbid", False): movie_id = GetImdbIDFromDatabase("movie", params["dbid"]) log("MovieDB Id:" + str(movie_id)) if movie_id: data = GetMovieKeywords(movie_id), "Keywords" elif info == 'popularpeople': data = GetPopularActorList(), "PopularPeople" elif info == 'extendedinfo': HOME.setProperty('infodialogs.active', "true") from DialogVideoInfo import DialogVideoInfo dialog = DialogVideoInfo(u'script-%s-DialogVideoInfo.xml' % ADDON_NAME, ADDON_PATH, id=params.get("id", ""), dbid=params.get("dbid", None), imdb_id=params.get("imdb_id", ""), name=params.get("name", "")) dialog.doModal() HOME.clearProperty('infodialogs.active') elif info == 'extendedactorinfo': HOME.setProperty('infodialogs.active', "true") from DialogActorInfo import DialogActorInfo dialog = DialogActorInfo(u'script-%s-DialogInfo.xml' % ADDON_NAME, ADDON_PATH, id=params.get("id", ""), name=params.get("name", "")) dialog.doModal() HOME.clearProperty('infodialogs.active') elif info == 'extendedtvinfo': HOME.setProperty('infodialogs.active', "true") from DialogTVShowInfo import DialogTVShowInfo dialog = DialogTVShowInfo(u'script-%s-DialogVideoInfo.xml' % ADDON_NAME, ADDON_PATH, id=params.get("id", ""), dbid=params.get("dbid", None), imdb_id=params.get("imdb_id", ""), name=params.get("name", "")) dialog.doModal() HOME.clearProperty('infodialogs.active') elif info == 'ratemedia': media_type = params.get("type", False) if media_type: if params.get("id", False) and params["id"]: tmdb_id = params["id"] elif media_type == "movie": tmdb_id = get_movie_tmdb_id(imdb_id=params.get("imdb_id", ""), dbid=params.get("dbid", ""), name=params.get("name", "")) elif media_type == "tv" and params["dbid"]: tvdb_id = GetImdbIDFromDatabase("tvshow", params["dbid"]) tmdb_id = get_show_tmdb_id(tvdb_id=tvdb_id) # elif media_type == "episode" and params["dbid"]: # tvdb_id = GetImdbIDFromDatabase("tvshow", params["dbid"]) # tmdb_id = get_show_tmdb_id(tvdb_id=tvdb_id) if tmdb_id: rating = get_rating_from_user() if rating: send_rating_for_media_item(media_type, tmdb_id, rating) elif info == 'seasoninfo': if params.get("tvshow", False) and params.get("season", False): HOME.setProperty('infodialogs.active', "true") from DialogSeasonInfo import DialogSeasonInfo dialog = DialogSeasonInfo(u'script-%s-DialogVideoInfo.xml' % ADDON_NAME, ADDON_PATH, tvshow=params["tvshow"], season=params["season"]) dialog.doModal() HOME.clearProperty('infodialogs.active') else: Notify("Error", "Required data missing in script call") elif info == 'directormovies': if params.get("director", False): director_id = GetPersonID(params["director"], skip_dialog=True)["id"] if director_id: data = GetDirectorMovies(director_id), "DirectorMovies" elif info == 'writermovies': if params.get("writer", False) and not params["writer"].split(" / ")[0] == params.get("director", "").split(" / ")[0]: writer_id = GetPersonID(params["writer"], skip_dialog=True)["id"] if writer_id: data = GetDirectorMovies(writer_id), "WriterMovies" elif info == 'similarmoviestrakt': if params.get("id", False) or params.get("dbid", False): if params.get("dbid", False): movie_id = GetImdbIDFromDatabase("movie", params["dbid"]) else: movie_id = params.get("id", "") data = GetSimilarTrakt("movie", movie_id), "SimilarMovies" elif info == 'similartvshowstrakt': if (params.get("id", "") or params["dbid"]): if params.get("dbid", False): if params.get("type") == "episode": tvshow_id = get_tvshow_id_from_db_by_episode(params["dbid"]) else: tvshow_id = GetImdbIDFromDatabase("tvshow", params["dbid"]) else: tvshow_id = params.get("id", "") data = GetSimilarTrakt("show", tvshow_id), "SimilarTVShows" elif info == 'airingshows': data = GetTraktCalendarShows("shows"), "AiringShows" elif info == 'premiereshows': data = GetTraktCalendarShows("premieres"), "PremiereShows" elif info == 'trendingshows': data = GetTrendingShows(), "TrendingShows" elif info == 'trendingmovies': data = GetTrendingMovies(), "TrendingMovies" elif info == 'similarartistsinlibrary': if params.get("artist_mbid"): data = GetSimilarArtistsInLibrary(params.get("artist_mbid")), "SimilarArtists" elif info == 'artistevents': if params.get("artist_mbid"): data = GetEvents(params.get("artist_mbid")), "ArtistEvents" elif info == 'youtubesearch': HOME.setProperty('%sSearchValue' % params.get("prefix", ""), params.get("id", "")) # set properties if params.get("id", False): data = GetYoutubeSearchVideos(params.get("id", ""), params.get("hd", ""), params.get("orderby", "relevance")), "YoutubeSearch" elif info == 'youtubeplaylist': if params.get("id", False): data = GetYoutubePlaylistVideos(params.get("id", "")), "YoutubePlaylist" elif info == 'youtubeusersearch': user_name = params.get("id", "") if user_name: playlists = GetUserPlaylists(user_name) data = GetYoutubePlaylistVideos(playlists["uploads"]), "YoutubeUserSearch" elif info == 'nearevents': data = GetNearEvents(params.get("tag", ""), params.get("festivalsonly", ""), params.get("lat", ""), params.get("lon", ""), params.get("location", ""), params.get("distance", "")), "NearEvents" elif info == 'trackinfo': HOME.setProperty('%sSummary' % params.get("prefix", ""), "") # set properties if params["artistname"] and params["trackname"]: TrackInfo = GetTrackInfo(params["artistname"], params["trackname"]) HOME.setProperty('%sSummary' % params.get("prefix", ""), TrackInfo["summary"]) # set properties elif info == 'venueevents': if params["location"]: params["id"] = GetVenueID(params["location"]) if params.get("id", ""): data = GetVenueEvents(params.get("id", "")), "VenueEvents" else: Notify("Error", "Could not find venue") elif info == 'topartistsnearevents': artists = GetXBMCArtists() from MiscScraper import GetArtistNearEvents data = GetArtistNearEvents(artists["result"]["artists"][0:49]), "TopArtistsNearEvents" # elif info == 'channels': # channels = create_channel_list() elif info == 'favourites': if params.get("id", ""): favourites = GetFavouriteswithType(params.get("id", "")) else: favourites = GetFavourites() HOME.setProperty('favourite.count', str(len(favourites))) if len(favourites) > 0: HOME.setProperty('favourite.1.name', favourites[-1]["Label"]) data = favourites, "Favourites" elif info == 'similarlocal' and "dbid" in params: data = GetSimilarFromOwnLibrary( params["dbid"]), "SimilarLocalMovies" elif info == 'iconpanel': data = GetIconPanel(int(params["id"])), "IconPanel" + str(params["id"]) elif info == 'weather': data = GetWeatherImages(), "WeatherImages" elif info == 'updatexbmcdatabasewithartistmbidbg': SetMusicBrainzIDsForAllArtists(False, False) elif info == 'setfocus': xbmc.executebuiltin("SetFocus(22222)") elif info == 'playliststats': GetPlaylistStats(params.get("id", "")) elif info == "sortletters": data = GetSortLetters(params["path"], params.get("id", "")), "SortLetters" elif info == 'slideshow': windowid = xbmcgui.getCurrentWindowId() Window = xbmcgui.Window(windowid) # focusid = Window.getFocusId() itemlist = Window.getFocus() numitems = itemlist.getSelectedPosition() log("items:" + str(numitems)) for i in range(0, numitems): Notify(item.getProperty("Image")) elif info == 'action': xbmc.executebuiltin(params.get("id", "")) elif info == 'bounce': HOME.setProperty(params.get("name", ""), "True") xbmc.sleep(200) HOME.clearProperty(params.get("name", "")) elif info == "youtubevideo": if params.get("id", ""): xbmc.executebuiltin("Dialog.Close(all,true)") play_trailer(params.get("id", "")) elif info == 'playtrailer': xbmc.executebuiltin("ActivateWindow(busydialog)") xbmc.sleep(500) if params.get("id", ""): movie_id = params.get("id", "") elif int(params.get("dbid", -1)) > 0: movie_id = GetImdbIDFromDatabase("movie", params["dbid"]) log("MovieDBID from local DB:" + str(movie_id)) elif params.get("imdb_id", ""): movie_id = get_movie_tmdb_id(params.get("imdb_id", "")) else: movie_id = "" if movie_id: trailer = GetTrailer(movie_id) xbmc.executebuiltin("Dialog.Close(busydialog)") if trailer: play_trailer(trailer) else: Notify("Error", "No Trailer available") elif info == 'updatexbmcdatabasewithartistmbid': SetMusicBrainzIDsForAllArtists(True, False) elif info == 'deletecache': HOME.clearProperties() for the_file in os.listdir(ADDON_DATA_PATH): file_path = os.path.join(ADDON_DATA_PATH, the_file) try: if os.path.isfile(file_path) and not the_file == "settings.xml": os.unlink(file_path) except Exception as e: log(e) Notify("Cache deleted") elif info == 'syncwatchlist': pass if data: data, prefix = data passListToSkin(prefix, data, params.get("prefix", ""), params.get("window", ""), params.get("handle", ""), params.get("limit", 20))
def StartInfoActions(infos, params): if "artistname" in params: params["artistname"] = params.get("artistname", "").split(" feat. ")[0].strip() params["artist_mbid"] = GetMusicBrainzIdFromNet(params["artistname"]) prettyprint(params) prettyprint(infos) if "prefix" in params and (not params["prefix"].endswith('.')) and ( params["prefix"] is not ""): params["prefix"] = params["prefix"] + '.' for info in infos: data = None ########### Images ##################### if info == 'xkcd': data = GetXKCDInfo(), "XKCD" elif info == 'flickr': data = GetFlickrImages(), "Flickr" elif info == 'cyanide': data = GetCandHInfo(), "CyanideHappiness" elif info == 'dailybabes': data = GetDailyBabes(), "DailyBabes" elif info == 'dailybabe': data = GetDailyBabes(single=True), "DailyBabe" ########### Audio ##################### elif info == 'discography': Discography = GetDiscography(params["artistname"]) if len(Discography) == 0: Discography = GetArtistTopAlbums(params.get("artist_mbid")) data = Discography, "Discography" elif info == 'mostlovedtracks': data = GetMostLovedTracks(params["artistname"]), "MostLovedTracks" elif info == 'artistdetails': ArtistDetails = GetArtistDetails(params["artistname"]) passDictToSkin(ArtistDetails, params.get("prefix", "")) if "audiodbid" in ArtistDetails: data = GetMusicVideos( ArtistDetails["audiodbid"]), "MusicVideos" elif info == 'musicvideos': pass # if "audiodbid" in ArtistDetails: # data = GetMusicVideos(ArtistDetails["audiodbid"]), "MusicVideos" elif info == 'albuminfo': if params.get("id", ""): AlbumDetails = GetAlbumDetails(params.get("id", "")) passDictToSkin(AlbumDetails, params.get("prefix", "")) elif info == 'trackdetails': if params.get("id", ""): data = GetTrackDetails(params.get("id", "")), "Trackinfo" elif info == 'albumshouts': if params["artistname"] and params["albumname"]: data = GetAlbumShouts(params["artistname"], params["albumname"]), "Shout" elif info == 'artistshouts': if params["artistname"]: data = GetArtistShouts(params["artistname"]), "Shout" elif info == 'topartists': data = GetTopArtists(), "TopArtists" elif info == 'hypedartists': data = GetHypedArtists(), "HypedArtists" ### RottenTomatoesMovies ################################################################################# elif info == 'intheaters': data = GetRottenTomatoesMovies( "movies/in_theaters"), "InTheatersMovies" elif info == 'boxoffice': data = GetRottenTomatoesMovies("movies/box_office"), "BoxOffice" elif info == 'opening': data = GetRottenTomatoesMovies("movies/opening"), "Opening" elif info == 'comingsoon': data = GetRottenTomatoesMovies( "movies/upcoming"), "ComingSoonMovies" elif info == 'toprentals': data = GetRottenTomatoesMovies("dvds/top_rentals"), "TopRentals" elif info == 'currentdvdreleases': data = GetRottenTomatoesMovies( "dvds/current_releases"), "CurrentDVDs" elif info == 'newdvdreleases': data = GetRottenTomatoesMovies("dvds/new_releases"), "NewDVDs" elif info == 'upcomingdvds': data = GetRottenTomatoesMovies("dvds/upcoming"), "UpcomingDVDs" ### The MovieDB ########################################################################################## elif info == 'incinemas': data = GetMovieDBMovies("now_playing"), "InCinemasMovies" elif info == 'upcoming': data = GetMovieDBMovies("upcoming"), "UpcomingMovies" elif info == 'topratedmovies': data = GetMovieDBMovies("top_rated"), "TopRatedMovies" elif info == 'popularmovies': data = GetMovieDBMovies("popular"), "PopularMovies" elif info == 'airingtodaytvshows': data = GetMovieDBTVShows("airing_today"), "AiringTodayTVShows" elif info == 'onairtvshows': data = GetMovieDBTVShows("on_the_air"), "OnAirTVShows" elif info == 'topratedtvshows': data = GetMovieDBTVShows("top_rated"), "TopRatedTVShows" elif info == 'populartvshows': data = GetMovieDBTVShows("popular"), "PopularTVShows" elif info == 'similarmovies': if params.get("id", False): MovieId = params["id"] elif int(params.get("dbid", -1)) > 0: MovieId = GetImdbIDFromDatabase("movie", params["dbid"]) log("IMDBId from local DB:" + str(MovieId)) else: MovieId = "" if MovieId: data = GetSimilarMovies(MovieId), "SimilarMovies" elif info == 'studio': if params["studio"]: CompanyId = SearchforCompany(params["studio"])[0]["id"] data = GetCompanyInfo(CompanyId), "StudioInfo" elif info == 'set': if params.get("dbid", False) and not "show" in str(params.get("type", "")): name = GetMovieSetName(params["dbid"]) if name: params["setid"] = SearchForSet(name) if params.get("setid", False): SetData, info = GetSetMovies(params["setid"]) if SetData: data = SetData, "MovieSetItems" elif info == 'movielists': if params.get("dbid", False): movieid = GetImdbIDFromDatabase("movie", params["dbid"]) log("MovieDB Id:" + str(movieid)) if movieid: data = GetMovieLists(movieid), "MovieLists" elif info == 'keywords': if params.get("dbid", False): movieid = GetImdbIDFromDatabase("movie", params["dbid"]) log("MovieDB Id:" + str(movieid)) if movieid: data = GetMovieKeywords(movieid), "Keywords" elif info == 'popularpeople': data = GetPopularActorList(), "PopularPeople" elif info == 'extendedinfo': from DialogVideoInfo import DialogVideoInfo if params.get("handle", ""): xbmcplugin.endOfDirectory(params.get("handle", "")) dialog = DialogVideoInfo(u'script-%s-DialogVideoInfo.xml' % addon_name, addon_path, id=params.get("id", ""), dbid=params.get("dbid", None), imdbid=params.get("imdbid", ""), name=params.get("name", "")) dialog.doModal() elif info == 'extendedactorinfo': from DialogActorInfo import DialogActorInfo dialog = DialogActorInfo(u'script-%s-DialogInfo.xml' % addon_name, addon_path, id=params.get("id", ""), name=params.get("name", "")) dialog.doModal() elif info == 'extendedtvinfo': from DialogTVShowInfo import DialogTVShowInfo if params.get("handle", ""): xbmcplugin.endOfDirectory(params.get("handle", "")) dialog = DialogTVShowInfo(u'script-%s-DialogVideoInfo.xml' % addon_name, addon_path, id=params.get("id", ""), dbid=params.get("dbid", None), imdbid=params.get("imdbid", ""), name=params.get("name", "")) dialog.doModal() elif info == 'seasoninfo': if params.get("tvshow", False) and params.get("season", False): from DialogSeasonInfo import DialogSeasonInfo dialog = DialogSeasonInfo(u'script-%s-DialogVideoInfo.xml' % addon_name, addon_path, tvshow=params["tvshow"], season=params["season"]) dialog.doModal() else: Notify("Error", "Required data missing in script call") elif info == 'directormovies': if params.get("director", False): directorid = GetPersonID(params["director"])["id"] if directorid: data = GetDirectorMovies(directorid), "DirectorMovies" elif info == 'writermovies': if params.get("writer", False) and not params["writer"].split( " / ")[0] == params.get("director", "").split(" / ")[0]: writerid = GetPersonID(params["writer"])["id"] if writerid: data = GetDirectorMovies(writerid), "WriterMovies" elif info == 'similarmoviestrakt': if params.get("id", False) or params.get("dbid", False): if params.get("dbid", False): movieid = GetImdbIDFromDatabase("movie", params["dbid"]) else: movieid = params.get("id", "") data = GetSimilarTrakt("movie", movieid), "SimilarMovies" elif info == 'similartvshowstrakt': if (params.get("id", "") or params["dbid"]): if params.get("dbid", False): if params.get("type") == "episode": tvshowid = GetImdbIDFromDatabasefromEpisode( params["dbid"]) else: tvshowid = GetImdbIDFromDatabase( "tvshow", params["dbid"]) else: tvshowid = params.get("id", "") data = GetSimilarTrakt("show", tvshowid), "SimilarTVShows" elif info == 'airingshows': data = GetTraktCalendarShows("shows"), "AiringShows" elif info == 'premiereshows': data = GetTraktCalendarShows("premieres"), "PremiereShows" elif info == 'trendingshows': data = GetTrendingShows(), "TrendingShows" elif info == 'trendingmovies': data = GetTrendingMovies(), "TrendingMovies" elif info == 'similarartistsinlibrary': if params.get("artist_mbid"): data = GetSimilarArtistsInLibrary( params.get("artist_mbid")), "SimilarArtists" elif info == 'artistevents': if params.get("artist_mbid"): data = GetEvents(params.get("artist_mbid")), "ArtistEvents" elif info == 'youtubesearch': homewindow.setProperty('%sSearchValue' % params.get("prefix", ""), params.get("id", "")) # set properties if params.get("id", False): data = GetYoutubeSearchVideosV3( params.get("id", ""), params.get("hd", ""), params.get("orderby", "relevance")), "YoutubeSearch" elif info == 'youtubeplaylist': if params.get("id", False): data = GetYoutubePlaylistVideos(params.get( "id", "")), "YoutubePlaylist" elif info == 'youtubeusersearch': if params.get("id", ""): data = GetYoutubeUserVideos(params.get( "id", "")), "YoutubeUserSearch" elif info == 'nearevents': data = GetNearEvents(params.get("tag", ""), params.get("festivalsonly", ""), params.get("lat", ""), params.get("lon", ""), params.get("location", ""), params.get("distance", "")), "NearEvents" elif info == 'trackinfo': homewindow.setProperty('%sSummary' % params.get("prefix", ""), "") # set properties if params["artistname"] and params["trackname"]: TrackInfo = GetTrackInfo(params["artistname"], params["trackname"]) homewindow.setProperty('%sSummary' % params.get("prefix", ""), TrackInfo["summary"]) # set properties elif info == 'venueevents': if params["location"]: params["id"] = GetVenueID(params["location"]) if params.get("id", ""): data = GetVenueEvents(params.get("id", "")), "VenueEvents" else: Notify("Error", "Could not find venue") elif info == 'topartistsnearevents': artists = GetXBMCArtists() data = GetArtistNearEvents( artists["result"]["artists"][0:49]), "TopArtistsNearEvents" elif info == 'channels': channels = create_channel_list() # prettyprint(channels) elif info == 'favourites': if params.get("id", ""): favourites = GetFavouriteswithType(params.get("id", "")) else: favourites = GetFavourites() homewindow.setProperty('favourite.count', str(len(favourites))) if len(favourites) > 0: homewindow.setProperty('favourite.1.name', favourites[-1]["Label"]) data = favourites, "Favourites" elif info == 'json': data = GetYoutubeVideos(params["feed"]), "RSS" elif info == 'similarlocal' and "dbid" in params: data = GetSimilarFromOwnLibrary( params["dbid"]), "SimilarLocalMovies" elif info == 'iconpanel': data = GetIconPanel(int(self.id)), "IconPanel" + str(self.id) elif info == 'weather': data = GetWeatherImages(), "WeatherImages" elif info == 'updatexbmcdatabasewithartistmbidbg': SetMusicBrainzIDsForAllArtists(False, False) elif info == 'setfocus': params["control"] = "" # workaround to avoid breaking PlayMedia xbmc.executebuiltin("SetFocus(22222)") elif info == 'playliststats': GetPlaylistStats(params.get("id", "")) elif info == "sortletters": data = GetSortLetters(params["path"], params.get("id", "")), "SortLetters" elif info == 'slideshow': windowid = xbmcgui.getCurrentWindowId() Window = xbmcgui.Window(windowid) # focusid = Window.getFocusId() itemlist = Window.getFocus() numitems = itemlist.getSelectedPosition() log("items:" + str(numitems)) for i in range(0, numitems): Notify(item.getProperty("Image")) elif info == 'action': xbmc.executebuiltin(params.get("id", "")) elif info == 'bounce': homewindow.setProperty(params.get("name", ""), "True") xbmc.sleep(200) homewindow.clearProperty(params.get("name", "")) elif info == "youtubevideo": if params.get("id", ""): params[ "control"] = "" # workaround to avoid breaking PlayMedia xbmc.executebuiltin("Dialog.Close(all,true)") PlayTrailer(params.get("id", "")) elif info == 'playtrailer': xbmc.executebuiltin("ActivateWindow(busydialog)") xbmc.sleep(500) if params.get("id", ""): MovieId = params.get("id", "") elif int(params.get("dbid", -1)) > 0: MovieId = GetImdbIDFromDatabase("movie", params["dbid"]) log("MovieDBID from local DB:" + str(MovieId)) elif params.get("imdbid", ""): MovieId = GetMovieDBID(params.get("imdbid", "")) else: MovieId = "" if MovieId: trailer = GetTrailer(MovieId) xbmc.executebuiltin("Dialog.Close(busydialog)") if trailer: PlayTrailer(trailer) params[ "control"] = "" # workaround to avoid breaking PlayMedia else: Notify("Error", "No Trailer available") elif info == 'updatexbmcdatabasewithartistmbid': SetMusicBrainzIDsForAllArtists(True, False) elif info == 'deletecache': for the_file in os.listdir(Addon_Data_Path): file_path = os.path.join(Addon_Data_Path, the_file) try: if os.path.isfile( file_path) and not the_file == "settings.xml": os.unlink(file_path) except Exception, e: log(e) Notify("Cache deleted") elif info == 'syncwatchlist': pass
def _StartInfoActions(self): for info in self.infos: ########### Images ##################### if info == 'xkcd': passListToSkin('XKCD', GetXKCDInfo(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'flickr': passListToSkin('Flickr', GetFlickrImages(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'cyanide': passListToSkin('CyanideHappiness', GetCandHInfo(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'dailybabes': passListToSkin('DailyBabes', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('DailyBabes', GetDailyBabes(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'dailybabe': passListToSkin('DailyBabe', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('DailyBabe', GetDailyBabes(single=True), self.prop_prefix, self.window, self.control, self.handle, self.limit) ########### Audio ##################### elif info == 'discography': passListToSkin('Discography', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) Discography = GetDiscography(self.ArtistName) if len(Discography) == 0: Discography = GetArtistTopAlbums(self.Artist_mbid) passListToSkin('Discography', Discography, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'mostlovedtracks': passListToSkin('MostLovedTracks', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('MostLovedTracks', GetMostLovedTracks(self.ArtistName), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'artistdetails': passListToSkin('Discography', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('MusicVideos', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) ArtistDetails = GetArtistDetails(self.ArtistName) if "audiodbid" in ArtistDetails: MusicVideos = GetMusicVideos(ArtistDetails["audiodbid"]) passListToSkin('MusicVideos', MusicVideos, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('Discography', GetDiscography(self.ArtistName), self.prop_prefix, self.window, self.control, self.handle, self.limit) passDictToSkin(ArtistDetails, self.prop_prefix) elif info == 'albuminfo': if self.id: AlbumDetails = GetAlbumDetails(self.id) Trackinfo = GetTrackDetails(self.id) passDictToSkin(AlbumDetails, self.prop_prefix) passListToSkin('Trackinfo', Trackinfo, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'albumshouts': passListToSkin('Shout', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.ArtistName and self.AlbumName: passListToSkin( 'Shout', GetAlbumShouts(self.ArtistName, self.AlbumName), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'artistshouts': passListToSkin('Shout', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.ArtistName: passListToSkin('Shout', GetArtistShouts(self.ArtistName), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'topartists': passListToSkin('TopArtists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('TopArtists', GetTopArtists(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'hypedartists': passListToSkin('HypedArtists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('HypedArtists', GetHypedArtists(), self.prop_prefix, self.window, self.control, self.handle, self.limit) ### RottenTomatoesMovies ################################################################################# elif info == 'intheaters': passListToSkin('InTheatersMovies', GetRottenTomatoesMovies("movies/in_theaters"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'boxoffice': passListToSkin('BoxOffice', GetRottenTomatoesMovies("movies/box_office"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'opening': passListToSkin('Opening', GetRottenTomatoesMovies("movies/opening"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'comingsoon': passListToSkin('ComingSoonMovies', GetRottenTomatoesMovies("movies/upcoming"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'toprentals': passListToSkin('TopRentals', GetRottenTomatoesMovies("dvds/top_rentals"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'currentdvdreleases': passListToSkin( 'CurrentDVDs', GetRottenTomatoesMovies("dvds/current_releases"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'newdvdreleases': passListToSkin('NewDVDs', GetRottenTomatoesMovies("dvds/new_releases"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'upcomingdvds': passListToSkin('UpcomingDVDs', GetRottenTomatoesMovies("dvds/upcoming"), self.prop_prefix, self.window, self.control, self.handle, self.limit) ### The MovieDB ########################################################################################## elif info == 'incinemas': passListToSkin('InCinemasMovies', GetMovieDBMovies("now_playing"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'upcoming': passListToSkin('UpcomingMovies', GetMovieDBMovies("upcoming"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'topratedmovies': passListToSkin('TopRatedMovies', GetMovieDBMovies("top_rated"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'popularmovies': passListToSkin('PopularMovies', GetMovieDBMovies("popular"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'airingtodaytvshows': passListToSkin('AiringTodayTVShows', GetMovieDBTVShows("airing_today"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'onairtvshows': passListToSkin('OnAirTVShows', GetMovieDBTVShows("on_the_air"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'topratedtvshows': passListToSkin('TopRatedTVShows', GetMovieDBTVShows("top_rated"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'populartvshows': passListToSkin('PopularTVShows', GetMovieDBTVShows("popular"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarmovies': passListToSkin('SimilarMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: MovieId = self.id elif self.dbid and (int(self.dbid) > -1): MovieId = GetImdbIDFromDatabase("movie", self.dbid) log("IMDBId from local DB:" + str(MovieId)) else: MovieId = "" if MovieId: passListToSkin('SimilarMovies', GetSimilarMovies(MovieId), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'studio': passListToSkin('StudioInfo', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.studio: CompanyId = SearchforCompany(self.studio) passListToSkin('StudioInfo', GetCompanyInfo(CompanyId), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'set': passListToSkin('MovieSetItems', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.dbid and not "show" in str(self.type): name = GetMovieSetName(self.dbid) if name: self.setid = SearchForSet(name) if self.setid: SetData, info = GetSetMovies(self.setid) if SetData: passListToSkin('MovieSetItems', SetData, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'movielists': passListToSkin('MovieLists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.dbid: movieid = GetImdbIDFromDatabase("movie", self.dbid) log("MovieDB Id:" + str(movieid)) if movieid: passListToSkin('MovieLists', GetMovieLists(movieid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'keywords': passListToSkin('Keywords', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.dbid: movieid = GetImdbIDFromDatabase("movie", self.dbid) log("MovieDB Id:" + str(movieid)) if movieid: passListToSkin('Keywords', GetMovieKeywords(movieid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'popularpeople': passListToSkin('PopularPeople', GetPopularActorList(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'extendedinfo': from DialogVideoInfo import DialogVideoInfo if self.handle: xbmcplugin.endOfDirectory(self.handle) dialog = DialogVideoInfo(u'script-%s-DialogVideoInfo.xml' % addon_name, addon_path, id=self.id, dbid=self.dbid, imdbid=self.imdbid, name=self.name) dialog.doModal() elif info == 'extendedactorinfo': from DialogActorInfo import DialogActorInfo dialog = DialogActorInfo(u'script-%s-DialogInfo.xml' % addon_name, addon_path, id=self.id, name=self.name) dialog.doModal() elif info == 'extendedtvinfo': from DialogTVShowInfo import DialogTVShowInfo if self.handle: xbmcplugin.endOfDirectory(self.handle) dialog = DialogTVShowInfo(u'script-%s-DialogVideoInfo.xml' % addon_name, addon_path, id=self.id, dbid=self.dbid, imdbid=self.imdbid, name=self.name) dialog.doModal() elif info == 'seasoninfo': passListToSkin("SeasonVideos", None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.tvshow and self.season: from DialogSeasonInfo import DialogSeasonInfo dialog = DialogSeasonInfo( u'script-%s-DialogVideoInfo.xml' % addon_name, addon_path, tvshow=self.tvshow, season=self.season) dialog.doModal() elif info == 'directormovies': passListToSkin('DirectorMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.director: directorid = GetPersonID(self.director) if directorid: passListToSkin('DirectorMovies', GetDirectorMovies(directorid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'writermovies': passListToSkin('WriterMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.writer and not self.writer.split( " / ")[0] == self.director.split(" / ")[0]: writerid = GetPersonID(self.writer) if writerid: passListToSkin('WriterMovies', GetDirectorMovies(writerid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarmoviestrakt': passListToSkin('SimilarMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if (self.id or self.dbid): if self.dbid: movieid = GetImdbIDFromDatabase("movie", self.dbid) else: movieid = self.id passListToSkin('SimilarMovies', GetSimilarTrakt("movie", movieid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similartvshowstrakt': passListToSkin('SimilarTVShows', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if (self.id or self.dbid): if self.dbid: if self.type == "episode": tvshowid = GetImdbIDFromDatabasefromEpisode( self.dbid) else: tvshowid = GetImdbIDFromDatabase( "tvshow", self.dbid) else: tvshowid = self.id passListToSkin('SimilarTVShows', GetSimilarTrakt("show", tvshowid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'airingshows': passListToSkin('AiringShows', GetTraktCalendarShows("shows"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'premiereshows': passListToSkin('PremiereShows', GetTraktCalendarShows("premieres"), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'trendingshows': passListToSkin('TrendingShows', GetTrendingShows(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'trendingmovies': passListToSkin('TrendingMovies', GetTrendingMovies(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarartistsinlibrary': passListToSkin('SimilarArtists', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.Artist_mbid: passListToSkin( 'SimilarArtists', GetSimilarArtistsInLibrary(self.Artist_mbid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'artistevents': passListToSkin('ArtistEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.Artist_mbid: passListToSkin('ArtistEvents', GetEvents(self.Artist_mbid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'youtubesearch': homewindow.setProperty('%sSearchValue' % self.prop_prefix, self.id) # set properties passListToSkin('YoutubeSearch', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: passListToSkin( 'YoutubeSearch', GetYoutubeSearchVideosV3(self.id, self.hd, self.orderby), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'youtubeplaylist': passListToSkin('YoutubePlaylist', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: passListToSkin('YoutubePlaylist', GetYoutubePlaylistVideos(self.id), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'youtubeusersearch': passListToSkin('YoutubeUserSearch', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.id: passListToSkin('YoutubeUserSearch', GetYoutubeUserVideos(self.id), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'nearevents': passListToSkin('NearEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin( 'NearEvents', GetNearEvents(self.tag, self.festivalsonly, self.lat, self.lon, self.location, self.distance), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'trackinfo': homewindow.setProperty('%sSummary' % self.prop_prefix, "") # set properties if self.ArtistName and self.TrackName: TrackInfo = GetTrackInfo(self.ArtistName, self.TrackName) homewindow.setProperty( '%sSummary' % self.prop_prefix, TrackInfo["summary"]) # set properties elif info == 'venueevents': passListToSkin('VenueEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) if self.location: self.id = GetVenueID(self.location) if self.id: passListToSkin('VenueEvents', GetVenueEvents(self.id), self.prop_prefix, self.window, self.control, self.handle, self.limit) else: Notify("Error", "Could not find venue") elif info == 'topartistsnearevents': passListToSkin('TopArtistsNearEvents', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) artists = GetXBMCArtists() events = GetArtistNearEvents( artists["result"]["artists"][0:49]) passListToSkin('TopArtistsNearEvents', events, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'channels': channels = create_channel_list() # prettyprint(channels) elif info == 'favourites': if self.id: favourites = GetFavouriteswithType(self.id) else: favourites = GetFavourites() homewindow.setProperty('favourite.count', str(len(favourites))) if len(favourites) > 0: homewindow.setProperty('favourite.1.name', favourites[-1]["Label"]) passListToSkin('Favourites', favourites, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'json': passListToSkin('RSS', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) videos = GetYoutubeVideos(self.feed, self.prop_prefix) passListToSkin('RSS', videos, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'similarlocal' and self.dbid: passListToSkin('SimilarLocalMovies', None, self.prop_prefix, self.window, self.control, self.handle, self.limit) passListToSkin('SimilarLocalMovies', GetSimilarFromOwnLibrary(self.dbid), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'iconpanel': passListToSkin('IconPanel', GetIconPanel(1), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'weather': passListToSkin('WeatherImages', GetWeatherImages(), self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'updatexbmcdatabasewithartistmbidbg': SetMusicBrainzIDsForAllArtists(False, False) elif info == 'setfocus': self.control = "" # workaround to avoid breaking PlayMedia xbmc.executebuiltin("SetFocus(22222)") elif info == 'playliststats': GetPlaylistStats(self.id) elif info == "sortletters": listitems = GetSortLetters(self.path, self.id) passListToSkin('SortLetters', listitems, self.prop_prefix, self.window, self.control, self.handle, self.limit) elif info == 'slideshow': windowid = xbmcgui.getCurrentWindowId() Window = xbmcgui.Window(windowid) focusid = Window.getFocusId() itemlist = Window.getFocus() numitems = itemlist.getSelectedPosition() log("items:" + str(numitems)) for i in range(0, numitems): Notify(item.getProperty("Image")) elif info == 'action': xbmc.executebuiltin(self.id) elif info == "youtubevideo": if self.id: self.control = "" # workaround to avoid breaking PlayMedia PlayTrailer(self.id) elif info == 'playtrailer': xbmc.executebuiltin("ActivateWindow(busydialog)") xbmc.sleep(500) if self.id: MovieId = self.id elif self.dbid and (int(self.dbid) > -1): MovieId = GetImdbIDFromDatabase("movie", self.dbid) log("MovieDBID from local DB:" + str(MovieId)) elif self.imdbid: MovieId = GetMovieDBID(self.imdbid) else: MovieId = "" if MovieId: trailer = GetTrailer(MovieId) xbmc.executebuiltin("Dialog.Close(busydialog)") if trailer: PlayTrailer(trailer) self.control = "" # workaround to avoid breaking PlayMedia else: Notify("Error", "No Trailer available") elif info == 'updatexbmcdatabasewithartistmbid': SetMusicBrainzIDsForAllArtists(True, False)
def onClick(self, controlID): if controlID == 150: listitem = self.getControl(150).getSelectedItem() dialog = DialogVideoInfo(u'script-%s-DialogVideoInfo.xml' % __addonname__, __cwd__, id=listitem.getProperty("id"), dbid=listitem.getProperty("dbid")) dialog.doModal()