public async Task <bool> LrcAutoSearch() { LrcMissing = false; LrcSearchBusy = true; _presenter.Lyrics = null; var _ttitle = _title; var _tartist = _artist; LrcCandidates = new ObservableCollection <ExternalLrcInfo>(); ParsedLrc lrc = null; try { lrc = await LyricsAgent.FetchLyricsAsync( _title, _artist, _candidates, LyricsAgent.BuildLyricsFilename(_title, _artist)); } catch { } if (_ttitle == _title && _tartist == _artist) { _presenter.Lyrics = lrc; LrcSearchBusy = false; LrcMissing = lrc == null || lrc.Sentences.Count == 0; return(true); } return(false); }
public LyricManualSelectionViewModel(string title, string artist, IList <ExternalLrcInfo> candidates) { SearchCommand = new RelayCommand(Search); LyricCandidates = new ObservableCollection <ExternalLrcInfo>(); _cacheName = LyricsAgent.BuildLyricsFilename(title, artist); _originalTitle = title; _originalArtist = artist; Title = title; Artist = artist; LoadData(candidates); }
private async void OnImportLyricsClick(Hyperlink sender, HyperlinkClickEventArgs args) { var picker = new FileOpenPicker(); picker.FileTypeFilter.Add(CommonSharedStrings.LrcFileSuffix); picker.FileTypeFilter.Add(CommonSharedStrings.TxtFileSuffix); picker.CommitButtonText = CommonSharedStrings.ManualSelectLyricButtonText; var lyricFile = await picker.PickSingleFileAsync(); if (lyricFile == null) { return; } var lrc = await LyricsAgent.ImportLyricsAsync( _vm.NowPlayingTitle, _vm.NowPlayingArtist, lyricFile); _vm.LrcMissing = lrc == null; LrcPresenter.Lyrics = lrc; }
private async void Search() { try { if (_isBusy) { return; } IsBusy = true; var list = new List <ExternalLrcInfo>(); await LyricsAgent.FetchLyricsAsync(Title, Artist, list, _cacheName, true); LoadData(list); } catch (Exception ex) { ResultText = string.Format(CommonSharedStrings.SearchError, ex.Message); } finally { IsBusy = false; } }
public async Task DeleteAsync() { await LyricsAgent.RemoveLyricsAsync(_originalTitle, _originalArtist); }
public async Task <ParsedLrc> ImportAsync(StorageFile file) { return(await LyricsAgent.ImportLyricsAsync(_originalTitle, _originalArtist, file)); }
public async Task <ParsedLrc> DownloadAsync() { var candidate = LyricCandidates[SelectedIndex]; return(await LyricsAgent.FetchLyricsAsync(candidate, LyricsAgent.BuildLyricsFilename(_originalTitle, _originalArtist))); }