mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Merge branch 'staging' into parser-followup-2
This commit is contained in:
		@@ -1,10 +1,11 @@
 | 
			
		||||
import { callPopup, main_api } from '../../../script.js';
 | 
			
		||||
import { main_api } from '../../../script.js';
 | 
			
		||||
import { getContext } from '../../extensions.js';
 | 
			
		||||
import { SlashCommand } from '../../slash-commands/SlashCommand.js';
 | 
			
		||||
import { SlashCommandParser } from '../../slash-commands/SlashCommandParser.js';
 | 
			
		||||
import { getFriendlyTokenizerName, getTextTokens, getTokenCountAsync, tokenizers } from '../../tokenizers.js';
 | 
			
		||||
import { resetScrollHeight, debounce } from '../../utils.js';
 | 
			
		||||
import { debounce_timeout } from '../../constants.js';
 | 
			
		||||
import { POPUP_TYPE, callGenericPopup } from '../../popup.js';
 | 
			
		||||
 | 
			
		||||
function rgb2hex(rgb) {
 | 
			
		||||
    rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
 | 
			
		||||
@@ -63,8 +64,7 @@ async function doTokenCounter() {
 | 
			
		||||
    }, debounce_timeout.relaxed);
 | 
			
		||||
    dialog.find('#token_counter_textarea').on('input', () => countDebounced());
 | 
			
		||||
 | 
			
		||||
    $('#dialogue_popup').addClass('wide_dialogue_popup');
 | 
			
		||||
    callPopup(dialog, 'text', '', { wide: true, large: true });
 | 
			
		||||
    callGenericPopup(dialog, POPUP_TYPE.TEXT, '', { wide: true, large: true, allowVerticalScrolling: true });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
export { translate };
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    callPopup,
 | 
			
		||||
    eventSource,
 | 
			
		||||
    event_types,
 | 
			
		||||
    getRequestHeaders,
 | 
			
		||||
@@ -11,6 +10,7 @@ import {
 | 
			
		||||
    updateMessageBlock,
 | 
			
		||||
} from '../../../script.js';
 | 
			
		||||
import { extension_settings, getContext, renderExtensionTemplateAsync } from '../../extensions.js';
 | 
			
		||||
import { POPUP_TYPE, callGenericPopup } from '../../popup.js';
 | 
			
		||||
import { findSecret, secret_state, writeSecret } from '../../secrets.js';
 | 
			
		||||
import { SlashCommand } from '../../slash-commands/SlashCommand.js';
 | 
			
		||||
import { ARGUMENT_TYPE, SlashCommandArgument, SlashCommandNamedArgument } from '../../slash-commands/SlashCommandArgument.js';
 | 
			
		||||
@@ -510,7 +510,7 @@ async function onTranslateChatClick() {
 | 
			
		||||
 | 
			
		||||
async function onTranslationsClearClick() {
 | 
			
		||||
    const popupHtml = await renderExtensionTemplateAsync('translate', 'deleteConfirmation');
 | 
			
		||||
    const confirm = await callPopup(popupHtml, 'confirm');
 | 
			
		||||
    const confirm = await callGenericPopup(popupHtml, POPUP_TYPE.CONFIRM);
 | 
			
		||||
 | 
			
		||||
    if (!confirm) {
 | 
			
		||||
        return;
 | 
			
		||||
@@ -598,7 +598,7 @@ jQuery(async () => {
 | 
			
		||||
    $(document).on('click', '.mes_translate', onMessageTranslateClick);
 | 
			
		||||
    $('#translate_key_button').on('click', async () => {
 | 
			
		||||
        const optionText = $('#translation_provider option:selected').text();
 | 
			
		||||
        const key = await callPopup(`<h3>${optionText} API Key</h3>`, 'input');
 | 
			
		||||
        const key = await callGenericPopup(`<h3>${optionText} API Key</h3>`, POPUP_TYPE.INPUT);
 | 
			
		||||
 | 
			
		||||
        if (key == false) {
 | 
			
		||||
            return;
 | 
			
		||||
@@ -621,7 +621,7 @@ jQuery(async () => {
 | 
			
		||||
        const secretKey = extension_settings.translate.provider + '_url';
 | 
			
		||||
        const savedUrl = secret_state[secretKey] ? await findSecret(secretKey) : '';
 | 
			
		||||
 | 
			
		||||
        const url = await callPopup(popupText, 'input', savedUrl);
 | 
			
		||||
        const url = await callGenericPopup(popupText, POPUP_TYPE.INPUT, savedUrl);
 | 
			
		||||
 | 
			
		||||
        if (url == false || url == '') {
 | 
			
		||||
            return;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { callPopup, cancelTtsPlay, eventSource, event_types, isStreamingEnabled, name2, saveSettingsDebounced, substituteParams } from '../../../script.js';
 | 
			
		||||
import { cancelTtsPlay, eventSource, event_types, isStreamingEnabled, name2, saveSettingsDebounced, substituteParams } from '../../../script.js';
 | 
			
		||||
import { ModuleWorkerWrapper, doExtrasFetch, extension_settings, getApiUrl, getContext, modules, renderExtensionTemplateAsync } from '../../extensions.js';
 | 
			
		||||
import { delay, escapeRegex, getBase64Async, getStringHash, onlyUnique } from '../../utils.js';
 | 
			
		||||
import { EdgeTtsProvider } from './edge.js';
 | 
			
		||||
@@ -21,6 +21,7 @@ import { ARGUMENT_TYPE, SlashCommandArgument, SlashCommandNamedArgument } from '
 | 
			
		||||
import { debounce_timeout } from '../../constants.js';
 | 
			
		||||
import { SlashCommandEnumValue, enumTypes } from '../../slash-commands/SlashCommandEnumValue.js';
 | 
			
		||||
import { enumIcons } from '../../slash-commands/SlashCommandCommonEnumsProvider.js';
 | 
			
		||||
import { POPUP_TYPE, callGenericPopup } from '../../popup.js';
 | 
			
		||||
export { talkingAnimation };
 | 
			
		||||
 | 
			
		||||
const UPDATE_INTERVAL = 1000;
 | 
			
		||||
@@ -310,7 +311,7 @@ async function onTtsVoicesClick() {
 | 
			
		||||
        popupText = 'Could not load voices list. Check your API key.';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    callPopup(popupText, 'text');
 | 
			
		||||
    callGenericPopup(popupText, POPUP_TYPE.TEXT, '', { allowVerticalScrolling: true });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function updateUiAudioPlayState() {
 | 
			
		||||
@@ -915,7 +916,7 @@ function getCharacters(unrestricted) {
 | 
			
		||||
 | 
			
		||||
function sanitizeId(input) {
 | 
			
		||||
    // Remove any non-alphanumeric characters except underscore (_) and hyphen (-)
 | 
			
		||||
    let sanitized = input.replace(/[^a-zA-Z0-9-_]/g, '');
 | 
			
		||||
    let sanitized = encodeURIComponent(input).replace(/[^a-zA-Z0-9-_]/g, '');
 | 
			
		||||
 | 
			
		||||
    // Ensure first character is always a letter
 | 
			
		||||
    if (!/^[a-zA-Z]/.test(sanitized)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -276,7 +276,8 @@ class SBVits2TtsProvider {
 | 
			
		||||
    async fetchTtsGeneration(inputText, voiceId) {
 | 
			
		||||
        console.info(`Generating new TTS for voice_id ${voiceId}`);
 | 
			
		||||
 | 
			
		||||
        const [model_id, speaker_id, style] = voiceId.split('-');
 | 
			
		||||
        const [model_id, speaker_id, ...rest] = voiceId.split('-');
 | 
			
		||||
        const style = rest.join('-');
 | 
			
		||||
        const params = new URLSearchParams();
 | 
			
		||||
        // restore for auto_split
 | 
			
		||||
        inputText = inputText.replaceAll('<br>', '\n');
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user