mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-18 21:20:39 +01:00
Merge branch 'staging' into woo-yeah
This commit is contained in:
commit
a5a8f6057b
@ -6373,7 +6373,10 @@
|
||||
<img alt="Avatar" src="" />
|
||||
</div>
|
||||
<div class="group_member_name">
|
||||
<div class="ch_name"></div>
|
||||
<div class="character_name_block">
|
||||
<span class="ch_name"></span>
|
||||
<small class="ch_additional_info character_version"></small>
|
||||
</div>
|
||||
<div class="tags tags_inline"></div>
|
||||
</div>
|
||||
<input class="ch_fav" value="" hidden />
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (رابط مباشر أو معرف)",
|
||||
"char_import_3": "حرف JanitorAI (رابط مباشر أو UUID)",
|
||||
"char_import_4": "حرف Pygmalion.chat (رابط مباشر أو UUID)",
|
||||
"char_import_5": "حرف AICharacterCard.com (رابط مباشر أو معرف)",
|
||||
"char_import_5": "حرف AICharacterCards.com (رابط مباشر أو معرف)",
|
||||
"char_import_6": "رابط PNG المباشر (راجع",
|
||||
"char_import_7": "للمضيفين المسموح بهم)",
|
||||
"char_import_8": "شخصية RisuRealm (رابط مباشر)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (Direktlink oder ID)",
|
||||
"char_import_3": "JanitorAI-Charakter (Direktlink oder UUID)",
|
||||
"char_import_4": "Pygmalion.chat-Charakter (Direktlink oder UUID)",
|
||||
"char_import_5": "AICharacterCard.com-Charakter (Direktlink oder ID)",
|
||||
"char_import_5": "AICharacterCards.com-Charakter (Direktlink oder ID)",
|
||||
"char_import_6": "Direkter PNG-Link (siehe",
|
||||
"char_import_7": "für erlaubte Hosts)",
|
||||
"char_import_8": "RisuRealm-Charakter (Direktlink)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (enlace directo o ID)",
|
||||
"char_import_3": "Carácter de JanitorAI (enlace directo o UUID)",
|
||||
"char_import_4": "Carácter Pygmalion.chat (enlace directo o UUID)",
|
||||
"char_import_5": "Carácter AICharacterCard.com (enlace directo o ID)",
|
||||
"char_import_5": "Carácter AICharacterCards.com (enlace directo o ID)",
|
||||
"char_import_6": "Enlace PNG directo (consulte",
|
||||
"char_import_7": "para hosts permitidos)",
|
||||
"char_import_8": "Personaje RisuRealm (Enlace directo)",
|
||||
|
@ -1297,7 +1297,7 @@
|
||||
"char_import_2": "Lorebook de Chub (lien direct ou ID)",
|
||||
"char_import_3": "Personnage de JanitorAI (lien direct ou UUID)",
|
||||
"char_import_4": "Personnage de Pygmalion.chat (lien direct ou UUID)",
|
||||
"char_import_5": "Personnage de AICharacterCard.com (lien direct ou identifiant)",
|
||||
"char_import_5": "Personnage de AICharacterCards.com (lien direct ou identifiant)",
|
||||
"char_import_6": "Lien PNG direct (voir",
|
||||
"char_import_7": "pour les hôtes autorisés)",
|
||||
"char_import_8": "Personnage de RisuRealm (lien direct)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (beinn hlekkur eða auðkenni)",
|
||||
"char_import_3": "JanitorAI karakter (beinn hlekkur eða UUID)",
|
||||
"char_import_4": "Pygmalion.chat karakter (beinn hlekkur eða UUID)",
|
||||
"char_import_5": "AICharacterCard.com Karakter (beinn hlekkur eða auðkenni)",
|
||||
"char_import_5": "AICharacterCards.com Karakter (beinn hlekkur eða auðkenni)",
|
||||
"char_import_6": "Beinn PNG hlekkur (sjá",
|
||||
"char_import_7": "fyrir leyfilega gestgjafa)",
|
||||
"char_import_8": "RisuRealm karakter (beinn hlekkur)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Lorebook di Chub (collegamento diretto o ID)",
|
||||
"char_import_3": "Carattere JanitorAI (collegamento diretto o UUID)",
|
||||
"char_import_4": "Carattere Pygmalion.chat (collegamento diretto o UUID)",
|
||||
"char_import_5": "Carattere AICharacterCard.com (Link diretto o ID)",
|
||||
"char_import_5": "Carattere AICharacterCards.com (Link diretto o ID)",
|
||||
"char_import_6": "Collegamento PNG diretto (fare riferimento a",
|
||||
"char_import_7": "per gli host consentiti)",
|
||||
"char_import_8": "Personaggio RisuRealm (collegamento diretto)",
|
||||
|
@ -1378,7 +1378,7 @@
|
||||
"char_import_2": "Chub ロアブック (直接リンクまたは ID)",
|
||||
"char_import_3": "JanitorAI キャラクター (直接リンクまたは UUID)",
|
||||
"char_import_4": "Pygmalion.chat キャラクター (直接リンクまたは UUID)",
|
||||
"char_import_5": "AICharacterCard.com キャラクター (直接リンクまたは ID)",
|
||||
"char_import_5": "AICharacterCards.com キャラクター (直接リンクまたは ID)",
|
||||
"char_import_6": "直接PNGリンク(参照",
|
||||
"char_import_7": "許可されたホストの場合)",
|
||||
"char_import_8": "RisuRealm キャラクター (直接リンク)",
|
||||
|
@ -1395,7 +1395,7 @@
|
||||
"char_import_2": "Chub Lorebook(직접 링크 또는 ID)",
|
||||
"char_import_3": "JanitorAI 캐릭터(직접 링크 또는 UUID)",
|
||||
"char_import_4": "Pygmalion.chat 문자(직접 링크 또는 UUID)",
|
||||
"char_import_5": "AICharacterCard.com 캐릭터(직접 링크 또는 ID)",
|
||||
"char_import_5": "AICharacterCards.com 캐릭터(직접 링크 또는 ID)",
|
||||
"char_import_6": "직접 PNG 링크(참조",
|
||||
"char_import_7": "허용된 호스트의 경우)",
|
||||
"char_import_8": "RisuRealm 캐릭터 (직접링크)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (directe link of ID)",
|
||||
"char_import_3": "JanitorAI-personage (directe link of UUID)",
|
||||
"char_import_4": "Pygmalion.chat-teken (directe link of UUID)",
|
||||
"char_import_5": "AICharacterCard.com-teken (directe link of ID)",
|
||||
"char_import_5": "AICharacterCards.com-teken (directe link of ID)",
|
||||
"char_import_6": "Directe PNG-link (zie",
|
||||
"char_import_7": "voor toegestane hosts)",
|
||||
"char_import_8": "RisuRealm-personage (directe link)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (link direto ou ID)",
|
||||
"char_import_3": "Personagem JanitorAI (Link Direto ou UUID)",
|
||||
"char_import_4": "Caractere Pygmalion.chat (Link Direto ou UUID)",
|
||||
"char_import_5": "Personagem AICharacterCard.com (link direto ou ID)",
|
||||
"char_import_5": "Personagem AICharacterCards.com (link direto ou ID)",
|
||||
"char_import_6": "Link PNG direto (consulte",
|
||||
"char_import_7": "para hosts permitidos)",
|
||||
"char_import_8": "Personagem RisuRealm (link direto)",
|
||||
|
@ -966,7 +966,7 @@
|
||||
"char_import_2": "Лорбук с Chub (прямая ссылка или ID)",
|
||||
"char_import_3": "Персонаж с JanitorAI (прямая ссылка или UUID)",
|
||||
"char_import_4": "Персонаж с Pygmalion.chat (прямая ссылка или UUID)",
|
||||
"char_import_5": "Персонаж с AICharacterCard.com (прямая ссылка или ID)",
|
||||
"char_import_5": "Персонаж с AICharacterCards.com (прямая ссылка или ID)",
|
||||
"char_import_6": "Прямая ссылка на PNG-файл (чтобы узнать список разрешённых хостов, загляните в",
|
||||
"char_import_7": ")",
|
||||
"Grammar String": "Грамматика",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub Lorebook (пряме посилання або ID)",
|
||||
"char_import_3": "Символ JanitorAI (пряме посилання або UUID)",
|
||||
"char_import_4": "Символ Pygmalion.chat (пряме посилання або UUID)",
|
||||
"char_import_5": "Символ AICharacterCard.com (пряме посилання або ідентифікатор)",
|
||||
"char_import_5": "Символ AICharacterCards.com (пряме посилання або ідентифікатор)",
|
||||
"char_import_6": "Пряме посилання на PNG (див",
|
||||
"char_import_7": "для дозволених хостів)",
|
||||
"char_import_8": "Персонаж RisuRealm (пряме посилання)",
|
||||
|
@ -1376,7 +1376,7 @@
|
||||
"char_import_2": "Chub (Nhập URL trực tiếp hoặc ID)",
|
||||
"char_import_3": "JanitorAI (Nhập URL trực tiếp hoặc UUID)",
|
||||
"char_import_4": "Pygmalion.chat (Nhập URL trực tiếp hoặc UUID)",
|
||||
"char_import_5": "AICharacterCard.com (Nhập URL trực tiếp hoặc ID)",
|
||||
"char_import_5": "AICharacterCards.com (Nhập URL trực tiếp hoặc ID)",
|
||||
"char_import_6": "Nhập PNG trực tiếp (tham khảo",
|
||||
"char_import_7": "đối với các máy chủ được phép)",
|
||||
"char_import_8": "RisuRealm (URL trực tiếp)",
|
||||
|
@ -1829,7 +1829,7 @@
|
||||
"char_import_2": "Chub 知识书(直链或ID)",
|
||||
"char_import_3": "JanitorAI 角色(直链或UUID)",
|
||||
"char_import_4": "Pygmalion.chat 角色(直链或UUID)",
|
||||
"char_import_5": "AICharacterCard.com 角色(直链或ID)",
|
||||
"char_import_5": "AICharacterCards.com 角色(直链或ID)",
|
||||
"char_import_6": "被允许的PNG直链(请参阅",
|
||||
"char_import_7": ")",
|
||||
"char_import_8": "RisuRealm 角色(直链)",
|
||||
|
@ -1381,7 +1381,7 @@
|
||||
"char_import_2": "Chub Lorebook(直接連結或 ID)",
|
||||
"char_import_3": "JanitorAI 角色(直接連結或 ID)",
|
||||
"char_import_4": "Pygmalion.chat 角色(直接連結或 ID)",
|
||||
"char_import_5": "AICharacterCard.com 角色(直接連結或 ID)",
|
||||
"char_import_5": "AICharacterCards.com 角色(直接連結或 ID)",
|
||||
"char_import_6": "直接 PNG 連結(請參閱",
|
||||
"char_import_7": "對於允許的主機)",
|
||||
"char_import_8": "RisuRealm角色(直接連結)",
|
||||
|
@ -482,10 +482,10 @@ function highlightNewBackground(bg) {
|
||||
*/
|
||||
function setFittingClass(fitting) {
|
||||
const backgrounds = $('#bg1, #bg_custom');
|
||||
backgrounds.toggleClass('cover', fitting === 'cover');
|
||||
backgrounds.toggleClass('contain', fitting === 'contain');
|
||||
backgrounds.toggleClass('stretch', fitting === 'stretch');
|
||||
backgrounds.toggleClass('center', fitting === 'center');
|
||||
for (const option of ['cover', 'contain', 'stretch', 'center']) {
|
||||
backgrounds.toggleClass(option, option === fitting);
|
||||
}
|
||||
background_settings.fitting = fitting;
|
||||
}
|
||||
|
||||
function onBackgroundFilterInput() {
|
||||
|
@ -1368,6 +1368,15 @@ function getGroupCharacterBlock(character) {
|
||||
template.find('.ch_fav').val(isFav);
|
||||
template.toggleClass('is_fav', isFav);
|
||||
|
||||
const auxFieldName = power_user.aux_field || 'character_version';
|
||||
const auxFieldValue = (character.data && character.data[auxFieldName]) || '';
|
||||
if (auxFieldValue) {
|
||||
template.find('.character_version').text(auxFieldValue);
|
||||
}
|
||||
else {
|
||||
template.find('.character_version').hide();
|
||||
}
|
||||
|
||||
let queuePosition = groupChatQueueOrder.get(character.avatar);
|
||||
if (queuePosition) {
|
||||
template.find('.queue_position').text(queuePosition);
|
||||
|
@ -7,7 +7,7 @@
|
||||
<li><span data-i18n="char_import_2">Chub Lorebook (Direct Link or ID)</span><br><span data-i18n="char_import_example">Example:</span> <tt>lorebooks/bartleby/example-lorebook</tt></li>
|
||||
<li><span data-i18n="char_import_3">JanitorAI Character (Direct Link or UUID)</span><br><span data-i18n="char_import_example">Example:</span> <tt>ddd1498a-a370-4136-b138-a8cd9461fdfe_character-aqua-the-useless-goddess</tt></li>
|
||||
<li><span data-i18n="char_import_4">Pygmalion.chat Character (Direct Link or UUID)</span><br><span data-i18n="char_import_example">Example:</span> <tt>a7ca95a1-0c88-4e23-91b3-149db1e78ab9</tt></li>
|
||||
<li><span data-i18n="char_import_5">AICharacterCard.com Character (Direct Link or ID)</span><br><span data-i18n="char_import_example">Example:</span> <tt>AICC/aicharcards/the-game-master</tt></li>
|
||||
<li><span data-i18n="char_import_5">AICharacterCards.com Character (Direct Link or ID)</span><br><span data-i18n="char_import_example">Example:</span> <tt>AICC/aicharcards/the-game-master</tt></li>
|
||||
<li><span data-i18n="char_import_6">Direct PNG Link (refer to</span> <code>config.yaml</code><span data-i18n="char_import_7"> for allowed hosts)</span><br><span data-i18n="char_import_example">Example:</span> <tt>https://files.catbox.moe/notarealfile.png</tt></li>
|
||||
<li><span data-i18n="char_import_8">RisuRealm Character (Direct Link)</span><br><span data-i18n="char_import_example">Example:</span> <tt>https://realm.risuai.net/character/3ca54c71-6efe-46a2-b9d0-4f62df23d712</tt></li>
|
||||
</ul>
|
||||
|
@ -3003,7 +3003,7 @@ input[type=search]:focus::-webkit-search-cancel-button {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#rm_print_characters_block .ch_name,
|
||||
.character_name_block .ch_name,
|
||||
.avatar-container .ch_name {
|
||||
flex: 1 1 auto;
|
||||
white-space: nowrap;
|
||||
@ -3013,6 +3013,13 @@ input[type=search]:focus::-webkit-search-cancel-button {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.character_name_block .character_version {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
text-wrap: nowrap;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
#rm_print_characters_block .character_name_block> :last-child {
|
||||
flex: 0 100000 auto;
|
||||
/* Force shrinking first */
|
||||
|
@ -74,12 +74,18 @@ async function writeCharacterData(inputFile, data, outputFile, request, crop = u
|
||||
* Read the image, resize, and save it as a PNG into the buffer.
|
||||
* @returns {Promise<Buffer>} Image buffer
|
||||
*/
|
||||
function getInputImage() {
|
||||
if (Buffer.isBuffer(inputFile)) {
|
||||
return parseImageBuffer(inputFile, crop);
|
||||
}
|
||||
async function getInputImage() {
|
||||
try {
|
||||
if (Buffer.isBuffer(inputFile)) {
|
||||
return await parseImageBuffer(inputFile, crop);
|
||||
}
|
||||
|
||||
return tryReadImage(inputFile, crop);
|
||||
return await tryReadImage(inputFile, crop);
|
||||
} catch (error) {
|
||||
const message = Buffer.isBuffer(inputFile) ? 'Failed to read image buffer.' : `Failed to read image: ${inputFile}.`;
|
||||
console.warn(message, 'Using a fallback image.', error);
|
||||
return await fs.promises.readFile(defaultAvatarPath);
|
||||
}
|
||||
}
|
||||
|
||||
const inputImage = await getInputImage();
|
||||
|
@ -458,7 +458,8 @@ export function getPasswordSalt() {
|
||||
*/
|
||||
export function getCookieSessionName() {
|
||||
// Get server hostname and hash it to generate a session suffix
|
||||
const suffix = crypto.createHash('sha256').update(os.hostname()).digest('hex').slice(0, 8);
|
||||
const hostname = os.hostname() || 'localhost';
|
||||
const suffix = crypto.createHash('sha256').update(hostname).digest('hex').slice(0, 8);
|
||||
return `session-${suffix}`;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user