Screenshot dialog fixes

This commit is contained in:
Natsumi
2024-11-30 21:57:06 +13:00
parent a79154a594
commit c4efb515e3
3 changed files with 18 additions and 10 deletions

View File

@@ -174,15 +174,23 @@ namespace VRCX
if (!metadataString.StartsWith("{"))
{
// parse VRC prints
var xmlIndex = metadataString.IndexOf("<x:xmpmeta");
var xmlIndex = metadataString.IndexOf("<x:xmpmeta", StringComparison.Ordinal);
if (xmlIndex != -1)
{
var xmlString = metadataString.Substring(xmlIndex);
// everything after index
var result = ParseVRCPrint(xmlString.Substring(xmlIndex - 7));
result.SourceFile = path;
try
{
var xmlString = metadataString.Substring(xmlIndex);
// everything after index
var result = ParseVRCPrint(xmlString.Substring(xmlIndex - 7));
result.SourceFile = path;
return result;
return result;
}
catch (Exception ex)
{
logger.Error(ex, "Failed to parse VRCPrint XML metadata for file '{0}'", path);
return ScreenshotMetadata.JustError(path, "Failed to parse VRCPrint metadata.");
}
}
logger.ConditionalDebug("Screenshot file '{0}' has unknown non-JSON metadata:\n{1}\n", path, metadataString);

View File

@@ -16112,7 +16112,7 @@ speechSynthesis.getVoices();
) {
var D = this.screenshotMetadataDialog;
var metadata = JSON.parse(json);
if (typeof metadata === 'undefined' || !metadata.sourceFile) {
if (!metadata?.sourceFile) {
D.metadata = {};
D.metadata.error =
'Invalid file selected. Please select a valid VRChat screenshot.';

View File

@@ -37,13 +37,13 @@ mixin screenshotMetadata()
el-carousel(ref="screenshotMetadataCarousel" :interval="0" initial-index="1" indicator-position="none" arrow="always" height="600px" style="margin-top:10px" @change="screenshotMetadataCarouselChange")
el-carousel-item
span(placement="top" width="700px" trigger="click")
img.x-link(slot="reference" v-lazy="screenshotMetadataDialog.metadata.previousFilePath" style="width:100%;height:100%;object-fit:contain")
img.x-link(slot="reference" :src="screenshotMetadataDialog.metadata.previousFilePath" style="width:100%;height:100%;object-fit:contain")
el-carousel-item
span(placement="top" width="700px" trigger="click" @click="showFullscreenImageDialog(screenshotMetadataDialog.metadata.filePath)")
img.x-link(slot="reference" v-lazy="screenshotMetadataDialog.metadata.filePath" style="width:100%;height:100%;object-fit:contain")
img.x-link(slot="reference" :src="screenshotMetadataDialog.metadata.filePath" style="width:100%;height:100%;object-fit:contain")
el-carousel-item
span(placement="top" width="700px" trigger="click")
img.x-link(slot="reference" v-lazy="screenshotMetadataDialog.metadata.nextFilePath" style="width:100%;height:100%;object-fit:contain")
img.x-link(slot="reference" :src="screenshotMetadataDialog.metadata.nextFilePath" style="width:100%;height:100%;object-fit:contain")
br
template(v-if="screenshotMetadataDialog.metadata.error")
pre(v-text="screenshotMetadataDialog.metadata.error" style="white-space:pre-wrap;font-size:12px")