|
@@ -30,7 +30,6 @@ namespace SongBrowser
|
|
|
private Dictionary<String, double> _cachedLastWriteTimes;
|
|
|
private Dictionary<string, int> _weights;
|
|
|
private Dictionary<BeatmapDifficulty, int> _difficultyWeights;
|
|
|
- private Dictionary<string, ScrappedSong> _levelHashToDownloaderData = null;
|
|
|
private Dictionary<string, int> _levelIdToPlayCount;
|
|
|
|
|
|
public BeatmapCharacteristicSO CurrentBeatmapCharacteristicSO;
|
|
@@ -339,24 +338,6 @@ namespace SongBrowser
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Map the downloader data for quick lookup.
|
|
|
- /// </summary>
|
|
|
- /// <param name="songs"></param>
|
|
|
- public void UpdateDownloaderDataMapping(List<ScrappedSong> songs)
|
|
|
- {
|
|
|
- _levelHashToDownloaderData = new Dictionary<string, ScrappedSong>();
|
|
|
- foreach (ScrappedSong song in songs)
|
|
|
- {
|
|
|
- if (_levelHashToDownloaderData.ContainsKey(song.Hash))
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- _levelHashToDownloaderData.Add(song.Hash, song);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
/// Add Song to Editing Playlist
|
|
|
/// </summary>
|
|
|
/// <param name="songInfo"></param>
|
|
@@ -676,9 +657,9 @@ namespace SongBrowser
|
|
|
{
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
double maxPP = 0.0;
|
|
|
- if (ScoreSaberDatabaseDownloader.ScoreSaberDataFile.SongHashToScoreSaberData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.ScoreSaber.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- maxPP = ScoreSaberDatabaseDownloader.ScoreSaberDataFile.SongHashToScoreSaberData[hash].diffs.Max(y => y.pp);
|
|
|
+ maxPP = SongDataCore.Plugin.ScoreSaber.Data.Songs[hash].diffs.Max(y => y.pp);
|
|
|
}
|
|
|
|
|
|
if (maxPP > 0f)
|
|
@@ -754,7 +735,7 @@ namespace SongBrowser
|
|
|
{
|
|
|
Logger.Info("Sorting song list by performance points...");
|
|
|
|
|
|
- if (ScoreSaberDatabaseDownloader.ScoreSaberDataFile == null)
|
|
|
+ if (!SongDataCore.Plugin.ScoreSaber.IsDataAvailable())
|
|
|
{
|
|
|
return levels;
|
|
|
}
|
|
@@ -763,9 +744,9 @@ namespace SongBrowser
|
|
|
.OrderByDescending(x =>
|
|
|
{
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
- if (ScoreSaberDatabaseDownloader.ScoreSaberDataFile.SongHashToScoreSaberData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.ScoreSaber.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- return ScoreSaberDatabaseDownloader.ScoreSaberDataFile.SongHashToScoreSaberData[hash].diffs.Max(y => y.pp);
|
|
|
+ return SongDataCore.Plugin.ScoreSaber.Data.Songs[hash].diffs.Max(y => y.pp);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -784,7 +765,7 @@ namespace SongBrowser
|
|
|
{
|
|
|
Logger.Info("Sorting song list by star points...");
|
|
|
|
|
|
- if (ScoreSaberDatabaseDownloader.ScoreSaberDataFile == null)
|
|
|
+ if (!SongDataCore.Plugin.ScoreSaber.IsDataAvailable())
|
|
|
{
|
|
|
return levels;
|
|
|
}
|
|
@@ -794,9 +775,9 @@ namespace SongBrowser
|
|
|
{
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
var stars = 0.0;
|
|
|
- if (ScoreSaberDatabaseDownloader.ScoreSaberDataFile.SongHashToScoreSaberData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.ScoreSaber.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- var diffs = ScoreSaberDatabaseDownloader.ScoreSaberDataFile.SongHashToScoreSaberData[hash].diffs;
|
|
|
+ var diffs = SongDataCore.Plugin.ScoreSaber.Data.Songs[hash].diffs;
|
|
|
stars = diffs.Max(y => y.star);
|
|
|
}
|
|
|
|
|
@@ -903,7 +884,7 @@ namespace SongBrowser
|
|
|
Logger.Info("Sorting song list by BeatSaver UpVotes");
|
|
|
|
|
|
// Do not always have data when trying to sort by UpVotes
|
|
|
- if (_levelHashToDownloaderData == null)
|
|
|
+ if (!SongDataCore.Plugin.BeatSaver.IsDataAvailable())
|
|
|
{
|
|
|
return levelIds;
|
|
|
}
|
|
@@ -911,9 +892,9 @@ namespace SongBrowser
|
|
|
return levelIds
|
|
|
.OrderByDescending(x => {
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
- if (_levelHashToDownloaderData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.BeatSaver.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- return _levelHashToDownloaderData[hash].Upvotes;
|
|
|
+ return SongDataCore.Plugin.BeatSaver.Data.Songs[hash].stats.upVotes;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -933,7 +914,7 @@ namespace SongBrowser
|
|
|
Logger.Info("Sorting song list by BeatSaver PlayCount");
|
|
|
|
|
|
// Do not always have data when trying to sort by UpVotes
|
|
|
- if (_levelHashToDownloaderData == null)
|
|
|
+ if (!SongDataCore.Plugin.BeatSaver.IsDataAvailable())
|
|
|
{
|
|
|
return levelIds;
|
|
|
}
|
|
@@ -941,9 +922,9 @@ namespace SongBrowser
|
|
|
return levelIds
|
|
|
.OrderByDescending(x => {
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
- if (_levelHashToDownloaderData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.BeatSaver.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- return _levelHashToDownloaderData[hash].PlayedCount;
|
|
|
+ return SongDataCore.Plugin.BeatSaver.Data.Songs[hash].stats.plays;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -963,7 +944,7 @@ namespace SongBrowser
|
|
|
Logger.Info("Sorting song list by BeatSaver Rating!");
|
|
|
|
|
|
// Do not always have data when trying to sort by rating
|
|
|
- if (_levelHashToDownloaderData == null)
|
|
|
+ if (!SongDataCore.Plugin.BeatSaver.IsDataAvailable())
|
|
|
{
|
|
|
return levelIds;
|
|
|
}
|
|
@@ -971,9 +952,9 @@ namespace SongBrowser
|
|
|
return levelIds
|
|
|
.OrderByDescending(x => {
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
- if (_levelHashToDownloaderData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.BeatSaver.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- return _levelHashToDownloaderData[hash].Rating;
|
|
|
+ return SongDataCore.Plugin.BeatSaver.Data.Songs[hash].stats.rating;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -993,7 +974,7 @@ namespace SongBrowser
|
|
|
Logger.Info("Sorting song list by BeatSaver Heat!");
|
|
|
|
|
|
// Do not always have data when trying to sort by heat
|
|
|
- if (_levelHashToDownloaderData == null)
|
|
|
+ if (!SongDataCore.Plugin.BeatSaver.IsDataAvailable())
|
|
|
{
|
|
|
return levelIds;
|
|
|
}
|
|
@@ -1001,9 +982,9 @@ namespace SongBrowser
|
|
|
return levelIds
|
|
|
.OrderByDescending(x => {
|
|
|
var hash = CustomHelpers.GetSongHash(x.levelID);
|
|
|
- if (_levelHashToDownloaderData.ContainsKey(hash))
|
|
|
+ if (SongDataCore.Plugin.BeatSaver.Data.Songs.ContainsKey(hash))
|
|
|
{
|
|
|
- return _levelHashToDownloaderData[hash].Heat;
|
|
|
+ return SongDataCore.Plugin.BeatSaver.Data.Songs[hash].stats.heat;
|
|
|
}
|
|
|
else
|
|
|
{
|