示例#1
0
        public static LatestMediaHandler.MQTTItem CheckDB(string SearchFile)
        {
            LatestMediaHandler.MQTTItem item = new LatestMediaHandler.MQTTItem();
            if (MQTTPlugin.DebugMode)
            {
                Logger.Debug("Check to see if video is in MovingPictures database.");
            }

            if (Utils.IsAssemblyAvailable("MovingPictures", new Version(1, 0, 6, 1116)))
            {
                if (MQTTPlugin.DebugMode)
                {
                    Logger.Debug("MovingPictures found, searching Database for: " + SearchFile);
                }

                if (SearchFile.IndexOf(".MPLS") != -1) // Blu-Ray played with BDHandler
                {
                    if (MQTTPlugin.DebugMode)
                    {
                        Logger.Debug("Blu-Ray being played with BDHandler, converting filename.");
                    }
                    int    BDMVindex;
                    string OldFile = SearchFile;
                    BDMVindex = SearchFile.IndexOf("\\BDMV\\");
                    if (BDMVindex != -1)
                    {
                        SearchFile = SearchFile.Substring(0, BDMVindex + 6) + "INDEX.BDMV";
                    }
                    if (MQTTPlugin.DebugMode)
                    {
                        Logger.Debug("Filename converted from: " + OldFile + " to: " + SearchFile);
                    }
                }

                if (MQTTPlugin.DebugMode)
                {
                    Logger.Debug("Searching Database for: " + SearchFile);
                }
                DBLocalMedia Matches = DBLocalMedia.Get(SearchFile);
                if (Matches.AttachedMovies.Count > 0)
                {
                    if (MQTTPlugin.DebugMode)
                    {
                        Logger.Debug("Found " + Matches.AttachedMovies.Count.ToString() + " matches.");
                    }
                    DBMovieInfo moviematch = Matches.AttachedMovies[0];
                    item.Id       = moviematch.ImdbID;
                    item.Title    = moviematch.Title + " (" + moviematch.Year + ")";
                    item.Filename = SearchFile;
                    item.Genres   = moviematch.Genres.ToString();
                    item.GetArtwork("movie");
                }
            }
            return(item);
        }
示例#2
0
        public static LatestMediaHandler.MQTTItem CheckDB(string SearchFile)
        {
            LatestMediaHandler.MQTTItem item = new LatestMediaHandler.MQTTItem();
            if (MQTTPlugin.DebugMode)
            {
                Logger.Debug("Check to see if video is in MP-TVSeries database.");
            }

            if (Utils.IsAssemblyAvailable("MP-TVSeries", new Version(2, 6, 3, 1242)))
            {
                if (MQTTPlugin.DebugMode)
                {
                    Logger.Debug("MP-TVSeries found, searching Database for: " + SearchFile);
                }
                try
                {
                    SQLCondition     query    = new SQLCondition(new DBEpisode(), DBEpisode.cFilename, SearchFile, SQLConditionType.Equal);
                    List <DBEpisode> episodes = DBEpisode.Get(query);
                    if (MQTTPlugin.DebugMode)
                    {
                        Logger.Debug("Found: " + episodes.Count.ToString() + " episodes.");
                    }
                    if (episodes.Count > 0)
                    {
                        DBSeries s = Helper.getCorrespondingSeries(episodes[0].onlineEpisode[DBOnlineEpisode.cSeriesID]);
                        if (MQTTPlugin.DebugMode)
                        {
                            Logger.Debug("Video is in MP-TVSeries database.");
                        }

                        item.Id       = episodes[0][DBEpisode.cSeriesID];
                        item.Title    = s.ToString() + " - " + episodes[0][DBEpisode.cEpisodeName];
                        item.Filename = SearchFile;
                        item.Genres   = s[DBOnlineSeries.cGenre];
                        item.GetArtwork("tv");
                    }
                }
                catch (Exception e)
                {
                    Logger.Error("Error getting info from TVSeries Database: " + e.Message);
                }
            }
            return(item);
        }
示例#3
0
        public static LatestMediaHandler.MQTTItem CheckDB(string SearchFile)
        {
            LatestMediaHandler.MQTTItem item = new LatestMediaHandler.MQTTItem();
            if (MQTTPlugin.DebugMode)
            {
                Logger.Debug("Check to see if video is in MyVideos database.");
            }

            if (MQTTPlugin.DebugMode)
            {
                Logger.Debug("MyVideo found, searching Database for: " + SearchFile);
            }
            try
            {
                IMDBMovie movie   = new IMDBMovie();
                int       movieID = VideoDatabase.GetMovieId(SearchFile);
                VideoDatabase.GetMovieInfoById(movieID, ref movie);
                if (movie.ID > 0)
                {
                    if (MQTTPlugin.DebugMode)
                    {
                        Logger.Debug("Video is in MyVideos database.");
                    }
                    item.Id       = movie.IMDBNumber;
                    item.Title    = movie.Title + " (" + movie.Year + ")";
                    item.Filename = SearchFile;
                    item.Genres   = movie.Genre;
                    item.GetArtwork("movie");
                }
            }
            catch (Exception e)
            {
                Logger.Error("Error getting info from MyVideo Database: " + e.Message);
            }

            return(item);
        }
示例#4
0
        internal static LatestMediaHandler.MQTTItem GetArtwork(this LatestMediaHandler.MQTTItem self, string mode)
        {
            string id = mode == "tv" ? GetTVID(self.Id) : self.Id;

            if (!string.IsNullOrEmpty(id))
            {
                if (Utils.ImageCache == null)
                {
                    Utils.ImageCache = new Hashtable();
                }
                string key = "#" + mode + "#" + id;

                string json = Utils.ImageCache.Contains(key) ? (string)Utils.ImageCache[key] : Utils.DownloadJson(ApiURLTheMovieDB + mode + "/" + id + "/images?api_key=" + ApiKeyTheMovieDB);
                if (!string.IsNullOrEmpty(json))
                {
                    try
                    {
                        JsonRoot images = JsonConvert.DeserializeObject <JsonRoot>(json);

                        // Poster
                        string image = images.posters.Where(l => l.iso_639_1 == Utils.Language).OrderByDescending(x => x.vote_average).ThenByDescending(y => y.width).FirstOrDefault().file_path ?? string.Empty;
                        if (!string.IsNullOrEmpty(image))
                        {
                            self.Poster = ApiImageTheMovieDB + image;
                        }
                        else if (Utils.Language != "en")
                        {
                            image = images.posters.Where(l => l.iso_639_1 == "en").OrderByDescending(x => x.vote_average).ThenByDescending(y => y.width).FirstOrDefault().file_path ?? string.Empty;
                            if (!string.IsNullOrEmpty(image))
                            {
                                self.Poster = ApiImageTheMovieDB + image;
                            }
                        }

                        // Background
                        image = images.backdrops.Where(l => l.iso_639_1 == Utils.Language).OrderByDescending(x => x.vote_average).ThenByDescending(y => y.width).FirstOrDefault().file_path ?? string.Empty;
                        if (!string.IsNullOrEmpty(image))
                        {
                            self.Fanart = ApiImageTheMovieDB + image;
                        }
                        else if (Utils.Language != "en")
                        {
                            image = images.backdrops.Where(l => l.iso_639_1 == "en").OrderByDescending(x => x.vote_average).ThenByDescending(y => y.width).FirstOrDefault().file_path ?? string.Empty;
                            if (!string.IsNullOrEmpty(image))
                            {
                                self.Fanart = ApiImageTheMovieDB + image;
                            }
                        }

                        // Cache
                        if (!Utils.ImageCache.Contains(key))
                        {
                            Utils.TVIDCache.Add(key, json);
                        }
                    }
                    catch
                    { }
                }

                // Poster
                if (!self.Poster.StartsWith("http"))
                {
                    self.Poster = Utils.ImageToDataImage(self.Poster, 133, 200);
                }
                // Background
                if (!self.Fanart.StartsWith("http"))
                {
                    self.Fanart = Utils.ImageToDataImage(self.Fanart, 444, 250);
                }
            }

            return(self);
        }