示例#1
0
 public Yatse2AudioAlbum(ApiAudioAlbum apiAudioAlbum)
 {
     if (apiAudioAlbum == null)
     {
         return;
     }
     Title    = apiAudioAlbum.Title;
     IdAlbum  = apiAudioAlbum.IdAlbum;
     IdArtist = apiAudioAlbum.IdArtist;
     Artist   = apiAudioAlbum.Artist;
     Genre    = apiAudioAlbum.Genre;
     IdGenre  = apiAudioAlbum.IdGenre;
     Year     = apiAudioAlbum.Year;
     Thumb    = apiAudioAlbum.Thumb;
     Fanart   = apiAudioAlbum.Fanart;
     Hash     = apiAudioAlbum.Hash;
 }
示例#2
0
        public ApiAudioAlbum ToApi()
        {
            var api = new ApiAudioAlbum
            {
                Artist   = Artist,
                Fanart   = Fanart,
                Genre    = Genre,
                Hash     = Hash,
                IdAlbum  = IdAlbum,
                IdArtist = IdArtist,
                IdGenre  = IdGenre,
                Thumb    = Thumb,
                Title    = Title,
                Year     = Year
            };


            return(api);
        }
示例#3
0
        public Collection <ApiAudioAlbum> GetAlbums()
        {
            var albums = new Collection <ApiAudioAlbum>();

            var properties = new JsonArray(new[] { "title", "thumbnail", "genre", "genreid", "artist", "year" });
            var param      = new JsonObject();

            param["properties"] = properties;
            var result = (JsonObject)_parent.JsonCommand("AudioLibrary.GetAlbums", param);

            if (result != null)
            {
                if (result.Contains("albums"))
                {
                    foreach (JsonObject genre in (JsonArray)result["albums"])
                    {
                        try
                        {
                            var album = new ApiAudioAlbum
                            {
                                IdAlbum  = (long)(JsonNumber)genre["albumid"],
                                Title    = genre["title"].ToString(),
                                IdGenre  = 0,
                                IdArtist = 0,
                                Artist   = _parent.JsonArrayToString((JsonArray)genre["artist"]),
                                Genre    = _parent.JsonArrayToString((JsonArray)genre["genre"]),
                                Year     = (long)(JsonNumber)genre["year"],
                                Thumb    = genre["thumbnail"].ToString()
                            };
                            albums.Add(album);
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }
            return(albums);
        }
示例#4
0
        public Collection <ApiAudioAlbum> GetAlbums()
        {
            var          albums = new Collection <ApiAudioAlbum>();
            const string req    = "SELECT idAlbum,strAlbum,idGenre,idArtist,strArtist,strGenre,iYear,strThumb FROM albumview GROUP BY strAlbum";


            var dblines = _parent.DBCommand("music", req);

            if (dblines == null)
            {
                return(albums);
            }
            foreach (var dbline in dblines)
            {
                if (dbline.Length < 8)
                {
                    _parent.Log("Invalid request DATA : " + dbline);
                    continue;
                }
                var album = new ApiAudioAlbum
                {
                    IdAlbum  = Xbmc.StringToNumber(dbline[0]),
                    Title    = dbline[1],
                    IdGenre  = Xbmc.StringToNumber(dbline[2]),
                    IdArtist = Xbmc.StringToNumber(dbline[3]),
                    Artist   = dbline[4],
                    Genre    = dbline[5],
                    Year     = Xbmc.StringToNumber(dbline[6]),
                    Thumb    = dbline[7]
                };
                var thumbparts = dbline[7].Split('/');
                var hash       = thumbparts[thumbparts.Length - 1].Replace(".tbn", "");
                album.Hash = hash;

                albums.Add(album);
            }
            return(albums);
        }
示例#5
0
        public Collection <ApiAudioAlbum> GetAlbums()
        {
            var albums = new Collection <ApiAudioAlbum>();

            if (!_parent.IsConnected())
            {
                return(albums);
            }
            var dblines = _parent.IPimpDBCommand(new CommandInfoIPimp {
                Action = "getallmusicalbums"
            }, "albums");

            if (dblines == null)
            {
                return(albums);
            }

            foreach (JsonObject dbline in dblines)
            {
                var album = new ApiAudioAlbum
                {
                    IdAlbum  = Convert.ToInt32("0" + (string)dbline["id"], CultureInfo.InvariantCulture),
                    Thumb    = (string)dbline["thumb"],
                    Fanart   = (string)dbline["fanart"],
                    IdGenre  = 0,
                    Artist   = (string)dbline["albumartist"],
                    Genre    = (string)dbline["genre"],
                    Title    = (string)dbline["name"],
                    Year     = Convert.ToInt32("0" + (string)dbline["year"], CultureInfo.InvariantCulture),
                    Hash     = MediaPortal.Hash((string)dbline["name"]),
                    IdArtist = 0
                };

                albums.Add(album);
            }

            return(albums);
        }
示例#6
0
        public Collection <ApiAudioAlbum> GetAlbums()
        {
            _parent.Trace("JRiver GetAlbums Running");
            var albums = new Collection <ApiAudioAlbum>();

            return(albums);

            try
            {
                getallItems("/MCWS/v1/Files/Search?Action=mpl&ActiveFile=-1&Zone=-1&ZoneType=ID&Query=[Media%20Type]=[Audio]");
                foreach (var Field in Allitems)
                {
                    string result = "";
                    if (Field.TryGetValue("Album", out result))
                    {
                        if (result != "" & result != null)
                        {
                            //Only take Artists from those entries that have Album Name -
                            string Name = Field.ValueOrDefault("Name");
                            long   Year;
                            if (Field.ValueOrDefault("Year") != "")
                            {
                                Year = Convert.ToInt64(Field.ValueOrDefault("Date (readable)"));
                            }
                            else
                            {
                                Year = 1900;
                            }
                            string FileKey  = "";
                            string Thumb2   = "";
                            string Fanart2  = "";
                            string cdart    = "";
                            string Frontjpg = "";
                            if (Field.TryGetValue("Key", out FileKey))
                            {
                                Thumb2  = "http://" + _parent.IP + ":" + _parent.Port + "/MCWS/v1/File/GetImage?File=" + FileKey + "&FileType=Key&Type=Thumbnail&Format=jpg&Token=" + _parent.JRiverAuthToken ?? "";
                                Fanart2 = "http://" + _parent.IP + ":" + _parent.Port + "/MCWS/v1/File/GetImage?File=" + FileKey + "&FileType=Key&Type=Full&Format=jpg&Token=" + _parent.JRiverAuthToken ?? "";
                            }
                            // use directory for fanart if exists
                            var filename = Field.ValueOrDefault("Filename");
                            if (filename != null & filename != "")
                            {
                                FileInfo[] fiJpgs = new System.IO.FileInfo(filename).Directory.GetFiles("*.jpg");
                                FileInfo[] fiPngs = new System.IO.FileInfo(filename).Directory.GetFiles("*.png");
                                if (fiJpgs.Length == 0 && fiPngs.Length == 0)
                                {
                                    _parent.Trace("No Jpgs or PngsFound");
                                }
                                else
                                {
                                    if (fiJpgs.Any(item => item.FullName.Contains("Front")))
                                    {
                                        Thumb2 = fiJpgs.First(item => item.FullName.Contains("Front")).FullName;
                                    }
                                    else if (fiJpgs.Any(item => item.FullName.Contains("folder")))
                                    {
                                        Thumb2 = fiJpgs.First(item => item.FullName.Contains("folder")).FullName;
                                    }
                                    else if (fiPngs.Any(item => item.FullName.Contains("cdart")))
                                    {
                                        Thumb2 = fiPngs.First(item => item.FullName.Contains("cdart")).FullName;
                                    }
                                    else if (fiJpgs.Any(item => item.FullName.Contains("jpg")))
                                    {
                                        Thumb2 = fiJpgs.First(item => item.FullName.Contains("jpg")).FullName;
                                    }
                                    // ****************************************************
                                    if (fiJpgs.Any(item => item.FullName.Contains("fanart")))
                                    {
                                        Fanart2 = fiJpgs.First(item => item.FullName.Contains(@"*fanart*")).FullName;
                                    }
                                    else if (fiPngs.Any(item => item.FullName.Contains("fanart.png")))
                                    {
                                        Fanart2 = fiPngs.First(item => item.FullName.Contains("fanart")).FullName;
                                    }
                                    else if (fiJpgs.Any(item => item.FullName.Contains("jpg")))
                                    {
                                        Fanart2 = fiJpgs.First(item => item.FullName.Contains("jpg")).FullName;
                                    }

                                    //var filePath = Path.GetDirectoryName(Field.ValueOrDefault("Filename"));
                                    //var fanartPath = Path.Combine(filePath, "fanart.jpg");
                                    //var cdartpath = Path.Combine(filePath, "cdart.png");
                                    //var ThumbPath = Path.Combine(filePath, "folder.jpg");
                                    //var BannerPath = Path.Combine(filePath, "banner.jpg");
                                    //var Frontpath = Path.Combine(filePath, "*Front.jpg");
                                    //System.IO.FileInfo fi = new System.IO.FileInfo(fanartPath);
                                    //System.IO.FileInfo ficdart = new System.IO.FileInfo(cdartpath);
                                    //System.IO.FileInfo fiThumb = new System.IO.FileInfo(ThumbPath);

                                    //if (fi.Exists)
                                    //{
                                    //    Fanart2 = fanartPath;  //if fanart.jpg exisits in directory with movie use this otherwise default to JRiver Thumb
                                    //}

                                    //if (fiThumb.Exists)
                                    //{
                                    //    Thumb2 = ThumbPath;
                                    //}
                                }
                            }


                            _parent.Trace("GetAlbum Art: " + Thumb2);
                            string GenreName = "Unknown";
                            if (Field.TryGetValue("Genre", out result))
                            {
                                GenreName = Field.ValueOrDefault("Genre");
                            }
                            string Album = "Unknown";
                            if (Field.TryGetValue("Album", out result))
                            {
                                Album = Field.ValueOrDefault("Album");
                            }
                            string Artist = "Unknown";
                            if (Field.TryGetValue("Artist", out result))
                            {
                                Artist = Field.ValueOrDefault("Artist");
                            }
                            if (Album != "" && Album != null)
                            {
                                var album = new ApiAudioAlbum
                                {
                                    IdAlbum  = (long)Xbmc.IDstringtoNumber(Album),
                                    Title    = Album,
                                    IdGenre  = (long)Xbmc.IDstringtoNumber(GenreName),
                                    IdArtist = (long)Xbmc.IDstringtoNumber(Artist),
                                    Artist   = Artist,
                                    Genre    = GenreName,
                                    Year     = Year,
                                    Thumb    = Thumb2,
                                    Fanart   = Fanart2,
                                    Hash     = Xbmc.Hash(Album)
                                };
                                if (!albums.Any(a => a.Title == Album))
                                {
                                    albums.Add(album);
                                }
                            }
                        }
                    }
                }
                return(albums);
            }
            catch (Exception ex)
            {
                _parent.Trace("JRiver GetALbums:" + ex);
                return(albums);
            }
        }
示例#7
0
        public Collection <ApiAudioAlbum> GetAlbums()
        {
            var albums = new Collection <ApiAudioAlbum>();

            //var AlbumID = GetMainSelection("Albums");


            try
            {
                _parent.Trace("Getting Album : Parent IP: " + _parent.IP);
                string NPurl   = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?Recursive=true&IncludeItemTypes=MusicAlbum&EnableImages=true";
                var    request = WebRequest.CreateHttp(NPurl);
                request.Method  = "get";
                request.Timeout = 500000;
                _parent.Trace("Genre Music Selection: " + NPurl);
                var authString = _parent.GetAuthString();
                request.Headers.Add("X-MediaBrowser-Token", Globals.EmbyAuthToken);
                request.Headers.Add("X-Emby-Authorization", authString);
                request.ContentType = "application/json; charset=utf-8";
                request.Accept      = "application/json; charset=utf-8";

                var response = request.GetResponse();

                if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK)
                {
                    System.IO.Stream dataStream = response.GetResponseStream();
                    //REMOVETHIS                   System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);

                    using (var sr = new System.IO.StreamReader(response.GetResponseStream()))
                    {
                        string json = sr.ReadToEnd();
                        _parent.Trace("--------------GETTING Albums Selection Result ------" + json);

                        var deserializer = new JavaScriptSerializer();
                        var ItemData     = deserializer.Deserialize <MusicAlbums.Rootobject>(json);
                        _parent.Trace("---------------Get Album  :  Issue: Results.Record Count: " + ItemData.TotalRecordCount);
                        long GenreIDSet = 0;
                        MusicGenres.Rootobject MusicGenres = GetMusicGenres();

                        foreach (var genre in ItemData.Items)
                        {
                            MusicSingleAlbumItem.Rootobject AlbumItem = GetSingleAlbum(genre.Id);

                            foreach (var findingid in MusicGenres.Items)
                            {
                                if (AlbumItem.Genres != null && AlbumItem.Genres.Length != 0)
                                {
                                    if (findingid.Name == AlbumItem.Genres.FirstOrDefault().ToString())
                                    {
                                        GenreIDSet = Xbmc.IDtoNumber(findingid.Id);
                                    }
                                }
                            }

                            try
                            {
                                string TempAlbumGenreID = "";
                                if (genre.AlbumArtists != null && genre.AlbumArtists.Length != 0)
                                {
                                    if (genre.AlbumArtists.FirstOrDefault() != null)
                                    {
                                        TempAlbumGenreID = genre.AlbumArtists.FirstOrDefault().Id;
                                    }
                                }

                                string TempAlbumGenre = "";
                                if (AlbumItem.Genres != null && AlbumItem.Genres.Length != 0)
                                {
                                    if (AlbumItem.Genres.FirstOrDefault() != null)
                                    {
                                        TempAlbumGenre = AlbumItem.Genres.FirstOrDefault().ToString();
                                    }
                                }


                                _parent.Trace("AudioLIBRARY Single Album Checks");
                                _parent.Trace(genre.Id.ToString());
                                _parent.Trace(genre.Name ?? "");
                                _parent.Trace(GenreIDSet.ToString());
                                _parent.Trace(Xbmc.IDtoNumber(TempAlbumGenreID).ToString());
                                _parent.Trace(genre.AlbumArtist ?? "");
                                _parent.Trace(TempAlbumGenre ?? "");
                                _parent.Trace(genre.ProductionYear.ToString());
                                _parent.Trace("http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "");

                                var album = new ApiAudioAlbum
                                {
                                    IdAlbum  = Xbmc.IDtoNumber(genre.Id),
                                    Title    = genre.Name ?? "",
                                    IdGenre  = GenreIDSet,
                                    IdArtist = Xbmc.IDtoNumber(TempAlbumGenreID),
                                    Artist   = genre.AlbumArtist ?? "",
                                    Genre    = TempAlbumGenre ?? "",
                                    Year     = genre.ProductionYear ?? 1999,
                                    Thumb    = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
                                };
                                albums.Add(album);
                            }
                            catch (Exception ex)
                            {
                                _parent.Trace("Music Album exception" + ex);
                            }
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                _parent.Trace("Music Album   exception" + Ex);
            }
            return(albums);
        }
示例#8
0
        public Collection <ApiAudioAlbum> GetAlbums()
        {
            var albums = new Collection <ApiAudioAlbum>();

            var AlbumID = GetMainSelection("Albums");


            try
            {
                _parent.Trace("Getting Album ARtists: Parent IP: " + _parent.IP);
                string NPurl   = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?ParentId=" + AlbumID;
                var    request = WebRequest.CreateHttp(NPurl);
                request.Method  = "get";
                request.Timeout = 150000;
                _parent.Trace("Genre Music Selection: " + NPurl);
                var authString = _parent.GetAuthString();
                request.Headers.Add("X-MediaBrowser-Token", Globals.EmbyAuthToken);
                request.Headers.Add("X-Emby-Authorization", authString);
                request.ContentType = "application/json; charset=utf-8";
                request.Accept      = "application/json; charset=utf-8";

                var response = request.GetResponse();

                if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK)
                {
                    System.IO.Stream dataStream = response.GetResponseStream();
                    //REMOVETHIS                   System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);

                    using (var sr = new System.IO.StreamReader(response.GetResponseStream()))
                    {
                        string json = sr.ReadToEnd();
                        _parent.Trace("--------------GETTING Albums Selection Result ------" + json);

                        var deserializer = new JavaScriptSerializer();
                        var ItemData     = deserializer.Deserialize <MusicAlbums.Rootobject>(json);
                        _parent.Trace("---------------Get Album  :  Issue: Results.Record Count: " + ItemData.TotalRecordCount);

                        foreach (var genre in ItemData.Items)
                        {
                            try
                            {
                                var album = new ApiAudioAlbum
                                {
                                    IdAlbum  = Xbmc.IDtoNumber(genre.Id),
                                    Title    = genre.Name ?? "",
                                    IdGenre  = 0,
                                    IdArtist = 0,
                                    Artist   = genre.AlbumArtist ?? "",
                                    Genre    = "",
                                    Year     = genre.ProductionYear,
                                    Thumb    = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
                                };
                                albums.Add(album);
                            }
                            catch (Exception ex)
                            {
                                _parent.Trace("Music Album exception" + ex);
                            }
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                _parent.Trace("Music Album   exception" + Ex);
            }
            return(albums);
        }