mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 14:23:51 +02:00
Cleanup avatar name cache
This commit is contained in:
@@ -7274,8 +7274,8 @@ speechSynthesis.getVoices();
|
||||
treeData: [],
|
||||
memo: '',
|
||||
$avatarInfo: {
|
||||
id: '',
|
||||
name: '',
|
||||
ownerId: '',
|
||||
avatarName: '',
|
||||
}
|
||||
};
|
||||
|
||||
@@ -7877,18 +7877,23 @@ speechSynthesis.getVoices();
|
||||
});
|
||||
} else if (command === 'Show Avatar Details') {
|
||||
var { currentAvatarImageUrl } = D.ref;
|
||||
var id = extractFileId(currentAvatarImageUrl);
|
||||
if (id) {
|
||||
API.call(`file/${id}`).then(({ ownerId }) => {
|
||||
for (var ref of API.cachedAvatars.values()) {
|
||||
if (ref.imageUrl === currentAvatarImageUrl) {
|
||||
this.showAvatarDialog(ref.id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
D.loading = true;
|
||||
var params = {
|
||||
n: 50,
|
||||
for (var ref of API.cachedAvatars.values()) {
|
||||
if (ref.imageUrl === currentAvatarImageUrl) {
|
||||
this.showAvatarDialog(ref.id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
var fileId = extractFileId(currentAvatarImageUrl);
|
||||
if (fileId) {
|
||||
if (API.cachedAvatarNames.has(fileId)) {
|
||||
var { ownerId } = API.cachedAvatarNames.get(fileId);
|
||||
} else {
|
||||
var args = API.getAvatarImages({fileId: fileId});
|
||||
var ownerId = args.json.ownerId;
|
||||
}
|
||||
D.loading = true;
|
||||
var params = {
|
||||
n: 50,
|
||||
offset: 0,
|
||||
sort: 'updated',
|
||||
order: 'descending',
|
||||
@@ -7919,9 +7924,8 @@ speechSynthesis.getVoices();
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.showUserDialog(ownerId);
|
||||
}
|
||||
});
|
||||
this.showUserDialog(ownerId);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
@@ -10339,8 +10343,8 @@ speechSynthesis.getVoices();
|
||||
});
|
||||
};
|
||||
|
||||
API.getAvatarImages = function (params) {
|
||||
return this.call(`file/${params.fileId}`, {
|
||||
API.getAvatarImages = async function (params) {
|
||||
return await this.call(`file/${params.fileId}`, {
|
||||
method: 'GET',
|
||||
params
|
||||
}).then((json) => {
|
||||
@@ -10348,10 +10352,32 @@ speechSynthesis.getVoices();
|
||||
json,
|
||||
params
|
||||
};
|
||||
this.$emit('AVATARIMAGE:GET', args);
|
||||
return args;
|
||||
});
|
||||
};
|
||||
|
||||
API.$on('AVATARIMAGE:GET', function (args) {
|
||||
$app.storeAvatarImage(args);
|
||||
});
|
||||
|
||||
$app.methods.storeAvatarImage = function (args) {
|
||||
var fileId = args.params.fileId;
|
||||
var avatarName = '';
|
||||
var imageName = args.json.name;
|
||||
var avatarNameRegex = /Avatar - (.*) - Image -/g.exec(imageName);
|
||||
if (avatarNameRegex) {
|
||||
avatarName = avatarNameRegex[1];
|
||||
}
|
||||
var ownerId = args.json.ownerId;
|
||||
var avatarInfo = {
|
||||
ownerId,
|
||||
avatarName
|
||||
};
|
||||
API.cachedAvatarNames.set(fileId, avatarInfo);
|
||||
return avatarInfo;
|
||||
};
|
||||
|
||||
$app.methods.setAvatarImage = function (image) {
|
||||
this.changeAvatarImageDialogLoading = true;
|
||||
var parmas = {
|
||||
@@ -10388,19 +10414,17 @@ speechSynthesis.getVoices();
|
||||
$app.methods.getAvatarName = function (args) {
|
||||
var D = this.userDialog;
|
||||
D.$avatarInfo = {
|
||||
id: '',
|
||||
name: '-'
|
||||
ownerId: '',
|
||||
avatarName: '-'
|
||||
};
|
||||
if (!D.visible) {
|
||||
return;
|
||||
}
|
||||
var imageUrl = D.ref.currentAvatarImageUrl;
|
||||
if (imageUrl.substring(0, 41) !== 'https://api.vrchat.cloud/api/1/file/file_') {
|
||||
var fileId = extractFileId(imageUrl);
|
||||
if (!fileId) {
|
||||
return;
|
||||
}
|
||||
var url = new URL(imageUrl);
|
||||
var pathArray = url.pathname.split('/');
|
||||
var fileId = pathArray[4];
|
||||
if (API.cachedAvatarNames.has(fileId)) {
|
||||
D.$avatarInfo = API.cachedAvatarNames.get(fileId);
|
||||
return;
|
||||
@@ -10409,19 +10433,8 @@ speechSynthesis.getVoices();
|
||||
fileId
|
||||
};
|
||||
API.getAvatarImages(params).then((args) => {
|
||||
var name = '';
|
||||
var imageName = args.json.name;
|
||||
var avatarNameRegex = /Avatar - (.*) - Image -/g.exec(imageName);
|
||||
if (avatarNameRegex) {
|
||||
name = avatarNameRegex[1];
|
||||
}
|
||||
var id = args.json.ownerId;
|
||||
var avatarInfo = {
|
||||
id,
|
||||
name
|
||||
};
|
||||
API.cachedAvatarNames.set(fileId, avatarInfo);
|
||||
D.$avatarInfo = avatarInfo;
|
||||
var avatarInfo = this.storeAvatarImage(args);
|
||||
this.userDialog.$avatarInfo = avatarInfo;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -1018,9 +1018,9 @@ html
|
||||
.detail
|
||||
span.name Avatar Name
|
||||
.extra(@click="userDialogCommand('Show Avatar Details')" style="cursor:pointer;width:fit-content")
|
||||
span(v-text="userDialog.$avatarInfo.name" style="display:inline-block;margin-right:5px")
|
||||
span(v-if="userDialog.$avatarInfo.id === userDialog.id" style="display:inline-block;color:#E6A23C" ) (own)
|
||||
span(v-else-if="userDialog.$avatarInfo.name && userDialog.$avatarInfo.id" style="display:inline-block;color:#67C23A") (public)
|
||||
span(v-text="userDialog.$avatarInfo.avatarName" style="display:inline-block;margin-right:5px")
|
||||
span(v-if="userDialog.$avatarInfo.ownerId === userDialog.id" style="display:inline-block;color:#E6A23C" ) (own)
|
||||
span(v-else-if="userDialog.$avatarInfo.avatarName && userDialog.$avatarInfo.ownerId" style="display:inline-block;color:#67C23A") (public)
|
||||
.x-friend-item(style="width:100%;cursor:default")
|
||||
.detail
|
||||
span.name Bio
|
||||
|
||||
Reference in New Issue
Block a user