#1250 Fix multiple card import tags

This commit is contained in:
Cohee 2023-10-16 11:37:04 +03:00
parent 2a16d24760
commit 59af85ce1c
1 changed files with 30 additions and 36 deletions

View File

@ -6970,7 +6970,7 @@ function connectAPISlash(_, text) {
toastr.info(`API set to ${text}, trying to connect..`);
}
export function processDroppedFiles(files) {
export async function processDroppedFiles(files) {
const allowedMimeTypes = [
'application/json',
'image/png',
@ -6978,14 +6978,14 @@ export function processDroppedFiles(files) {
for (const file of files) {
if (allowedMimeTypes.includes(file.type)) {
importCharacter(file);
await importCharacter(file);
} else {
toastr.warning('Unsupported file type: ' + file.name);
}
}
}
function importCharacter(file) {
async function importCharacter(file) {
const ext = file.name.match(/\.(\w+)$/);
if (
!ext ||
@ -7000,44 +7000,38 @@ function importCharacter(file) {
formData.append('avatar', file);
formData.append('file_type', format);
jQuery.ajax({
const data = await jQuery.ajax({
type: "POST",
url: "/importcharacter",
data: formData,
async: false,
beforeSend: function () {
},
async: true,
cache: false,
contentType: false,
processData: false,
success: async function (data) {
if (data.error) {
toastr.error('The file is likely invalid or corrupted.', 'Could not import character');
return;
}
if (data.file_name !== undefined) {
$('#character_search_bar').val('').trigger('input');
let oldSelectedChar = null;
if (this_chid != undefined && this_chid != "invalid-safety-id") {
oldSelectedChar = characters[this_chid].avatar;
}
await getCharacters();
select_rm_info(`char_import`, data.file_name, oldSelectedChar);
if (power_user.import_card_tags) {
let currentContext = getContext();
let avatarFileName = `${data.file_name}.png`;
let importedCharacter = currentContext.characters.find(character => character.avatar === avatarFileName);
await importTags(importedCharacter);
}
}
},
error: function (jqXHR, exception) {
$("#create_button").removeAttr("disabled");
},
});
if (data.error) {
toastr.error('The file is likely invalid or corrupted.', 'Could not import character');
return;
}
if (data.file_name !== undefined) {
$('#character_search_bar').val('').trigger('input');
let oldSelectedChar = null;
if (this_chid != undefined && this_chid != "invalid-safety-id") {
oldSelectedChar = characters[this_chid].avatar;
}
await getCharacters();
select_rm_info(`char_import`, data.file_name, oldSelectedChar);
if (power_user.import_card_tags) {
let currentContext = getContext();
let avatarFileName = `${data.file_name}.png`;
let importedCharacter = currentContext.characters.find(character => character.avatar === avatarFileName);
await importTags(importedCharacter);
}
}
}
async function importFromURL(items, files) {
@ -8966,7 +8960,7 @@ jQuery(async function () {
switch (customContentType) {
case 'character':
processDroppedFiles([file]);
await processDroppedFiles([file]);
break;
case 'lorebook':
await importWorldInfo(file);
@ -9029,7 +9023,7 @@ jQuery(async function () {
if (!files.length) {
await importFromURL(event.originalEvent.dataTransfer.items, files);
}
processDroppedFiles(files);
await processDroppedFiles(files);
});