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); }