Add auto-execute on opening chat option to quick
reply settings
This commit is contained in:
parent
f1d375c2ba
commit
bcf73e0e55
|
@ -19,6 +19,10 @@
|
||||||
</div>
|
</div>
|
||||||
<h3><strong>Auto-Execute</strong></h3>
|
<h3><strong>Auto-Execute</strong></h3>
|
||||||
<div class="flex-container flexFlowColumn">
|
<div class="flex-container flexFlowColumn">
|
||||||
|
<label class="checkbox_label" for="quickReply_hidden">
|
||||||
|
<input type="checkbox" id="quickReply_hidden" >
|
||||||
|
<span><i class="fa-solid fa-fw fa-eye-slash"></i> Invisible (auto-execute only)</span>
|
||||||
|
</label>
|
||||||
<label class="checkbox_label" for="quickReply_autoExecute_userMessage">
|
<label class="checkbox_label" for="quickReply_autoExecute_userMessage">
|
||||||
<input type="checkbox" id="quickReply_autoExecute_userMessage" >
|
<input type="checkbox" id="quickReply_autoExecute_userMessage" >
|
||||||
<span><i class="fa-solid fa-fw fa-user"></i> Execute on user message</span>
|
<span><i class="fa-solid fa-fw fa-user"></i> Execute on user message</span>
|
||||||
|
@ -27,9 +31,9 @@
|
||||||
<input type="checkbox" id="quickReply_autoExecute_botMessage" >
|
<input type="checkbox" id="quickReply_autoExecute_botMessage" >
|
||||||
<span><i class="fa-solid fa-fw fa-robot"></i> Execute on AI message</span>
|
<span><i class="fa-solid fa-fw fa-robot"></i> Execute on AI message</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="checkbox_label" for="quickReply_hidden">
|
<label class="checkbox_label" for="quickReply_autoExecute_chatLoad">
|
||||||
<input type="checkbox" id="quickReply_hidden" >
|
<input type="checkbox" id="quickReply_autoExecute_chatLoad" >
|
||||||
<span><i class="fa-solid fa-fw fa-eye-slash"></i> Invisible (auto-execute only)</span>
|
<span><i class="fa-solid fa-fw fa-message"></i> Execute on opening chat</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -154,6 +154,7 @@ async function onQuickReplyCtxButtonClick(id) {
|
||||||
|
|
||||||
$('#quickReply_autoExecute_userMessage').prop('checked', qr.autoExecute_userMessage ?? false);
|
$('#quickReply_autoExecute_userMessage').prop('checked', qr.autoExecute_userMessage ?? false);
|
||||||
$('#quickReply_autoExecute_botMessage').prop('checked', qr.autoExecute_botMessage ?? false);
|
$('#quickReply_autoExecute_botMessage').prop('checked', qr.autoExecute_botMessage ?? false);
|
||||||
|
$('#quickReply_autoExecute_chatLoad').prop('checked', qr.autoExecute_chatLoad ?? false);
|
||||||
$('#quickReply_hidden').prop('checked', qr.hidden ?? false);
|
$('#quickReply_hidden').prop('checked', qr.hidden ?? false);
|
||||||
|
|
||||||
$('#quickReply_hidden').on('input', () => {
|
$('#quickReply_hidden').on('input', () => {
|
||||||
|
@ -174,6 +175,12 @@ async function onQuickReplyCtxButtonClick(id) {
|
||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#quickReply_autoExecute_chatLoad').on('input', () => {
|
||||||
|
const state = !!$('#quickReply_autoExecute_chatLoad').prop('checked');
|
||||||
|
qr.autoExecute_chatLoad = state;
|
||||||
|
saveSettingsDebounced();
|
||||||
|
});
|
||||||
|
|
||||||
if (await popupResult) {
|
if (await popupResult) {
|
||||||
qr.contextMenu = Array.from(document.querySelectorAll('#quickReply_contextMenuEditor_content > .quickReplyContextMenuEditor_item'))
|
qr.contextMenu = Array.from(document.querySelectorAll('#quickReply_contextMenuEditor_content > .quickReplyContextMenuEditor_item'))
|
||||||
.map(item => ({
|
.map(item => ({
|
||||||
|
@ -569,6 +576,11 @@ function saveQROrder() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes quick replies on message received.
|
||||||
|
* @param {number} index New message index
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
async function onMessageReceived(index) {
|
async function onMessageReceived(index) {
|
||||||
if (!extension_settings.quickReply.quickReplyEnabled) return;
|
if (!extension_settings.quickReply.quickReplyEnabled) return;
|
||||||
|
|
||||||
|
@ -583,6 +595,11 @@ async function onMessageReceived(index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes quick replies on message sent.
|
||||||
|
* @param {number} index New message index
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
async function onMessageSent(index) {
|
async function onMessageSent(index) {
|
||||||
if (!extension_settings.quickReply.quickReplyEnabled) return;
|
if (!extension_settings.quickReply.quickReplyEnabled) return;
|
||||||
|
|
||||||
|
@ -597,6 +614,22 @@ async function onMessageSent(index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes quick replies on chat changed.
|
||||||
|
* @param {string} chatId New chat id
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
async function onChatChanged(chatId) {
|
||||||
|
if (!extension_settings.quickReply.quickReplyEnabled) return;
|
||||||
|
|
||||||
|
for (let i = 0; i < extension_settings.quickReply.numberOfSlots; i++) {
|
||||||
|
const qr = extension_settings.quickReply.quickReplySlots[i];
|
||||||
|
if (qr?.autoExecute_chatLoad && chatId) {
|
||||||
|
await sendQuickReply(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
jQuery(async () => {
|
jQuery(async () => {
|
||||||
moduleWorker();
|
moduleWorker();
|
||||||
setInterval(moduleWorker, UPDATE_INTERVAL);
|
setInterval(moduleWorker, UPDATE_INTERVAL);
|
||||||
|
@ -680,6 +713,7 @@ jQuery(async () => {
|
||||||
|
|
||||||
eventSource.on(event_types.MESSAGE_RECEIVED, onMessageReceived);
|
eventSource.on(event_types.MESSAGE_RECEIVED, onMessageReceived);
|
||||||
eventSource.on(event_types.MESSAGE_SENT, onMessageSent);
|
eventSource.on(event_types.MESSAGE_SENT, onMessageSent);
|
||||||
|
eventSource.on(event_types.CHAT_CHANGED, onChatChanged);
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery(() => {
|
jQuery(() => {
|
||||||
|
|
Loading…
Reference in New Issue