Merge branch 'staging' into woo-yeah
| @@ -6373,7 +6373,10 @@ | |||
| 6373 | <img alt="Avatar" src="" /> | 6373 | <img alt="Avatar" src="" /> |
| 6374 | </div> | 6374 | </div> |
| 6375 | <div class="group_member_name"> | 6375 | <div class="group_member_name"> |
| 6376 | <div class="ch_name"></div> | 6376 | <div class="character_name_block"> |
| 6377 | <span class="ch_name"></span> | ||
| 6378 | <small class="ch_additional_info character_version"></small> | ||
| 6379 | </div> | ||
| 6377 | <div class="tags tags_inline"></div> | 6380 | <div class="tags tags_inline"></div> |
| 6378 | </div> | 6381 | </div> |
| 6379 | <input class="ch_fav" value="" hidden /> | 6382 | <input class="ch_fav" value="" hidden /> |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (رابط مباشر أو معرف)", | 1376 | "char_import_2": "Chub Lorebook (رابط مباشر أو معرف)", |
| 1377 | "char_import_3": "حرف JanitorAI (رابط مباشر أو UUID)", | 1377 | "char_import_3": "حرف JanitorAI (رابط مباشر أو UUID)", |
| 1378 | "char_import_4": "حرف Pygmalion.chat (رابط مباشر أو UUID)", | 1378 | "char_import_4": "حرف Pygmalion.chat (رابط مباشر أو UUID)", |
| 1379 | "char_import_5": "حرف AICharacterCard.com (رابط مباشر أو معرف)", | 1379 | "char_import_5": "حرف AICharacterCards.com (رابط مباشر أو معرف)", |
| 1380 | "char_import_6": "رابط PNG المباشر (راجع", | 1380 | "char_import_6": "رابط PNG المباشر (راجع", |
| 1381 | "char_import_7": "للمضيفين المسموح بهم)", | 1381 | "char_import_7": "للمضيفين المسموح بهم)", |
| 1382 | "char_import_8": "شخصية RisuRealm (رابط مباشر)", | 1382 | "char_import_8": "شخصية RisuRealm (رابط مباشر)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (Direktlink oder ID)", | 1376 | "char_import_2": "Chub Lorebook (Direktlink oder ID)", |
| 1377 | "char_import_3": "JanitorAI-Charakter (Direktlink oder UUID)", | 1377 | "char_import_3": "JanitorAI-Charakter (Direktlink oder UUID)", |
| 1378 | "char_import_4": "Pygmalion.chat-Charakter (Direktlink oder UUID)", | 1378 | "char_import_4": "Pygmalion.chat-Charakter (Direktlink oder UUID)", |
| 1379 | "char_import_5": "AICharacterCard.com-Charakter (Direktlink oder ID)", | 1379 | "char_import_5": "AICharacterCards.com-Charakter (Direktlink oder ID)", |
| 1380 | "char_import_6": "Direkter PNG-Link (siehe", | 1380 | "char_import_6": "Direkter PNG-Link (siehe", |
| 1381 | "char_import_7": "für erlaubte Hosts)", | 1381 | "char_import_7": "für erlaubte Hosts)", |
| 1382 | "char_import_8": "RisuRealm-Charakter (Direktlink)", | 1382 | "char_import_8": "RisuRealm-Charakter (Direktlink)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (enlace directo o ID)", | 1376 | "char_import_2": "Chub Lorebook (enlace directo o ID)", |
| 1377 | "char_import_3": "Carácter de JanitorAI (enlace directo o UUID)", | 1377 | "char_import_3": "Carácter de JanitorAI (enlace directo o UUID)", |
| 1378 | "char_import_4": "Carácter Pygmalion.chat (enlace directo o UUID)", | 1378 | "char_import_4": "Carácter Pygmalion.chat (enlace directo o UUID)", |
| 1379 | "char_import_5": "Carácter AICharacterCard.com (enlace directo o ID)", | 1379 | "char_import_5": "Carácter AICharacterCards.com (enlace directo o ID)", |
| 1380 | "char_import_6": "Enlace PNG directo (consulte", | 1380 | "char_import_6": "Enlace PNG directo (consulte", |
| 1381 | "char_import_7": "para hosts permitidos)", | 1381 | "char_import_7": "para hosts permitidos)", |
| 1382 | "char_import_8": "Personaje RisuRealm (Enlace directo)", | 1382 | "char_import_8": "Personaje RisuRealm (Enlace directo)", |
| @@ -1297,7 +1297,7 @@ | |||
| 1297 | "char_import_2": "Lorebook de Chub (lien direct ou ID)", | 1297 | "char_import_2": "Lorebook de Chub (lien direct ou ID)", |
| 1298 | "char_import_3": "Personnage de JanitorAI (lien direct ou UUID)", | 1298 | "char_import_3": "Personnage de JanitorAI (lien direct ou UUID)", |
| 1299 | "char_import_4": "Personnage de Pygmalion.chat (lien direct ou UUID)", | 1299 | "char_import_4": "Personnage de Pygmalion.chat (lien direct ou UUID)", |
| 1300 | "char_import_5": "Personnage de AICharacterCard.com (lien direct ou identifiant)", | 1300 | "char_import_5": "Personnage de AICharacterCards.com (lien direct ou identifiant)", |
| 1301 | "char_import_6": "Lien PNG direct (voir", | 1301 | "char_import_6": "Lien PNG direct (voir", |
| 1302 | "char_import_7": "pour les hôtes autorisés)", | 1302 | "char_import_7": "pour les hôtes autorisés)", |
| 1303 | "char_import_8": "Personnage de RisuRealm (lien direct)", | 1303 | "char_import_8": "Personnage de RisuRealm (lien direct)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (beinn hlekkur eða auðkenni)", | 1376 | "char_import_2": "Chub Lorebook (beinn hlekkur eða auðkenni)", |
| 1377 | "char_import_3": "JanitorAI karakter (beinn hlekkur eða UUID)", | 1377 | "char_import_3": "JanitorAI karakter (beinn hlekkur eða UUID)", |
| 1378 | "char_import_4": "Pygmalion.chat karakter (beinn hlekkur eða UUID)", | 1378 | "char_import_4": "Pygmalion.chat karakter (beinn hlekkur eða UUID)", |
| 1379 | "char_import_5": "AICharacterCard.com Karakter (beinn hlekkur eða auðkenni)", | 1379 | "char_import_5": "AICharacterCards.com Karakter (beinn hlekkur eða auðkenni)", |
| 1380 | "char_import_6": "Beinn PNG hlekkur (sjá", | 1380 | "char_import_6": "Beinn PNG hlekkur (sjá", |
| 1381 | "char_import_7": "fyrir leyfilega gestgjafa)", | 1381 | "char_import_7": "fyrir leyfilega gestgjafa)", |
| 1382 | "char_import_8": "RisuRealm karakter (beinn hlekkur)", | 1382 | "char_import_8": "RisuRealm karakter (beinn hlekkur)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Lorebook di Chub (collegamento diretto o ID)", | 1376 | "char_import_2": "Lorebook di Chub (collegamento diretto o ID)", |
| 1377 | "char_import_3": "Carattere JanitorAI (collegamento diretto o UUID)", | 1377 | "char_import_3": "Carattere JanitorAI (collegamento diretto o UUID)", |
| 1378 | "char_import_4": "Carattere Pygmalion.chat (collegamento diretto o UUID)", | 1378 | "char_import_4": "Carattere Pygmalion.chat (collegamento diretto o UUID)", |
| 1379 | "char_import_5": "Carattere AICharacterCard.com (Link diretto o ID)", | 1379 | "char_import_5": "Carattere AICharacterCards.com (Link diretto o ID)", |
| 1380 | "char_import_6": "Collegamento PNG diretto (fare riferimento a", | 1380 | "char_import_6": "Collegamento PNG diretto (fare riferimento a", |
| 1381 | "char_import_7": "per gli host consentiti)", | 1381 | "char_import_7": "per gli host consentiti)", |
| 1382 | "char_import_8": "Personaggio RisuRealm (collegamento diretto)", | 1382 | "char_import_8": "Personaggio RisuRealm (collegamento diretto)", |
| @@ -1378,7 +1378,7 @@ | |||
| 1378 | "char_import_2": "Chub ロアブック (直接リンクまたは ID)", | 1378 | "char_import_2": "Chub ロアブック (直接リンクまたは ID)", |
| 1379 | "char_import_3": "JanitorAI キャラクター (直接リンクまたは UUID)", | 1379 | "char_import_3": "JanitorAI キャラクター (直接リンクまたは UUID)", |
| 1380 | "char_import_4": "Pygmalion.chat キャラクター (直接リンクまたは UUID)", | 1380 | "char_import_4": "Pygmalion.chat キャラクター (直接リンクまたは UUID)", |
| 1381 | "char_import_5": "AICharacterCard.com キャラクター (直接リンクまたは ID)", | 1381 | "char_import_5": "AICharacterCards.com キャラクター (直接リンクまたは ID)", |
| 1382 | "char_import_6": "直接PNGリンク(参照", | 1382 | "char_import_6": "直接PNGリンク(参照", |
| 1383 | "char_import_7": "許可されたホストの場合)", | 1383 | "char_import_7": "許可されたホストの場合)", |
| 1384 | "char_import_8": "RisuRealm キャラクター (直接リンク)", | 1384 | "char_import_8": "RisuRealm キャラクター (直接リンク)", |
| @@ -1395,7 +1395,7 @@ | |||
| 1395 | "char_import_2": "Chub Lorebook(직접 링크 또는 ID)", | 1395 | "char_import_2": "Chub Lorebook(직접 링크 또는 ID)", |
| 1396 | "char_import_3": "JanitorAI 캐릭터(직접 링크 또는 UUID)", | 1396 | "char_import_3": "JanitorAI 캐릭터(직접 링크 또는 UUID)", |
| 1397 | "char_import_4": "Pygmalion.chat 문자(직접 링크 또는 UUID)", | 1397 | "char_import_4": "Pygmalion.chat 문자(직접 링크 또는 UUID)", |
| 1398 | "char_import_5": "AICharacterCard.com 캐릭터(직접 링크 또는 ID)", | 1398 | "char_import_5": "AICharacterCards.com 캐릭터(직접 링크 또는 ID)", |
| 1399 | "char_import_6": "직접 PNG 링크(참조", | 1399 | "char_import_6": "직접 PNG 링크(참조", |
| 1400 | "char_import_7": "허용된 호스트의 경우)", | 1400 | "char_import_7": "허용된 호스트의 경우)", |
| 1401 | "char_import_8": "RisuRealm 캐릭터 (직접링크)", | 1401 | "char_import_8": "RisuRealm 캐릭터 (직접링크)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (directe link of ID)", | 1376 | "char_import_2": "Chub Lorebook (directe link of ID)", |
| 1377 | "char_import_3": "JanitorAI-personage (directe link of UUID)", | 1377 | "char_import_3": "JanitorAI-personage (directe link of UUID)", |
| 1378 | "char_import_4": "Pygmalion.chat-teken (directe link of UUID)", | 1378 | "char_import_4": "Pygmalion.chat-teken (directe link of UUID)", |
| 1379 | "char_import_5": "AICharacterCard.com-teken (directe link of ID)", | 1379 | "char_import_5": "AICharacterCards.com-teken (directe link of ID)", |
| 1380 | "char_import_6": "Directe PNG-link (zie", | 1380 | "char_import_6": "Directe PNG-link (zie", |
| 1381 | "char_import_7": "voor toegestane hosts)", | 1381 | "char_import_7": "voor toegestane hosts)", |
| 1382 | "char_import_8": "RisuRealm-personage (directe link)", | 1382 | "char_import_8": "RisuRealm-personage (directe link)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (link direto ou ID)", | 1376 | "char_import_2": "Chub Lorebook (link direto ou ID)", |
| 1377 | "char_import_3": "Personagem JanitorAI (Link Direto ou UUID)", | 1377 | "char_import_3": "Personagem JanitorAI (Link Direto ou UUID)", |
| 1378 | "char_import_4": "Caractere Pygmalion.chat (Link Direto ou UUID)", | 1378 | "char_import_4": "Caractere Pygmalion.chat (Link Direto ou UUID)", |
| 1379 | "char_import_5": "Personagem AICharacterCard.com (link direto ou ID)", | 1379 | "char_import_5": "Personagem AICharacterCards.com (link direto ou ID)", |
| 1380 | "char_import_6": "Link PNG direto (consulte", | 1380 | "char_import_6": "Link PNG direto (consulte", |
| 1381 | "char_import_7": "para hosts permitidos)", | 1381 | "char_import_7": "para hosts permitidos)", |
| 1382 | "char_import_8": "Personagem RisuRealm (link direto)", | 1382 | "char_import_8": "Personagem RisuRealm (link direto)", |
| @@ -966,7 +966,7 @@ | |||
| 966 | "char_import_2": "Лорбук с Chub (прямая ссылка или ID)", | 966 | "char_import_2": "Лорбук с Chub (прямая ссылка или ID)", |
| 967 | "char_import_3": "Персонаж с JanitorAI (прямая ссылка или UUID)", | 967 | "char_import_3": "Персонаж с JanitorAI (прямая ссылка или UUID)", |
| 968 | "char_import_4": "Персонаж с Pygmalion.chat (прямая ссылка или UUID)", | 968 | "char_import_4": "Персонаж с Pygmalion.chat (прямая ссылка или UUID)", |
| 969 | "char_import_5": "Персонаж с AICharacterCard.com (прямая ссылка или ID)", | 969 | "char_import_5": "Персонаж с AICharacterCards.com (прямая ссылка или ID)", |
| 970 | "char_import_6": "Прямая ссылка на PNG-файл (чтобы узнать список разрешённых хостов, загляните в", | 970 | "char_import_6": "Прямая ссылка на PNG-файл (чтобы узнать список разрешённых хостов, загляните в", |
| 971 | "char_import_7": ")", | 971 | "char_import_7": ")", |
| 972 | "Grammar String": "Грамматика", | 972 | "Grammar String": "Грамматика", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub Lorebook (пряме посилання або ID)", | 1376 | "char_import_2": "Chub Lorebook (пряме посилання або ID)", |
| 1377 | "char_import_3": "Символ JanitorAI (пряме посилання або UUID)", | 1377 | "char_import_3": "Символ JanitorAI (пряме посилання або UUID)", |
| 1378 | "char_import_4": "Символ Pygmalion.chat (пряме посилання або UUID)", | 1378 | "char_import_4": "Символ Pygmalion.chat (пряме посилання або UUID)", |
| 1379 | "char_import_5": "Символ AICharacterCard.com (пряме посилання або ідентифікатор)", | 1379 | "char_import_5": "Символ AICharacterCards.com (пряме посилання або ідентифікатор)", |
| 1380 | "char_import_6": "Пряме посилання на PNG (див", | 1380 | "char_import_6": "Пряме посилання на PNG (див", |
| 1381 | "char_import_7": "для дозволених хостів)", | 1381 | "char_import_7": "для дозволених хостів)", |
| 1382 | "char_import_8": "Персонаж RisuRealm (пряме посилання)", | 1382 | "char_import_8": "Персонаж RisuRealm (пряме посилання)", |
| @@ -1376,7 +1376,7 @@ | |||
| 1376 | "char_import_2": "Chub (Nhập URL trực tiếp hoặc ID)", | 1376 | "char_import_2": "Chub (Nhập URL trực tiếp hoặc ID)", |
| 1377 | "char_import_3": "JanitorAI (Nhập URL trực tiếp hoặc UUID)", | 1377 | "char_import_3": "JanitorAI (Nhập URL trực tiếp hoặc UUID)", |
| 1378 | "char_import_4": "Pygmalion.chat (Nhập URL trực tiếp hoặc UUID)", | 1378 | "char_import_4": "Pygmalion.chat (Nhập URL trực tiếp hoặc UUID)", |
| 1379 | "char_import_5": "AICharacterCard.com (Nhập URL trực tiếp hoặc ID)", | 1379 | "char_import_5": "AICharacterCards.com (Nhập URL trực tiếp hoặc ID)", |
| 1380 | "char_import_6": "Nhập PNG trực tiếp (tham khảo", | 1380 | "char_import_6": "Nhập PNG trực tiếp (tham khảo", |
| 1381 | "char_import_7": "đối với các máy chủ được phép)", | 1381 | "char_import_7": "đối với các máy chủ được phép)", |
| 1382 | "char_import_8": "RisuRealm (URL trực tiếp)", | 1382 | "char_import_8": "RisuRealm (URL trực tiếp)", |
| @@ -1829,7 +1829,7 @@ | |||
| 1829 | "char_import_2": "Chub 知识书(直链或ID)", | 1829 | "char_import_2": "Chub 知识书(直链或ID)", |
| 1830 | "char_import_3": "JanitorAI 角色(直链或UUID)", | 1830 | "char_import_3": "JanitorAI 角色(直链或UUID)", |
| 1831 | "char_import_4": "Pygmalion.chat 角色(直链或UUID)", | 1831 | "char_import_4": "Pygmalion.chat 角色(直链或UUID)", |
| 1832 | "char_import_5": "AICharacterCard.com 角色(直链或ID)", | 1832 | "char_import_5": "AICharacterCards.com 角色(直链或ID)", |
| 1833 | "char_import_6": "被允许的PNG直链(请参阅", | 1833 | "char_import_6": "被允许的PNG直链(请参阅", |
| 1834 | "char_import_7": ")", | 1834 | "char_import_7": ")", |
| 1835 | "char_import_8": "RisuRealm 角色(直链)", | 1835 | "char_import_8": "RisuRealm 角色(直链)", |
| @@ -1381,7 +1381,7 @@ | |||
| 1381 | "char_import_2": "Chub Lorebook(直接連結或 ID)", | 1381 | "char_import_2": "Chub Lorebook(直接連結或 ID)", |
| 1382 | "char_import_3": "JanitorAI 角色(直接連結或 ID)", | 1382 | "char_import_3": "JanitorAI 角色(直接連結或 ID)", |
| 1383 | "char_import_4": "Pygmalion.chat 角色(直接連結或 ID)", | 1383 | "char_import_4": "Pygmalion.chat 角色(直接連結或 ID)", |
| 1384 | "char_import_5": "AICharacterCard.com 角色(直接連結或 ID)", | 1384 | "char_import_5": "AICharacterCards.com 角色(直接連結或 ID)", |
| 1385 | "char_import_6": "直接 PNG 連結(請參閱", | 1385 | "char_import_6": "直接 PNG 連結(請參閱", |
| 1386 | "char_import_7": "對於允許的主機)", | 1386 | "char_import_7": "對於允許的主機)", |
| 1387 | "char_import_8": "RisuRealm角色(直接連結)", | 1387 | "char_import_8": "RisuRealm角色(直接連結)", |
| @@ -482,10 +482,10 @@ function highlightNewBackground(bg) { | |||
| 482 | */ | 482 | */ |
| 483 | function setFittingClass(fitting) { | 483 | function setFittingClass(fitting) { |
| 484 | const backgrounds = $('#bg1, #bg_custom'); | 484 | const backgrounds = $('#bg1, #bg_custom'); |
| 485 | backgrounds.toggleClass('cover', fitting === 'cover'); | 485 | for (const option of ['cover', 'contain', 'stretch', 'center']) { |
| 486 | backgrounds.toggleClass('contain', fitting === 'contain'); | 486 | backgrounds.toggleClass(option, option === fitting); |
| 487 | backgrounds.toggleClass('stretch', fitting === 'stretch'); | 487 | } |
| 488 | backgrounds.toggleClass('center', fitting === 'center'); | 488 | background_settings.fitting = fitting; |
| 489 | } | 489 | } |
| 490 | 490 | ||
| 491 | function onBackgroundFilterInput() { | 491 | function onBackgroundFilterInput() { |
| @@ -1368,6 +1368,15 @@ function getGroupCharacterBlock(character) { | |||
| 1368 | template.find('.ch_fav').val(isFav); | 1368 | template.find('.ch_fav').val(isFav); |
| 1369 | template.toggleClass('is_fav', isFav); | 1369 | template.toggleClass('is_fav', isFav); |
| 1370 | 1370 | ||
| 1371 | const auxFieldName = power_user.aux_field || 'character_version'; | ||
| 1372 | const auxFieldValue = (character.data && character.data[auxFieldName]) || ''; | ||
| 1373 | if (auxFieldValue) { | ||
| 1374 | template.find('.character_version').text(auxFieldValue); | ||
| 1375 | } | ||
| 1376 | else { | ||
| 1377 | template.find('.character_version').hide(); | ||
| 1378 | } | ||
| 1379 | |||
| 1371 | let queuePosition = groupChatQueueOrder.get(character.avatar); | 1380 | let queuePosition = groupChatQueueOrder.get(character.avatar); |
| 1372 | if (queuePosition) { | 1381 | if (queuePosition) { |
| 1373 | template.find('.queue_position').text(queuePosition); | 1382 | template.find('.queue_position').text(queuePosition); |
| @@ -7,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> | 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> |
| 8 | <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> | 8 | <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> |
| 9 | <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> | 9 | <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> |
| 10 | <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> | 10 | <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> |
| 11 | <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> | 11 | <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> |
| 12 | <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> | 12 | <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> |
| 13 | </ul> | 13 | </ul> |
| @@ -3003,7 +3003,7 @@ input[type=search]:focus::-webkit-search-cancel-button { | |||
| 3003 | position: relative; | 3003 | position: relative; |
| 3004 | } | 3004 | } |
| 3005 | 3005 | ||
| 3006 | #rm_print_characters_block .ch_name, | 3006 | .character_name_block .ch_name, |
| 3007 | .avatar-container .ch_name { | 3007 | .avatar-container .ch_name { |
| 3008 | flex: 1 1 auto; | 3008 | flex: 1 1 auto; |
| 3009 | white-space: nowrap; | 3009 | white-space: nowrap; |
| @@ -3013,6 +3013,13 @@ input[type=search]:focus::-webkit-search-cancel-button { | |||
| 3013 | display: block; | 3013 | display: block; |
| 3014 | } | 3014 | } |
| 3015 | 3015 | ||
| 3016 | .character_name_block .character_version { | ||
| 3017 | text-overflow: ellipsis; | ||
| 3018 | overflow: hidden; | ||
| 3019 | text-wrap: nowrap; | ||
| 3020 | max-width: 50%; | ||
| 3021 | } | ||
| 3022 | |||
| 3016 | #rm_print_characters_block .character_name_block> :last-child { | 3023 | #rm_print_characters_block .character_name_block> :last-child { |
| 3017 | flex: 0 100000 auto; | 3024 | flex: 0 100000 auto; |
| 3018 | /* Force shrinking first */ | 3025 | /* Force shrinking first */ |
| @@ -74,12 +74,18 @@ async function writeCharacterData(inputFile, data, outputFile, request, crop = u | |||
| 74 | * Read the image, resize, and save it as a PNG into the buffer. | 74 | * Read the image, resize, and save it as a PNG into the buffer. |
| 75 | * @returns {Promise<Buffer>} Image buffer | 75 | * @returns {Promise<Buffer>} Image buffer |
| 76 | */ | 76 | */ |
| 77 | function getInputImage() { | 77 | async function getInputImage() { |
| 78 | try { | ||
| 78 | if (Buffer.isBuffer(inputFile)) { | 79 | if (Buffer.isBuffer(inputFile)) { |
| 79 | return parseImageBuffer(inputFile, crop); | 80 | return await parseImageBuffer(inputFile, crop); |
| 80 | } | 81 | } |
| 81 | 82 | ||
| 82 | return tryReadImage(inputFile, crop); | 83 | return await tryReadImage(inputFile, crop); |
| 84 | } catch (error) { | ||
| 85 | const message = Buffer.isBuffer(inputFile) ? 'Failed to read image buffer.' : `Failed to read image: ${inputFile}.`; | ||
| 86 | console.warn(message, 'Using a fallback image.', error); | ||
| 87 | return await fs.promises.readFile(defaultAvatarPath); | ||
| 88 | } | ||
| 83 | } | 89 | } |
| 84 | 90 | ||
| 85 | const inputImage = await getInputImage(); | 91 | const inputImage = await getInputImage(); |
| @@ -458,7 +458,8 @@ export function getPasswordSalt() { | |||
| 458 | */ | 458 | */ |
| 459 | export function getCookieSessionName() { | 459 | export function getCookieSessionName() { |
| 460 | // Get server hostname and hash it to generate a session suffix | 460 | // Get server hostname and hash it to generate a session suffix |
| 461 | const suffix = crypto.createHash('sha256').update(os.hostname()).digest('hex').slice(0, 8); | 461 | const hostname = os.hostname() || 'localhost'; |
| 462 | const suffix = crypto.createHash('sha256').update(hostname).digest('hex').slice(0, 8); | ||
| 462 | return `session-${suffix}`; | 463 | return `session-${suffix}`; |
| 463 | } | 464 | } |
| 464 | 465 | ||