Ejemplo n.º 1
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
Ejemplo n.º 2
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)