MVP completed: Hook into Playlistmanager to post updates to beatleader maps owned by the user
This commit is contained in:
+19
-19
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using BeatSaberPlaylistsLib.Types;
|
||||
using IPA;
|
||||
using PlaylistManager.Utilities;
|
||||
using IPALogger = IPA.Logging.Logger;
|
||||
|
||||
namespace Setlist
|
||||
@@ -16,6 +17,9 @@ namespace Setlist
|
||||
/// </summary>
|
||||
internal static IPALogger Log { get; private set; }
|
||||
|
||||
/// <summary>Set after the ownership scan resolves the platform user id; used when syncing after PlaylistManager adds a song.</summary>
|
||||
internal static string CachedPlatformUserId { get; set; }
|
||||
|
||||
[Init]
|
||||
public Plugin(IPALogger logger)
|
||||
{
|
||||
@@ -28,6 +32,10 @@ namespace Setlist
|
||||
{
|
||||
try
|
||||
{
|
||||
SetlistSyncHost.Ensure();
|
||||
|
||||
Events.playlistSongAdded += OnPlaylistSongAdded;
|
||||
|
||||
var playlists = BeatSaberPlaylistsLib.PlaylistManager.DefaultManager.GetAllPlaylists(
|
||||
includeChildren: true,
|
||||
out AggregateException loadErrors);
|
||||
@@ -50,25 +58,11 @@ namespace Setlist
|
||||
var entries = new List<(IPlaylist Playlist, string Title, bool HasSyncUrl, string BeatLeaderGuid, string OwnerId)>();
|
||||
foreach (var playlist in playlists)
|
||||
{
|
||||
var hasSyncUrl = false;
|
||||
string syncUrl = null;
|
||||
if (playlist.TryGetCustomData("syncURL", out var syncObj) && syncObj is string url)
|
||||
{
|
||||
syncUrl = url;
|
||||
hasSyncUrl = !string.IsNullOrWhiteSpace(url);
|
||||
}
|
||||
|
||||
string ownerId = null;
|
||||
if (playlist.TryGetCustomData("owner", out var ownerObj) && ownerObj is string o)
|
||||
{
|
||||
ownerId = string.IsNullOrWhiteSpace(o) ? null : o.Trim();
|
||||
}
|
||||
|
||||
string blGuid = null;
|
||||
if (hasSyncUrl && BeatLeaderPlaylistOwnership.TryExtractBeatLeaderPlaylistGuid(syncUrl, out var g))
|
||||
{
|
||||
blGuid = g;
|
||||
}
|
||||
BeatLeaderPlaylistOwnership.TryReadBeatLeaderMetadata(
|
||||
playlist,
|
||||
out var hasSyncUrl,
|
||||
out var blGuid,
|
||||
out var ownerId);
|
||||
|
||||
entries.Add((playlist, playlist.Title, hasSyncUrl, blGuid, ownerId));
|
||||
}
|
||||
@@ -84,6 +78,12 @@ namespace Setlist
|
||||
[OnExit]
|
||||
public void OnApplicationQuit()
|
||||
{
|
||||
Events.playlistSongAdded -= OnPlaylistSongAdded;
|
||||
}
|
||||
|
||||
private void OnPlaylistSongAdded(IPlaylistSong song, IPlaylist playlist)
|
||||
{
|
||||
SetlistSyncHost.Instance?.StartPostOwnedBeatLeaderPlaylist(playlist, Log);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user