Пример #1
0
        public String getLyrics(String artist, String title, String album)
        {
            if (rateLimit != null && !rateLimit.tryIncrement())
            {
                return(null);
            }

            Dictionary <string, string> variableValues = new Dictionary <string, string>(variables.Count);

            Variable var;

            foreach (KeyValuePair <string, Variable> entry in variables)
            {
                var = entry.Value;
                switch (var.getType())
                {
                case Variable.Type.ARTIST:
                    variableValues.Add(entry.Key, var.process(artist, Encoding.UTF8));
                    break;

                case Variable.Type.TITLE:
                    variableValues.Add(entry.Key, var.process(title, Encoding.UTF8));
                    break;

                case Variable.Type.ALBUM:
                    variableValues.Add(entry.Key, var.process(album, Encoding.UTF8));
                    break;
                }
            }


            lyricsReloaded.getLogger().info("{0} tries to load the lyrics...", name);
            Lyrics lyrics = loader.getLyrics(this, variableValues);

            if (lyrics == null)
            {
                lyricsReloaded.getLogger().info("No lyrics found.");
                return(null);
            }

            string filteredLyrics = postFilters.applyFilters(lyrics.getContent(), lyrics.getEncoding());

            if (!validations.executeValidations(filteredLyrics))
            {
                lyricsReloaded.getLogger().info("Validation failed.");
                return(null);
            }

            return(filteredLyrics);
        }