コード例 #1
0
        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);
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
 public async Task DeleteAsync()
 {
     await LyricsAgent.RemoveLyricsAsync(_originalTitle, _originalArtist);
 }
コード例 #6
0
 public async Task <ParsedLrc> ImportAsync(StorageFile file)
 {
     return(await LyricsAgent.ImportLyricsAsync(_originalTitle, _originalArtist, file));
 }
コード例 #7
0
        public async Task <ParsedLrc> DownloadAsync()
        {
            var candidate = LyricCandidates[SelectedIndex];

            return(await LyricsAgent.FetchLyricsAsync(candidate, LyricsAgent.BuildLyricsFilename(_originalTitle, _originalArtist)));
        }