コード例 #1
0
ファイル: GoogleMusicSongEx.cs プロジェクト: anatolse/gMusicW
        public static Song ToSong(this GoogleMusicSong googleMusicSong)
        {
            var song = new Song();

            Mapper(googleMusicSong, song);

            return(song);
        }
コード例 #2
0
 public static bool IsVisualMatch(GoogleMusicSong googleMusicSong, Song song)
 {
     return(string.Equals(song.AlbumArtistTitleNorm, googleMusicSong.AlbumArtist.Trim().Normalize(), StringComparison.CurrentCulture) &&
            string.Equals(song.ArtistTitleNorm, googleMusicSong.Artist.Trim().Normalize(), StringComparison.CurrentCulture) &&
            string.Equals(song.AlbumTitleNorm, googleMusicSong.Album.Trim().Normalize(), StringComparison.CurrentCulture) &&
            string.Equals(song.GenreTitleNorm, googleMusicSong.Genre.Trim().Normalize(), StringComparison.CurrentCulture) &&
            (song.Rating == googleMusicSong.Rating));
 }
コード例 #3
0
        IDictionary <string, object> ToDictionaryItem(GoogleMusicSong song)
        {
            var d = new JavaDictionary <string, object> ();

            d ["title"]  = song.Title;
            d ["artist"] = song.Artist;
            d ["time"]   = TimeSpan.FromMilliseconds(song.Duration);
            return(d);
        }
コード例 #4
0
        public static Song ToSong(this GoogleMusicSong googleMusicSong)
        {
            var song = new Song {
                IsLibrary = true
            };

            Mapper(googleMusicSong, song);

            return(song);
        }
コード例 #5
0
ファイル: GoogleMusicSongEx.cs プロジェクト: anatolse/gMusicW
 public static bool IsVisualMatch(GoogleMusicSong googleMusicSong, Song song)
 {
     return(string.Equals(song.AlbumArtistTitleNorm, googleMusicSong.AlbumArtist.Trim().Normalize(), StringComparison.CurrentCulture) &&
            string.Equals(song.ArtistTitleNorm, googleMusicSong.Artist.Trim().Normalize(), StringComparison.CurrentCulture) &&
            string.Equals(song.AlbumTitleNorm, googleMusicSong.Album.Trim().Normalize(), StringComparison.CurrentCulture) &&
            string.Equals(song.GenreTitleNorm, googleMusicSong.Genre.Trim().Normalize(), StringComparison.CurrentCulture) &&
            (song.AlbumArtUrl == (string.IsNullOrEmpty(googleMusicSong.AlbumArtUrl) ? null : new Uri("http:" + googleMusicSong.AlbumArtUrl))) &&
            (song.Rating == googleMusicSong.Rating) &&
            string.Equals(song.TitleNorm, googleMusicSong.Title.Trim().Normalize(), StringComparison.CurrentCulture) &&
            (song.Track == googleMusicSong.Track) &&
            (song.Year == googleMusicSong.Year));
 }
コード例 #6
0
ファイル: GoogleMusicSongEx.cs プロジェクト: anatolse/gMusicW
        public static void Mapper(GoogleMusicSong googleMusicSong, Song song)
        {
            song.AlbumArtistTitle     = (googleMusicSong.AlbumArtist ?? string.Empty).Trim();
            song.AlbumArtistTitleNorm = (googleMusicSong.AlbumArtist ?? string.Empty).Trim().Normalize();
            song.ArtistTitle          = (googleMusicSong.Artist ?? string.Empty).Trim();
            song.ArtistTitleNorm      = (googleMusicSong.Artist ?? string.Empty).Trim().Normalize();
            song.AlbumTitle           = (googleMusicSong.Album ?? string.Empty).Trim();
            song.AlbumTitleNorm       = (googleMusicSong.Album ?? string.Empty).Trim().Normalize();
            song.GenreTitle           = (googleMusicSong.Genre ?? string.Empty).Trim();
            song.GenreTitleNorm       = (googleMusicSong.Genre ?? string.Empty).Trim().Normalize();
            string imageBaseUrlBase = googleMusicSong.AlbumArtUrl ?? googleMusicSong.ImageBaseUrl;

            song.AlbumArtUrl = string.IsNullOrEmpty(imageBaseUrlBase)
                ? null
                : new Uri("http:" + imageBaseUrlBase);
            song.Composer       = googleMusicSong.Composer;
            song.Disc           = googleMusicSong.Disc;
            song.TotalDiscs     = googleMusicSong.TotalDiscs;
            song.Duration       = TimeSpan.FromMilliseconds(googleMusicSong.DurationMillis);
            song.ProviderSongId = googleMusicSong.Id;
            song.LastPlayed     = DateTimeExtensions.FromUnixFileTime(googleMusicSong.LastPlayed / 1000);
            song.CreationDate   = DateTimeExtensions.FromUnixFileTime(googleMusicSong.CreationDate / 1000);
            song.PlayCount      = googleMusicSong.PlayCount;
            song.Rating         = (byte)(googleMusicSong.Rating < 0 ? 0 : googleMusicSong.Rating);
            song.Title          = (googleMusicSong.Title ?? string.Empty).Trim();
            song.TitleNorm      = (googleMusicSong.Title ?? string.Empty).Trim().Normalize();
            song.Track          = googleMusicSong.Track;
            song.TotalTracks    = googleMusicSong.TotalTracks;
            song.Year           = googleMusicSong.Year;
            song.Comment        = googleMusicSong.Comment;
            song.Bitrate        = googleMusicSong.Bitrate;

            int type;

            if (!int.TryParse(googleMusicSong.Type, out type))
            {
                if (string.Equals(googleMusicSong.Type, "EPHEMERAL_SUBSCRIPTION", StringComparison.OrdinalIgnoreCase))
                {
                    type = 1;
                }
                else
                {
                    type = 2;
                }
            }

            song.StreamType = (StreamType)type;
            song.StoreId    = googleMusicSong.StoreId;
            song.IsLibrary  = true;
        }
コード例 #7
0
 public static void Mapper(GoogleMusicSong googleMusicSong, Song song)
 {
     song.ClientId             = googleMusicSong.ClientId;
     song.AlbumArtistTitle     = (googleMusicSong.AlbumArtist ?? string.Empty).Trim();
     song.AlbumArtistTitleNorm = (googleMusicSong.AlbumArtist ?? string.Empty).Trim().Normalize();
     song.ArtistTitle          = (googleMusicSong.Artist ?? string.Empty).Trim();
     song.ArtistTitleNorm      = (googleMusicSong.Artist ?? string.Empty).Trim().Normalize();
     song.AlbumTitle           = (googleMusicSong.Album ?? string.Empty).Trim();
     song.AlbumTitleNorm       = (googleMusicSong.Album ?? string.Empty).Trim().Normalize();
     song.GenreTitle           = (googleMusicSong.Genre ?? string.Empty).Trim();
     song.GenreTitleNorm       = (googleMusicSong.Genre ?? string.Empty).Trim().Normalize();
     song.ArtistArtUrl         = googleMusicSong.ArtistArtRef == null || googleMusicSong.ArtistArtRef.Length == 0 ? null : new Uri(googleMusicSong.ArtistArtRef[0].Url);
     song.AlbumArtUrl          = googleMusicSong.AlbumArtRef == null || googleMusicSong.AlbumArtRef.Length == 0 ? null : new Uri(googleMusicSong.AlbumArtRef[0].Url);
     song.Composer             = googleMusicSong.Composer;
     song.Disc            = googleMusicSong.DiscNumber;
     song.TotalDiscs      = googleMusicSong.TotalDiscCount;
     song.Duration        = TimeSpan.FromMilliseconds(googleMusicSong.DurationMillis);
     song.SongId          = string.IsNullOrEmpty(googleMusicSong.Id) ? googleMusicSong.StoreId : googleMusicSong.Id;
     song.ServerRecent    = DateTimeExtensions.FromUnixFileTime(googleMusicSong.RecentTimestamp / 1000);
     song.CreationDate    = DateTimeExtensions.FromUnixFileTime(googleMusicSong.CreationTimestamp / 1000);
     song.LastModified    = DateTimeExtensions.FromUnixFileTime(googleMusicSong.LastModifiedTimestamp / 1000);
     song.BeatsPerMinute  = googleMusicSong.BeatsPerMinute;
     song.EstimatedSize   = googleMusicSong.EstimatedSize;
     song.ServerPlayCount = googleMusicSong.PlayCount;
     song.Rating          = (byte)(googleMusicSong.Rating < 0 ? 0 : googleMusicSong.Rating);
     song.Title           = (googleMusicSong.Title ?? string.Empty).Trim();
     song.TitleNorm       = (googleMusicSong.Title ?? string.Empty).Trim().Normalize();
     song.Track           = googleMusicSong.TrackNumber;
     song.TotalTracks     = googleMusicSong.TotalTrackCount;
     song.Year            = googleMusicSong.Year;
     song.Comment         = googleMusicSong.Comment;
     song.TrackType       = (StreamType)googleMusicSong.TrackType;
     song.ContentType     = googleMusicSong.ContentType;
     song.TrackAvailableForSubscription = googleMusicSong.TrackAvailableForSubscription;
     song.TrackAvailableForPurchase     = googleMusicSong.TrackAvailableForPurchase;
     song.AlbumAvailableForPurchase     = googleMusicSong.AlbumAvailableForPurchase;
     song.StoreId       = googleMusicSong.StoreId;
     song.GoogleAlbumId = googleMusicSong.AlbumId;
     // TODO: We do not support songs with multiple artists
     song.GoogleArtistId = googleMusicSong.ArtistId != null && googleMusicSong.ArtistId.Length != 0
         ? googleMusicSong.ArtistId[0]
         : string.Empty;
     song.Nid       = googleMusicSong.Nid;
     song.Recent    = song.ServerRecent > song.StatsRecent ? song.ServerRecent : song.StatsRecent;
     song.PlayCount = Math.Max(song.ServerPlayCount, song.PlayCount);
 }