コード例 #1
0
ファイル: Utils.py プロジェクト: paradix/script.extendedinfo
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()
コード例 #2
0
    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)
コード例 #3
0
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))
コード例 #4
0
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
コード例 #5
0
    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)
コード例 #6
0
 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()