mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge branch 'dev' of https://github.com/SillyLossy/TavernAI into dev
This commit is contained in:
@@ -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="">
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -363,6 +363,10 @@ code {
|
||||
}
|
||||
|
||||
|
||||
#message_template {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.mes {
|
||||
|
||||
display: grid;
|
||||
|
Reference in New Issue
Block a user