1
0

ContentNetworkResourceManager.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Content.Server.Database;
  2. using Content.Shared.CCVar;
  3. using Robust.Server.Upload;
  4. using Robust.Shared.Configuration;
  5. using Robust.Shared.Player;
  6. using Robust.Shared.Upload;
  7. namespace Content.Server.Administration;
  8. public sealed class ContentNetworkResourceManager
  9. {
  10. [Dependency] private readonly IServerDbManager _serverDb = default!;
  11. [Dependency] private readonly NetworkResourceManager _netRes = default!;
  12. [Dependency] private readonly IConfigurationManager _cfgManager = default!;
  13. [ViewVariables] public bool StoreUploaded { get; set; } = true;
  14. public void Initialize()
  15. {
  16. _cfgManager.OnValueChanged(CCVars.ResourceUploadingStoreEnabled, value => StoreUploaded = value, true);
  17. AutoDelete(_cfgManager.GetCVar(CCVars.ResourceUploadingStoreDeletionDays));
  18. _netRes.OnResourceUploaded += OnUploadResource;
  19. }
  20. private async void OnUploadResource(ICommonSession session, NetworkResourceUploadMessage msg)
  21. {
  22. if (StoreUploaded)
  23. await _serverDb.AddUploadedResourceLogAsync(session.UserId, DateTime.Now, msg.RelativePath.ToString(), msg.Data);
  24. }
  25. private async void AutoDelete(int days)
  26. {
  27. if (days > 0)
  28. await _serverDb.PurgeUploadedResourceLogAsync(days);
  29. }
  30. }