/// <summary>
        /// Retrieves the specified playlist. If the playlist doesn't exist, creates one using the default.
        /// </summary>
        /// <param name="builtInPlaylist"></param>
        /// <returns></returns>
        public static Playlist GetPlaylist(BuiltInPlaylist builtInPlaylist)
        {
            Playlist playlist       = null;
            bool     playlistExists = AvailablePlaylists.TryGetValue(builtInPlaylist, out playlist);

            if (!playlistExists || playlist == null)
            {
                var defPlaylist = DefaultPlaylists[builtInPlaylist];
                var path        = FileIO.GetPlaylistFilePath(defPlaylist.FileName);
                if (string.IsNullOrEmpty(path)) // If GetPlaylistFilePath returned null, the file doesn't exist
                {
                    //if (AvailablePlaylists[builtInPlaylist] == null)
                    //    AvailablePlaylists[builtInPlaylist] = defPlaylist;
                    playlist = defPlaylist;
                }
                else
                {
                    playlist          = FileIO.ReadPlaylist(path);
                    playlist.FileName = path;
                    Logger.log?.Debug($"Playlist loaded from file: {playlist.FileName} with {playlist.Songs?.Count ?? 0} songs.");
                }
                AvailablePlaylists.Add(builtInPlaylist, playlist);
            }
            Logger.log?.Debug($"Returning {playlist?.FileName}: {playlist?.Title} for {builtInPlaylist.ToString()} with {playlist?.Songs?.Count} songs.");
            return(playlist);
        }
示例#2
0
 public static string GetBuiltinPlaylistFilename(BuiltInPlaylist builtInPlaylist)
 {
     return(builtInPlaylist switch
     {
         BuiltInPlaylist.BeatSyncAll => "BeatSyncPlaylist",
         BuiltInPlaylist.BeastSaberBookmarks => "BeatSyncBSaberBookmarks",
         BuiltInPlaylist.BeastSaberFollows => "BeatSyncBSaberFollows",
         BuiltInPlaylist.BeastSaberCurator => "BeatSyncBSaberCuratorRecommended",
         BuiltInPlaylist.ScoreSaberTopRanked => "BeatSyncScoreSaberTopRanked",
         BuiltInPlaylist.ScoreSaberLatestRanked => "BeatSyncScoreSaberLatestRanked",
         BuiltInPlaylist.ScoreSaberTopPlayed => "BeatSyncScoreSaberTopPlayed",
         BuiltInPlaylist.ScoreSaberTrending => "BeatSyncScoreSaberTrending",
         BuiltInPlaylist.BeatSaverFavoriteMappers => "BeatSyncFavoriteMappers",
         BuiltInPlaylist.BeatSaverLatest => "BeatSyncBeatSaverLatest",
         BuiltInPlaylist.BeatSaverHot => "BeatSyncBeatSaverHot",
         BuiltInPlaylist.BeatSaverPlays => "BeatSyncBeatSaverPlays",
         BuiltInPlaylist.BeatSaverDownloads => "BeatSyncBeatSaverDownloads",
         BuiltInPlaylist.BeatSaverMapper => throw new ArgumentException("BeatSaverMapper not a supported type for this method", nameof(builtInPlaylist)),
         BuiltInPlaylist.BeatSyncRecent => "BeatSyncRecent",
         _ => throw new ArgumentException($"{builtInPlaylist} BuiltInPlaylist type is not supported.")
     });