/// <summary> /// Делает попытку поиска обложки на LastFM /// </summary> /// <param name="song">Песня, обложку которой будем искать</param> /// <returns>True: Обложка найдена</returns> public bool FindCover(Song song) { FoundCoverType = CoverTypes.None; Cover.CoverSizes covers = new Cover.CoverSizes(); //Когда-нибудь я это отрефакторю (или кто-нибудь другой) // Получаем инфу о треке, от самой специфичной (для композиции) до самой обобщенной (для артиста) // и как только инфа содержит нужную по размерам обложку — прекращаем поиск if (!String.IsNullOrEmpty((covers = TrackGetInfo(song.Artist, song.Name).Covers).Large)) { FoundCoverType = CoverTypes.Track; } else if (!String.IsNullOrEmpty((covers = AlbumGetInfo(song.Artist, song.Album).Covers).Large)) { FoundCoverType = CoverTypes.Album; } else if (!String.IsNullOrEmpty((covers = ArtistGetInfo(song.Artist).Covers).Large)) { FoundCoverType = CoverTypes.Artist; } // если нашли хоть одну обложку, то скачиваем и изменяем соответсвующую переменную if (FoundCoverType != CoverTypes.None) { DownloadCover(covers.Large, GetPathFromCoverType(FoundCoverType)); _isFound = true; } return _isFound; }
/* {name} - Название песни {artist} - Исполнитель песни {playlist} - Плейлист {album} - Альбом {count} - Количество исполнений {genre} - Жанр */ public string ProcessTemplate(string template, Song currentSong) { Dictionary<string, string> replaceDict = new Dictionary<string, string>(6) { {"{name}", currentSong.Name}, {"{artist}", currentSong.Artist}, {"{playlist}", currentSong.Playlist}, {"{album}", currentSong.Album}, {"{count}", currentSong.Count.ToString()}, {"{genre}", currentSong.Genre}, }; return TextReplacer.DictonaryReplace(template, replaceDict); }
public Song GetCurrentSong() { Song tmp = new Song() { Album = app.CurrentTrack.Album, Artist = app.CurrentTrack.Artist, Count = app.CurrentTrack.PlayedCount, Genre = app.CurrentTrack.Genre, Name = app.CurrentTrack.Name, Playlist = app.CurrentTrack.Playlist.Name, Cover = GetCover(), }; return tmp; }
protected virtual void OnSongChanged(Song newsong) { _previousSong = newsong; var handler = SongChanged; if (handler != null) handler(this, newsong); }
private void PlOnSongChanged(object sender, Song newsong) { songNameLabel.Invoke(changeLabelText, new object[] {songNameLabel, _logic.CurrentSong.Name}); songArtistLabel.Invoke(changeLabelText, new object[] { songArtistLabel, _logic.CurrentSong.Artist }); albumArtBox.Invoke(changeBoxImage, new object[] { albumArtBox, _logic.CurrentSong.Cover }); ProcessTemplate(); _logic.StatusToChange = textBox2.Text; }
public AudioEntry SearchAudio(Song song) { return _audioFactory.Search(String.Format("{0} {1}", song.Artist, song.Name), AudioSortOrder.ByPopularity, false, 1, 0, false).First(); }