Example #1
0
        public bool OnSave(IDataMember member)
        {
            member.SetValue("Name", Name);
            member.SetValue("Description", Description);
            member.SetValue("Author", Author);
            if (Thumbnail != null)
            {
                if (Thumbnail.ToString().StartsWith("http"))
                {
                    member.SetValue("Thumbnail", Thumbnail.ToString());
                }
                else
                {
                    string thumbnailFileName =
                        $"{Name}_thumbnail{Path.GetExtension(Thumbnail.LocalPath)}";
                    member.SetValue("Thumbnail", thumbnailFileName);
                    string filePath = Path.Combine(NebulaClient.Playlists.ThumbnailCacheDirectory.FullName, thumbnailFileName);
                    if (!System.IO.File.Exists(filePath))
                    {
                        System.IO.File.Copy(Thumbnail.LocalPath, filePath);
                    }
                }
            }

            foreach (IMediaInfo mediaInfo in Medias)
            {
                member.CreateChild("Media", mediaInfo);
            }
            return(true);
        }
Example #2
0
        public bool OnLoad(IDataMember member)
        {
            Name        = member.GetString("Name");
            Description = member.GetString("Description");
            Author      = member.GetString("Author");
            string thumbnail = member.GetString("Thumbnail");

            if (thumbnail.StartsWith("http", StringComparison.InvariantCultureIgnoreCase))
            {
                Thumbnail = Uri.TryCreate(thumbnail, UriKind.RelativeOrAbsolute, out Uri thumbnailUri) ? thumbnailUri : new Uri("https://i.imgur.com/Od5XogD.png");
            }
            else
            {
                Thumbnail = new Uri(Path.Combine(NebulaClient.Playlists.ThumbnailCacheDirectory.FullName,
                                                 thumbnail));
            }

            foreach (IDataMember dataMember in member.GetChilds())
            {
                Type type = Type.GetType(dataMember.GetString("ProviderType"));
                if (type == null)
                {
                    continue;
                }
                object instance = Activator.CreateInstance(type);
                if (!(instance is IMediaInfo mediaInfo))
                {
                    continue;
                }
                mediaInfo.OnLoad(dataMember);
                Medias.Add(mediaInfo);
            }

            return(true);
        }
Example #3
0
 public bool OnSave(IDataMember member)
 {
     return(false);
 }
Example #4
0
 public bool OnLoad(IDataMember member)
 {
     return(false);
 }