Files
VRCX/Dotnet/AppApi/Electron/Screenshot.cs
2025-11-19 01:56:03 +11:00

43 lines
1.4 KiB
C#

using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
namespace VRCX
{
public partial class AppApiElectron
{
public override string AddScreenshotMetadata(string path, string metadataString, string worldId, bool changeFilename = false)
{
if (path.Length >= 3 && path[1] == ':' &&
(path[2] == '\\' || path[2] == '/'))
{
var driveLetter = path[0].ToString().ToLower();
var winePrefix = Path.Join(_vrcPrefixPath, $"dosdevices/{driveLetter}:");
var winePath = path[3..]; // remove C:\
path = Path.Join(winePrefix, winePath);
}
path = path.Replace("\\", "/");
var fileName = Path.GetFileNameWithoutExtension(path);
if (!File.Exists(path) || !path.EndsWith(".png") || !fileName.StartsWith("VRChat_"))
return string.Empty;
if (changeFilename)
{
var newFileName = $"{fileName}_{worldId}";
var newPath = Path.Join(Path.GetDirectoryName(path), newFileName + Path.GetExtension(path));
File.Move(path, newPath);
path = newPath;
}
ScreenshotHelper.WriteVRCXMetadata(metadataString, path);
return path;
}
}
}