Merge branch 'staging' of https://github.com/SillyTavern/SillyTavern into staging

This commit is contained in:
Yokayo
2024-08-26 01:42:41 +07:00
5 changed files with 17 additions and 10 deletions

View File

@ -90,9 +90,11 @@ whitelistImportDomains:
## headers: ## headers:
## User-Agent: "Googlebot/2.1 (+http://www.google.com/bot.html)" ## User-Agent: "Googlebot/2.1 (+http://www.google.com/bot.html)"
requestOverrides: [] requestOverrides: []
# -- PLUGIN CONFIGURATION -- # -- EXTENSIONS CONFIGURATION --
# Enable UI extensions # Enable UI extensions
enableExtensions: true enableExtensions: true
# Automatically update extensions when a release version changes
enableExtensionsAutoUpdate: true
# Extension settings # Extension settings
extras: extras:
# Disables automatic model download from HuggingFace # Disables automatic model download from HuggingFace

View File

@ -416,6 +416,7 @@ export const event_types = {
GENERATION_STOPPED: 'generation_stopped', GENERATION_STOPPED: 'generation_stopped',
GENERATION_ENDED: 'generation_ended', GENERATION_ENDED: 'generation_ended',
EXTENSIONS_FIRST_LOAD: 'extensions_first_load', EXTENSIONS_FIRST_LOAD: 'extensions_first_load',
EXTENSION_SETTINGS_LOADED: 'extension_settings_loaded',
SETTINGS_LOADED: 'settings_loaded', SETTINGS_LOADED: 'settings_loaded',
SETTINGS_UPDATED: 'settings_updated', SETTINGS_UPDATED: 'settings_updated',
GROUP_UPDATED: 'group_updated', GROUP_UPDATED: 'group_updated',
@ -6517,9 +6518,10 @@ export async function getSettings() {
selected_button = settings.selected_button; selected_button = settings.selected_button;
if (data.enable_extensions) { if (data.enable_extensions) {
const enableAutoUpdate = Boolean(data.enable_extensions_auto_update);
const isVersionChanged = settings.currentVersion !== currentVersion; const isVersionChanged = settings.currentVersion !== currentVersion;
await loadExtensionSettings(settings, isVersionChanged); await loadExtensionSettings(settings, isVersionChanged, enableAutoUpdate);
eventSource.emit(event_types.EXTENSION_SETTINGS_LOADED); await eventSource.emit(event_types.EXTENSION_SETTINGS_LOADED);
} }
firstRun = !!settings.firstRun; firstRun = !!settings.firstRun;

View File

@ -307,7 +307,7 @@ async function activateExtensions() {
if (!isDisabled) { if (!isDisabled) {
const promise = Promise.all([addExtensionScript(name, manifest), addExtensionStyle(name, manifest)]); const promise = Promise.all([addExtensionScript(name, manifest), addExtensionStyle(name, manifest)]);
promise await promise
.then(() => activeExtensions.add(name)) .then(() => activeExtensions.add(name))
.catch(err => console.log('Could not activate extension: ' + name, err)); .catch(err => console.log('Could not activate extension: ' + name, err));
promises.push(promise); promises.push(promise);
@ -822,16 +822,17 @@ export async function installExtension(url) {
const response = await request.json(); const response = await request.json();
toastr.success(`Extension "${response.display_name}" by ${response.author} (version ${response.version}) has been installed successfully!`, 'Extension installation successful'); toastr.success(`Extension "${response.display_name}" by ${response.author} (version ${response.version}) has been installed successfully!`, 'Extension installation successful');
console.debug(`Extension "${response.display_name}" has been installed successfully at ${response.extensionPath}`); console.debug(`Extension "${response.display_name}" has been installed successfully at ${response.extensionPath}`);
await loadExtensionSettings({}, false); await loadExtensionSettings({}, false, false);
eventSource.emit(event_types.EXTENSION_SETTINGS_LOADED); await eventSource.emit(event_types.EXTENSION_SETTINGS_LOADED);
} }
/** /**
* Loads extension settings from the app settings. * Loads extension settings from the app settings.
* @param {object} settings App Settings * @param {object} settings App Settings
* @param {boolean} versionChanged Is this a version change? * @param {boolean} versionChanged Is this a version change?
* @param {boolean} enableAutoUpdate Enable auto-update
*/ */
async function loadExtensionSettings(settings, versionChanged) { async function loadExtensionSettings(settings, versionChanged, enableAutoUpdate) {
if (settings.extension_settings) { if (settings.extension_settings) {
Object.assign(extension_settings, settings.extension_settings); Object.assign(extension_settings, settings.extension_settings);
} }
@ -842,11 +843,11 @@ async function loadExtensionSettings(settings, versionChanged) {
$('#extensions_notify_updates').prop('checked', extension_settings.notifyUpdates); $('#extensions_notify_updates').prop('checked', extension_settings.notifyUpdates);
// Activate offline extensions // Activate offline extensions
eventSource.emit(event_types.EXTENSIONS_FIRST_LOAD); await eventSource.emit(event_types.EXTENSIONS_FIRST_LOAD);
extensionNames = await discoverExtensions(); extensionNames = await discoverExtensions();
manifests = await getManifests(extensionNames); manifests = await getManifests(extensionNames);
if (versionChanged) { if (versionChanged && enableAutoUpdate) {
await autoUpdateExtensions(false); await autoUpdateExtensions(false);
} }

View File

@ -8,7 +8,7 @@ export const markdownUnderscoreExt = () => {
return [{ return [{
type: 'output', type: 'output',
regex: new RegExp('(<code>[\\s\\S]*?<\\/code>)|\\b(?<!_)_(?!_)(.*?)(?<!_)_(?!_)\\b', 'g'), regex: new RegExp('(<code(?:\\s+[^>]*)?>[\\s\\S]*?<\\/code>)|\\b(?<!_)_(?!_)(.*?)(?<!_)_(?!_)\\b', 'g'),
replace: function(match, codeContent, italicContent) { replace: function(match, codeContent, italicContent) {
if (codeContent) { if (codeContent) {
// If it's inside <code> tags, return unchanged // If it's inside <code> tags, return unchanged

View File

@ -9,6 +9,7 @@ const { jsonParser } = require('../express-common');
const { getAllUserHandles, getUserDirectories } = require('../users'); const { getAllUserHandles, getUserDirectories } = require('../users');
const ENABLE_EXTENSIONS = getConfigValue('enableExtensions', true); const ENABLE_EXTENSIONS = getConfigValue('enableExtensions', true);
const ENABLE_EXTENSIONS_AUTO_UPDATE = getConfigValue('enableExtensionsAutoUpdate', true);
const ENABLE_ACCOUNTS = getConfigValue('enableUserAccounts', false); const ENABLE_ACCOUNTS = getConfigValue('enableUserAccounts', false);
// 10 minutes // 10 minutes
@ -268,6 +269,7 @@ router.post('/get', jsonParser, (request, response) => {
instruct, instruct,
context, context,
enable_extensions: ENABLE_EXTENSIONS, enable_extensions: ENABLE_EXTENSIONS,
enable_extensions_auto_update: ENABLE_EXTENSIONS_AUTO_UPDATE,
enable_accounts: ENABLE_ACCOUNTS, enable_accounts: ENABLE_ACCOUNTS,
}); });
}); });