Пример #1
0
        public void PlaySong(ApiAudioSong audio)
        {
            if (audio == null)
            {
                return;
            }
            if (!_parent.IsConnected())
            {
                return;
            }
            var args  = new JsonObject();
            var items = new JsonObject();

            args["songid"]      = audio.IdSong;
            items["item"]       = args;
            items["playlistid"] = 1;
            var plId = new JsonObject();

            plId["playlistid"] = 1;
            var item = new JsonObject();

            item["item"] = plId;
            _parent.JsonCommand("Playlist.Clear", plId);
            _parent.JsonCommand("Playlist.Add", items);
            _parent.JsonCommand("Playlist.Play", item);
        }
Пример #2
0
 public void PlaySong(ApiAudioSong audio)
 {
     if (audio == null)
     {
         return;
     }
     if (!_parent.IsConnected())
     {
         return;
     }
     _parent.Command("PlayFile(" + audio.Path + audio.FileName + ";0)");
 }
Пример #3
0
        public void PlaySong(ApiAudioSong audio)
        {
            if (audio == null)
            {
                return;
            }
            if (!_parent.IsConnected())
            {
                return;
            }

            EmbyPlayPlayList(audio.Path);
        }
Пример #4
0
        public void PlaySong(ApiAudioSong audio)
        {
            if (audio == null)
            {
                return;
            }
            if (!_parent.IsConnected())
            {
                return;
            }
            var args = new JsonObject();

            args["songid"] = audio.IdSong;
            _parent.AsyncJsonCommand("XBMC.Play", args);
        }
Пример #5
0
        public Collection <ApiAudioSong> GetSongs()
        {
            var songs = new Collection <ApiAudioSong>();

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

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

            if (result != null)
            {
                if (result.Contains("songs"))
                {
                    foreach (JsonObject genre in (JsonArray)result["songs"])
                    {
                        try
                        {
                            var song = new ApiAudioSong
                            {
                                IdSong   = (long)(JsonNumber)genre["songid"],
                                Title    = genre["title"].ToString(),
                                Track    = (long)(JsonNumber)genre["track"],
                                Duration = (long)(JsonNumber)genre["duration"],
                                Year     = (long)(JsonNumber)genre["year"],
                                FileName = "",
                                IdAlbum  = (long)(JsonNumber)genre["albumid"],
                                Album    = genre["album"].ToString(),
                                Path     = "",
                                IdArtist = 0,
                                Artist   = _parent.JsonArrayToString((JsonArray)genre["artist"]),
                                IdGenre  = 0,
                                Genre    = _parent.JsonArrayToString((JsonArray)genre["genre"]),
                                Thumb    = genre["thumbnail"].ToString(),
                            };
                            songs.Add(song);
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }

            return(songs);
        }
Пример #6
0
        public Collection <ApiAudioSong> GetSongs()
        {
            var          songs = new Collection <ApiAudioSong>();
            const string req   = "SELECT idSong,strTitle,iTrack,iDuration,iYear,strFileName,idAlbum,strAlbum,strPath,idArtist,strArtist,idGenre,strGenre,strThumb FROM songview";


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

            if (dblines == null)
            {
                return(songs);
            }
            foreach (var dbline in dblines)
            {
                if (dbline.Length < 14)
                {
                    _parent.Log("Invalid request DATA : " + dbline);
                    continue;
                }
                var song = new ApiAudioSong
                {
                    IdSong   = Xbmc.StringToNumber(dbline[0]),
                    Title    = dbline[1],
                    Track    = Xbmc.StringToNumber(dbline[2]),
                    Duration = Xbmc.StringToNumber(dbline[3]),
                    Year     = Xbmc.StringToNumber(dbline[4]),
                    FileName = dbline[5],
                    IdAlbum  = Xbmc.StringToNumber(dbline[6]),
                    Album    = dbline[7],
                    Path     = dbline[8],
                    IdArtist = Xbmc.StringToNumber(dbline[9]),
                    Artist   = dbline[10],
                    IdGenre  = Xbmc.StringToNumber(dbline[11]),
                    Genre    = dbline[12],
                    Thumb    = dbline[13],
                };
                var thumbparts = dbline[13].Split('/');
                var hash       = thumbparts[thumbparts.Length - 1].Replace(".tbn", "");
                song.Hash = hash;

                songs.Add(song);
            }
            return(songs);
        }
Пример #7
0
        public Collection <ApiAudioSong> GetSongs()
        {
            var songs = new Collection <ApiAudioSong>();

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

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

            foreach (JsonObject dbline in dblines)
            {
                var song = new ApiAudioSong
                {
                    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["song"],
                    Year     = Convert.ToInt32("0" + (string)dbline["year"], CultureInfo.InvariantCulture),
                    Hash     = MediaPortal.Hash((string)dbline["song"]),
                    Album    = (string)dbline["album"],
                    Duration = Convert.ToInt32("0" + (string)dbline["duration"], CultureInfo.InvariantCulture),
                    FileName = (string)dbline["filename"],
                    Track    = Convert.ToInt32("0" + (string)dbline["tracknumber"], CultureInfo.InvariantCulture),
                    IdArtist = 0,
                    IdSong   = Convert.ToInt32("0" + (string)dbline["id"], CultureInfo.InvariantCulture),
                    Path     = ""
                };

                songs.Add(song);
            }

            return(songs);
        }
Пример #8
0
 public Yatse2AudioSong(ApiAudioSong apiAudioSong)
 {
     if (apiAudioSong == null)
     {
         return;
     }
     Title    = apiAudioSong.Title;
     IdAlbum  = apiAudioSong.IdAlbum;
     IdArtist = apiAudioSong.IdArtist;
     Artist   = apiAudioSong.Artist;
     Genre    = apiAudioSong.Genre;
     IdGenre  = apiAudioSong.IdGenre;
     Year     = apiAudioSong.Year;
     Thumb    = apiAudioSong.Thumb;
     Fanart   = apiAudioSong.Fanart;
     Hash     = apiAudioSong.Hash;
     Album    = apiAudioSong.Album;
     Duration = apiAudioSong.Duration;
     FileName = apiAudioSong.FileName;
     IdSong   = apiAudioSong.IdSong;
     Path     = apiAudioSong.Path;
     Track    = apiAudioSong.Track;
 }
Пример #9
0
        public ApiAudioSong ToApi()
        {
            var api = new ApiAudioSong
            {
                Album    = Album,
                Artist   = Artist,
                Duration = Duration,
                Fanart   = Fanart,
                Hash     = Hash,
                IdArtist = IdArtist,
                Thumb    = Thumb,
                FileName = FileName,
                Genre    = Genre,
                IdAlbum  = IdAlbum,
                IdGenre  = IdGenre,
                IdSong   = IdSong,
                Path     = Path,
                Title    = Title,
                Track    = Track,
                Year     = Year
            };

            return(api);
        }
Пример #10
0
        public Collection <ApiAudioSong> GetSongs()
        {
            _parent.Trace("JRiver GetSongs Running");
            var songs = new Collection <ApiAudioSong>();

            return(songs);

            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("Name", out result))
                    {
                        if (result != "" && result != null)
                        {
                            //Only take Artists from those entries that have Album Name -
                            string GenreName = Field.ValueOrDefault("Genre");
                            string Artist    = Field.ValueOrDefault("Artist");
                            string Name      = Field.ValueOrDefault("Name");
                            string Album     = Field.ValueOrDefault("Album");
                            string Filename  = Field.ValueOrDefault("Filename");
                            long   Year;
                            try
                            {
                                if (Field.ValueOrDefault("Year") != "")
                                {
                                    Year = Convert.ToInt64(Field.ValueOrDefault("Date (readable)"));
                                }
                                else
                                {
                                    Year = 1900;
                                }
                            }
                            catch
                            {
                                _parent.Trace("Error Date Conversion: Using 1900");
                                Year = 1900;
                            }
                            long TrackNo;
                            try
                            {
                                if (Field.ValueOrDefault("Track #") != "")
                                {
                                    TrackNo = Convert.ToInt64(Field.ValueOrDefault("Track #"));
                                }
                                else
                                {
                                    TrackNo = 1;
                                }
                            }
                            catch
                            {
                                _parent.Trace("Error TrackNo Using 1");
                                TrackNo = 1;
                            }
                            int    DurationNumber = 0;
                            string Duration       = "";
                            if (Field.TryGetValue("Duration", out Duration))
                            {
                                DurationNumber = int.TryParse(Duration, out DurationNumber) ? DurationNumber : 0;
                            }

                            string FileKey = "";
                            string Thumb2  = "";
                            string Fanart2 = "";
                            string cdart   = "";
                            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 != "")
                            {
                                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");

                                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;
                                }

                                if (ficdart.Exists)
                                {
                                    cdart = cdartpath;
                                }

                                // use cdart or album
                                if (cdart != "")  // use this else Thumb (folder.jpg currently) or failing that Thumb from JRiver
                                                  // can access mp3 file data??
                                {
                                    Thumb2 = cdart;
                                }
                            }

                            if (Name != "")
                            {
                                var song = new ApiAudioSong
                                {
                                    IdSong   = (long)Xbmc.IDstringtoNumber(Name),
                                    Title    = Name,
                                    Track    = TrackNo,
                                    Duration = (long)DurationNumber,
                                    Year     = (long)Year,
                                    FileName = "",
                                    IdAlbum  = (long)Xbmc.IDstringtoNumber(Album),
                                    Album    = Album,
                                    Path     = Filename,
                                    IdArtist = (long)Xbmc.IDstringtoNumber(Artist),
                                    Artist   = Artist,
                                    IdGenre  = (long)Xbmc.IDstringtoNumber(GenreName),
                                    Genre    = GenreName,
                                    Thumb    = Thumb2,
                                };
                                songs.Add(song);
                            }
                        }
                    }
                }

                return(songs);
            }
            catch (Exception ex)
            {
                _parent.Trace("JRiver GetSongs:" + ex);
                return(songs);
            }
        }
Пример #11
0
        public Collection <ApiAudioSong> GetSongs()
        {
            var songs = new Collection <ApiAudioSong>();

            // var MusicID = GetMainSelection("Songs");


            try
            {
                _parent.Trace("Getting Songs: Parent IP: " + _parent.IP);
                string NPurl   = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?Recursive=true&IncludeItemTypes=Audio&EnableImages=true";
                var    request = WebRequest.CreateHttp(NPurl);
                request.Method  = "get";
                request.Timeout = 150000;
                _parent.Trace("Songs 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();


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

                        var deserializer = new JavaScriptSerializer();
                        deserializer.MaxJsonLength = Int32.MaxValue;
                        long GenreIDSet = 0;
                        var  ItemData   = deserializer.Deserialize <MusicSongs.Rootobject>(json);
                        MusicGenres.Rootobject MusicGenres = GetMusicGenres();

                        foreach (var genre in ItemData.Items)
                        {
                            // Do get more data - but takes FOREVER !!
                            MusicSongSingleItem.Rootobject Songitem = GetSingleSong(genre.Id);

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

                            var RoundSeconds = (genre.RunTimeTicks / 10000000.00) ?? 0;

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

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


                            try
                            {
                                var song = new ApiAudioSong
                                {
                                    IdSong   = Xbmc.IDtoNumber(genre.Id),
                                    Title    = genre.Name ?? "",
                                    Track    = Convert.ToInt64(genre.IndexNumber ?? 0),
                                    Duration = Convert.ToInt64(RoundSeconds),
                                    Year     = Convert.ToInt64(genre.ProductionYear ?? 1999),
                                    FileName = Songitem.Path,
                                    IdAlbum  = Xbmc.IDtoNumber(genre.AlbumId),
                                    Album    = genre.Album ?? "",
                                    Path     = genre.Id,
                                    IdArtist = Xbmc.IDtoNumber(TempSongGenreID),
                                    Artist   = genre.Artists.FirstOrDefault() ?? "",
                                    IdGenre  = GenreIDSet,
                                    Genre    = TempSongGenre ?? "",
                                    Thumb    = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
                                };
                                songs.Add(song);
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                }

                return(songs);
            }


            catch (Exception ex)
            {
                _parent.Trace("Exception Caught: " + ex);
                return(null);
            }
        }
Пример #12
0
 public void PlaySong(ApiAudioSong audio)
 {
 }