This commit is contained in:
RossAsscends
2023-03-18 21:12:14 +09:00
4 changed files with 49 additions and 42 deletions

View File

@@ -823,6 +823,26 @@
<div class="typing_indicator"><span class="typing_indicator_name">CHAR</span> is typing</div>
</div>
<div id="message_template">
<div class="mes" mesid="${count_view_mes}" ch_name="${characterName}" is_user="${mes.is_user}">
<div class="for_checkbox"></div><input type="checkbox" class="del_checkbox">
<div class="avatar"><img src="${avatarImg}"></div>
<div class="swipe_left"><img src="img/swipe_left.png"></div>
<div class="mes_block">
<div class="ch_name">
<span class="name_text">${characterName}</span>
<div title=Edit class=mes_edit></div>
<div class=mes_edit_cancel><img src=img/cancel.png></div>
<div class=mes_edit_done><img src=img/done.png></div>
</div>
<div class=mes_text></div>
</div>
<div class="mes_bias">${bias}</div>
<div class="swipe_right"> <img src="img/swipe_right.png"></div>
<div class="swipes-counter"></div>
</div>
</div>
<div id="group_avatars_template">
<div class="avatar avatar_collage collage_1">
<img alt="img1" class="img_1" src="">

View File

@@ -784,6 +784,15 @@ function messageFormating(mes, ch_name, isSystem, forceAvatar) {
return mes;
}
function getMessageFromTemplate(mesId, characterName, isUser, avatarImg, bias) {
const mes = $('#message_template .mes').clone();
mes.attr({ 'mesid': mesId, 'ch_name': characterName, 'is_user': isUser });
mes.find('.avatar img').attr('src', avatarImg);
mes.find('.ch_name .name_text').text(characterName);
mes.find('.mes_bias').html(bias);
return mes;
}
function appendImageToMessage(mes, messageElement) {
if (mes.extra?.image) {
const image = document.createElement("img");
@@ -830,34 +839,7 @@ function addOneMessage(mes, type = "normal") {
);
const bias = messageFormating(mes.extra?.bias ?? "");
var HTMLForEachMes =
'<div class="mes" mesid="' + count_view_mes + '" ch_name="' + characterName + '" is_user="' + mes["is_user"] + '">' +
'<div class="for_checkbox"></div>' +
'<input type="checkbox" class="del_checkbox">' +
'<div class="avatar">' +
'<img src="' + avatarImg + '">' +
'</div>' +
'<div class="swipe_left">' +
'<img src="img/swipe_left.png">' +
'</div>' +
'<div class="mes_block">' +
'<div class="ch_name">' +
characterName +
'<div title=Edit class=mes_edit></div>' +
'<div class=mes_edit_cancel>' +
'<img src=img/cancel.png>' +
'</div>' +
'<div class=mes_edit_done>' +
'<img src=img/done.png>' +
'</div>' +
'</div>' +
'<div class=mes_text></div>' +
'</div>' +
'<div class="mes_bias">' + bias + '</div>' +
'<div class="swipe_right">' +
' <img src="img/swipe_right.png"><div class="swipes-counter"></div>' +
'</div>' +
'</div>';
var HTMLForEachMes = getMessageFromTemplate(count_view_mes, characterName, mes.is_user, avatarImg, bias);
if (type !== 'swipe') {
$("#chat").append(HTMLForEachMes);

View File

@@ -5,20 +5,8 @@ export {
defaultRequestArgs,
};
import * as captionManifest from "./extensions/caption/manifest.json" assert {type: 'json'};
import * as diceManifest from "./extensions/dice/manifest.json" assert {type: 'json'};
import * as expressionsManifest from "./extensions/expressions/manifest.json" assert {type: 'json'};
import * as floatingPromptManifest from "./extensions/floating-prompt/manifest.json" assert {type: 'json'};
import * as memoryManifest from "./extensions/memory/manifest.json" assert {type: 'json'};
const manifests = {
'floating-prompt': floatingPromptManifest.default,
'dice': diceManifest.default,
'caption': captionManifest.default,
'expressions': expressionsManifest.default,
'memory': memoryManifest.default,
};
const extensionNames = ['caption', 'dice', 'expressions', 'floating-prompt', 'memory'];
const manifests = await getManifests(extensionNames);
const extensions_urlKey = 'extensions_url';
const extensions_autoConnectKey = 'extensions_autoconnect';
let modules = [];
@@ -30,6 +18,19 @@ const defaultUrl = "http://localhost:5100";
const defaultRequestArgs = { method: 'GET', headers: { 'Bypass-Tunnel-Reminder': 'bypass' } };
let connectedToApi = false;
async function getManifests(names) {
const obj = {};
for (const name of names) {
const response = await fetch(`/scripts/extensions/${name}/manifest.json`);
if (response.ok) {
const json = await response.json();
obj[name] = json;
}
}
return obj;
}
async function activateExtensions() {
const extensions = Object.entries(manifests).sort((a, b) => a[1].loading_order - b[1].loading_order);

View File

@@ -363,6 +363,10 @@ code {
}
#message_template {
display: none !important;
}
.mes {
display: grid;