Move upload commands to engine (#16582)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using Content.Server.Database;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Server.Upload;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Upload;
|
||||
|
||||
namespace Content.Server.Administration;
|
||||
|
||||
public sealed class ContentNetworkResourceManager
|
||||
{
|
||||
[Dependency] private readonly IServerDbManager _serverDb = default!;
|
||||
[Dependency] private readonly NetworkResourceManager _netRes = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfgManager = default!;
|
||||
|
||||
[ViewVariables] public bool StoreUploaded { get; set; } = true;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
_cfgManager.OnValueChanged(CCVars.ResourceUploadingStoreEnabled, value => StoreUploaded = value, true);
|
||||
AutoDelete(_cfgManager.GetCVar(CCVars.ResourceUploadingStoreDeletionDays));
|
||||
_netRes.OnResourceUploaded += OnUploadResource;
|
||||
}
|
||||
|
||||
private async void OnUploadResource(IPlayerSession session, NetworkResourceUploadMessage msg)
|
||||
{
|
||||
if (StoreUploaded)
|
||||
await _serverDb.AddUploadedResourceLogAsync(session.UserId, DateTime.Now, msg.RelativePath.ToString(), msg.Data);
|
||||
}
|
||||
|
||||
private async void AutoDelete(int days)
|
||||
{
|
||||
if (days > 0)
|
||||
await _serverDb.PurgeUploadedResourceLogAsync(days);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user