mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
More slash commands for A/N
This commit is contained in:
@ -2581,7 +2581,7 @@
|
|||||||
<script>
|
<script>
|
||||||
// Configure toast library:
|
// Configure toast library:
|
||||||
toastr.options.escapeHtml = true; // Prevent raw HTML inserts
|
toastr.options.escapeHtml = true; // Prevent raw HTML inserts
|
||||||
toastr.options.timeOut = 3000; // How long the toast will display without user interaction
|
toastr.options.timeOut = 4000; // How long the toast will display without user interaction
|
||||||
toastr.options.extendedTimeOut = 10000; // How long the toast will display after a user hovers over it
|
toastr.options.extendedTimeOut = 10000; // How long the toast will display after a user hovers over it
|
||||||
toastr.options.progressBar = true; // Visually indicate how long before a toast expires.
|
toastr.options.progressBar = true; // Visually indicate how long before a toast expires.
|
||||||
toastr.options.closeButton = true; // enable a close button
|
toastr.options.closeButton = true; // enable a close button
|
||||||
|
@ -20,8 +20,50 @@ const metadata_keys = {
|
|||||||
position: 'note_position',
|
position: 'note_position',
|
||||||
}
|
}
|
||||||
|
|
||||||
function setNoteCommand(_, text) {
|
function setNoteTextCommand(_, text) {
|
||||||
$('#extension_floating_prompt').val(text).trigger('input');
|
$('#extension_floating_prompt').val(text).trigger('input');
|
||||||
|
toastr.success("Author's Note text updated");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setNoteDepthCommand(_, text) {
|
||||||
|
const value = Number(text);
|
||||||
|
|
||||||
|
if (Number.isNaN(value)) {
|
||||||
|
toastr.error('Not a valid number');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#extension_floating_depth').val(Math.abs(value)).trigger('input');
|
||||||
|
toastr.success("Author's Note depth updated");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setNoteIntervalCommand(_, text) {
|
||||||
|
const value = Number(text);
|
||||||
|
|
||||||
|
if (Number.isNaN(value)) {
|
||||||
|
toastr.error('Not a valid number');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#extension_floating_interval').val(Math.abs(value)).trigger('input');
|
||||||
|
toastr.success("Author's Note frequency updated");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setNotePositionCommand(_, text) {
|
||||||
|
const validPositions = {
|
||||||
|
'scenario': 0,
|
||||||
|
'chat': 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
const position = validPositions[text?.trim()];
|
||||||
|
|
||||||
|
if (Number.isNaN(position)) {
|
||||||
|
toastr.error('Not a valid position');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(`input[name="extension_floating_position"][value="${position}"]`).prop('checked', true).trigger('input');
|
||||||
|
toastr.info("Author's Note position updated");
|
||||||
}
|
}
|
||||||
|
|
||||||
async function onExtensionFloatingPromptInput() {
|
async function onExtensionFloatingPromptInput() {
|
||||||
@ -185,5 +227,8 @@ async function moduleWorker() {
|
|||||||
|
|
||||||
addExtensionsSettings();
|
addExtensionsSettings();
|
||||||
setInterval(moduleWorkerWrapper, UPDATE_INTERVAL);
|
setInterval(moduleWorkerWrapper, UPDATE_INTERVAL);
|
||||||
registerSlashCommand('note', setNoteCommand, [], " – sets an author's note for the currently selected chat", true, true);
|
registerSlashCommand('note', setNoteTextCommand, [], "<span class='monospace'>(text)</span> – sets an author's note for the currently selected chat", true, true);
|
||||||
|
registerSlashCommand('depth', setNoteDepthCommand, [], "<span class='monospace'>(number)</span> – sets an author's note depth for in-chat positioning", true, true);
|
||||||
|
registerSlashCommand('freq', setNoteIntervalCommand, ['interval'], "<span class='monospace'>(number)</span> – sets an author's note insertion frequency", true, true);
|
||||||
|
registerSlashCommand('pos', setNotePositionCommand, ['position'], "(<span class='monospace'>chat</span> or <span class='monospace'>scenario</span>) – sets an author's note position", true, true);
|
||||||
})();
|
})();
|
@ -22,6 +22,11 @@ class SlashCommandParser {
|
|||||||
|
|
||||||
addCommand(command, callback, aliases, helpString = '', interruptsGeneration = false, purgeFromMessage = true) {
|
addCommand(command, callback, aliases, helpString = '', interruptsGeneration = false, purgeFromMessage = true) {
|
||||||
const fnObj = { callback, helpString, interruptsGeneration, purgeFromMessage };
|
const fnObj = { callback, helpString, interruptsGeneration, purgeFromMessage };
|
||||||
|
|
||||||
|
if ([command, ...aliases].some(x => this.commands.hasOwnProperty(x))) {
|
||||||
|
console.trace('WARN: Duplicate slash command registered!');
|
||||||
|
}
|
||||||
|
|
||||||
this.commands[command] = fnObj;
|
this.commands[command] = fnObj;
|
||||||
|
|
||||||
if (Array.isArray(aliases)) {
|
if (Array.isArray(aliases)) {
|
||||||
@ -81,7 +86,7 @@ const getSlashCommandsHelp = parser.getHelpString.bind(parser);
|
|||||||
|
|
||||||
parser.addCommand('help', helpCommandCallback, ['?'], ' – displays this help message', true, true);
|
parser.addCommand('help', helpCommandCallback, ['?'], ' – displays this help message', true, true);
|
||||||
parser.addCommand('bg', setBackgroundCallback, ['background'], '<span class="monospace">(filename)</span> – sets a background according to filename, partial names allowed, will set the first one alphebetically if multiple files begin with the provided argument string', false, true);
|
parser.addCommand('bg', setBackgroundCallback, ['background'], '<span class="monospace">(filename)</span> – sets a background according to filename, partial names allowed, will set the first one alphebetically if multiple files begin with the provided argument string', false, true);
|
||||||
parser.addCommand('sys', sendNarratorMessage, [], ' – sends message as a system narrator', false, true);
|
parser.addCommand('sys', sendNarratorMessage, [], '<span class="monospace">(text)</span> – sends message as a system narrator', false, true);
|
||||||
parser.addCommand('sysname', setNarratorName, [], '<span class="monospace">(name)</span> – sets a name for future system narrator messages in this chat (display only). Default: System. Leave empty to reset.', true, true);
|
parser.addCommand('sysname', setNarratorName, [], '<span class="monospace">(name)</span> – sets a name for future system narrator messages in this chat (display only). Default: System. Leave empty to reset.', true, true);
|
||||||
|
|
||||||
const NARRATOR_NAME_KEY = 'narrator_name';
|
const NARRATOR_NAME_KEY = 'narrator_name';
|
||||||
|
1
public/scripts/toastr.js.map
Normal file
1
public/scripts/toastr.js.map
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user