public Lyrics GetLyrics(string title, string artist, int time, bool request_trans_lyrics)
        {
            if (TryGetLyricFromCacheFile(title, artist, time, request_trans_lyrics, out Lyrics lyrics))
            {
                return(lyrics);
            }

            var l = lyrics_provider?.ProvideLyric(artist, title, time, request_trans_lyrics);

            OutputCache(title, artist, time, l);

            return(l);
        }
示例#2
0
        private Model.Lyric InnerGetLyric(string artist, string title, int duration, bool useTranslated, bool useCache = false)
        {
            if (useCache && TryGetCache(title, artist, duration, useTranslated, out Model.Lyric cached))
            {
                return(cached);
            }

            Model.Lyric lyric = _sourceProvider?.ProvideLyric(artist, title, duration, useTranslated);
            if (useCache)
            {
                WriteCache(title, artist, duration, lyric);
            }
            return(lyric);
        }
示例#3
0
        private async Task <Lyrics> InnerGetLyric(string artist, string title, int duration, bool useTranslated, bool useCache = false)
        {
            if (useCache && TryGetCache(title, artist, duration, useTranslated, out Lyrics cached))
            {
                return(cached);
            }

            Lyrics lyric = await Task.Run(() => _sourceProvider?.ProvideLyric(artist, title, duration, useTranslated));

            if (useCache)
            {
                WriteCache(title, artist, duration, lyric);
            }
            return(lyric);
        }
        public Lyrics GetLyricFromExcplictSource(SourceProviderBase provider, string artist, string title, int time, bool request_trans_lyrics)
        {
            var lyrics = provider.ProvideLyric(artist, title, time, request_trans_lyrics);

            return(lyrics);
        }