Example #1
0
        public static void Transform(Disc disc)
        {
            var raw = new DiscMetadata.RawMetadata
            {
                HardwareVolumeLabel = GetHardwareVolumeLabel(disc),
                DiscInf             = GetAnyDVDDiscInf(disc),
                AllBdmtTitles       = GetAllBdmtTitles(disc),
                DboxTitle           = GetDboxTitle(disc),
                V_ISAN = GetVISAN(disc)
            };

            var derived = new DiscMetadata.DerivedMetadata
            {
                VolumeLabel          = GetVolumeLabel(raw),
                VolumeLabelSanitized = GetVolumeLabelSanitized(raw),
                ValidBdmtTitles      = GetValidBdmtTitles(raw.AllBdmtTitles),
                DboxTitleSanitized   = GetDboxTitleSanitized(raw),
                SearchQueries        = new List <SearchQuery>() /* populated by DiscTransformer */
            };

            var metadata = new DiscMetadata
            {
                Raw     = raw,
                Derived = derived
            };

            disc.Metadata = metadata;
        }
Example #2
0
        private static void AddSearchQuery(DiscMetadata.RawMetadata raw, DiscMetadata.DerivedMetadata derived)
        {
            var isan = raw.ISAN;

            if (isan != null && !string.IsNullOrWhiteSpace(isan.Title))
            {
                // TODO: Get language from isan.org
                // Don't insert twice
                if (!derived.SearchQueries.Any(query => query.Title == isan.Title && query.Year == isan.Year))
                {
                    derived.SearchQueries.Insert(0, new SearchQuery {
                        Title = isan.Title, Year = isan.Year
                    });
                }
            }
        }
Example #3
0
        private static void Lookup(ProgressToken token, DiscMetadata.RawMetadata raw, DiscMetadata.DerivedMetadata derived)
        {
            var provider = new IsanMetadataProvider(token);

            provider.Populate(raw.V_ISAN);

            var isan = raw.ISAN;

            if (isan != null && !string.IsNullOrWhiteSpace(isan.Title))
            {
                // TODO: Get language from isan.org
                // Don't insert twice
                if (!derived.SearchQueries.Any(query => query.Title == isan.Title && query.Year == isan.Year))
                {
                    derived.SearchQueries.Insert(0, new SearchQuery {
                        Title = isan.Title, Year = isan.Year
                    });
                }
            }
        }
Example #4
0
        private static void Lookup(ProgressToken token, DiscMetadata.RawMetadata raw, DiscMetadata.DerivedMetadata derived)
        {
            var provider = new IsanMetadataProvider(token);

            provider.Populate(raw.V_ISAN);
        }
Example #5
0
 private static string GetVolumeLabelSanitized(DiscMetadata.RawMetadata raw)
 {
     return(SanitizeVolumeLabel(GetVolumeLabel(raw)));
 }
Example #6
0
 private static string GetVolumeLabel(DiscMetadata.RawMetadata raw)
 {
     return(raw.DiscInf != null ? raw.DiscInf.VolumeLabel : raw.HardwareVolumeLabel);
 }
Example #7
0
 private static string GetDboxTitleSanitized(DiscMetadata.RawMetadata raw)
 {
     return(SanitizeTitle(raw.DboxTitle));
 }