/// <summary> Returns the expected file name of the .osu based on the beatmap's metadata. </summary> public string GetOsuFileName() { string songArtist = metadataSettings.GetFileNameFiltered(metadataSettings.artist); string songTitle = metadataSettings.GetFileNameFiltered(metadataSettings.title); string songCreator = metadataSettings.GetFileNameFiltered(metadataSettings.creator); string version = metadataSettings.GetFileNameFiltered(metadataSettings.version); return(songArtist + " - " + songTitle + " (" + songCreator + ") [" + version + "].osu"); }
/// <summary> Returns the beatmapset as a string in the format "Artist - Title (Creator)". </summary> public override string ToString() { if (beatmaps.Count > 0) { MetadataSettings settings = beatmaps.First().metadataSettings; string songArtist = settings.GetFileNameFiltered(settings.artist); string songTitle = settings.GetFileNameFiltered(settings.title); string songCreator = settings.GetFileNameFiltered(settings.creator); return(songArtist + " - " + songTitle + " (" + songCreator + ")"); } return("No beatmaps in set."); }
/// <summary> Returns the expected .osb file name based on the metadata of the first beatmap if any exists, otherwise null. </summary> public string GetOsbFileName() { MetadataSettings settings = beatmaps.FirstOrDefault()?.metadataSettings; if (settings == null) { return(null); } string songArtist = settings.GetFileNameFiltered(settings.artist); string songTitle = settings.GetFileNameFiltered(settings.title); string songCreator = settings.GetFileNameFiltered(settings.creator); return(songArtist + " - " + songTitle + " (" + songCreator + ").osb"); }
public void OnExecute() { if (MapsetPath == null) { Console.WriteLine("Missing argument: MapsetPath. Use -h to show help."); return; } BeatmapSet beatmapSet = new BeatmapSet(MapsetPath); if (Verbose) { if (OutputAsJSON) { Checker.OnLoadStart = LoadStartJS; Checker.OnLoadComplete = LoadFinishJS; } else { Checker.OnLoadStart = LoadStart; Checker.OnLoadComplete = LoadFinish; } } Checker.LoadCheckDLLs(); IEnumerable <Issue> issues = Checker.GetBeatmapSetIssues(beatmapSet) .Where(anIssue => anIssue.level >= IssueLevel); List <JSONIssue> mapIssues = new List <JSONIssue>(); foreach (var beatmapIssues in issues.GroupBy(anIssue => anIssue.beatmap)) { JSONIssue diffIssue = new JSONIssue(); Beatmap beatmap = beatmapIssues.Key; diffIssue.difficulty = beatmap?.ToString() ?? "[General]"; diffIssue.problems = new List <CategoryIssue>(); foreach (var category in beatmapIssues.GroupBy(anIssue => anIssue.CheckOrigin)) { if (beatmap == null || category.Any(anIssue => anIssue.AppliesToDifficulty(beatmap.GetDifficulty()))) { CategoryIssue categoryIssue = new CategoryIssue(); categoryIssue.problems = new List <Problem>(); categoryIssue.message = category.Key.GetMetadata().Message; foreach (Issue issue in category) { if (beatmap == null || issue.AppliesToDifficulty(beatmap.GetDifficulty())) { Problem problemIssue = new Problem(); problemIssue.level = issue.level; problemIssue.message = issue.message; categoryIssue.problems.Add(problemIssue); } } diffIssue.problems.Add(categoryIssue); } } mapIssues.Add(diffIssue); } Result mapResult = new Result(); Metadata mapMetadata = new Metadata(); MetadataSettings settings = beatmapSet.beatmaps.First().metadataSettings; mapMetadata.artist = settings.GetFileNameFiltered(settings.artist); mapMetadata.title = settings.GetFileNameFiltered(settings.title); mapMetadata.mapper = settings.GetFileNameFiltered(settings.creator); mapResult.metadata = mapMetadata; mapResult.results = mapIssues; if (OutputAsJSON) { Console.Write(JsonConvert.SerializeObject(mapResult)); } else { foreach (JSONIssue diff in mapIssues) { Console.WriteLine(diff.difficulty); foreach (CategoryIssue category in diff.problems) { Console.WriteLine(category.message); foreach (Problem timestamp in category.problems) { Console.WriteLine($"\t {timestamp.level} - {timestamp.message}"); } } Console.WriteLine(); } } }