mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Add {{currentSwipeId}} / {{lastSwipeId}} macros
This commit is contained in:
		| @@ -1981,6 +1981,46 @@ function getLastMessage() { | |||||||
|     return ''; |     return ''; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Returns the ID of the last swipe. | ||||||
|  |  * @returns {string} The 1-based ID of the last swipe | ||||||
|  |  */ | ||||||
|  | function getLastSwipeId() { | ||||||
|  |     const index = chat?.length - 1; | ||||||
|  |  | ||||||
|  |     if (!isNaN(index) && index >= 0) { | ||||||
|  |         const swipes = chat[index].swipes; | ||||||
|  |  | ||||||
|  |         if (!Array.isArray(swipes) || swipes.length === 0) { | ||||||
|  |             return ''; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return String(swipes.length); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return ''; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Returns the ID of the current swipe. | ||||||
|  |  * @returns {string} The 1-based ID of the current swipe. | ||||||
|  |  */ | ||||||
|  | function getCurrentSwipeId() { | ||||||
|  |     const index = chat?.length - 1; | ||||||
|  |  | ||||||
|  |     if (!isNaN(index) && index >= 0) { | ||||||
|  |         const swipeId = chat[index].swipe_id; | ||||||
|  |  | ||||||
|  |         if (swipeId === undefined || isNaN(swipeId)) { | ||||||
|  |             return ''; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return String(swipeId + 1); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return ''; | ||||||
|  | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Substitutes {{macro}} parameters in a string. |  * Substitutes {{macro}} parameters in a string. | ||||||
|  * @param {string} content - The string to substitute parameters in. |  * @param {string} content - The string to substitute parameters in. | ||||||
| @@ -2030,6 +2070,8 @@ function substituteParams(content, _name1, _name2, _original, _group, _replaceCh | |||||||
|     content = content.replace(/{{group}}/gi, _group); |     content = content.replace(/{{group}}/gi, _group); | ||||||
|     content = content.replace(/{{lastMessage}}/gi, getLastMessage()); |     content = content.replace(/{{lastMessage}}/gi, getLastMessage()); | ||||||
|     content = content.replace(/{{lastMessageId}}/gi, getLastMessageId()); |     content = content.replace(/{{lastMessageId}}/gi, getLastMessageId()); | ||||||
|  |     content = content.replace(/{{lastSwipeId}}/gi, getLastSwipeId()); | ||||||
|  |     content = content.replace(/{{currentSwipeId}}/gi, getCurrentSwipeId()); | ||||||
|  |  | ||||||
|     content = content.replace(/<USER>/gi, _name1); |     content = content.replace(/<USER>/gi, _name1); | ||||||
|     content = content.replace(/<BOT>/gi, _name2); |     content = content.replace(/<BOT>/gi, _name2); | ||||||
|   | |||||||
| @@ -17,6 +17,8 @@ | |||||||
|     <li><tt>{{char}}</tt> – the Character's name</li> |     <li><tt>{{char}}</tt> – the Character's name</li> | ||||||
|     <li><tt>{{lastMessage}}</tt> - the text of the latest chat message.</li> |     <li><tt>{{lastMessage}}</tt> - the text of the latest chat message.</li> | ||||||
|     <li><tt>{{lastMessageId}}</tt> – index # of the latest chat message. Useful for slash command batching.</li> |     <li><tt>{{lastMessageId}}</tt> – index # of the latest chat message. Useful for slash command batching.</li> | ||||||
|  |     <li><tt>{{currentSwipeId}}</tt> – the 1-based ID of the current swipe in the last chat message. Empty string if the last message is user or prompt-hidden.</li> | ||||||
|  |     <li><tt>{{lastSwipeId}}</tt> – the number of swipes in the last chat message. Empty string if the last message is user or prompt-hidden.</li> | ||||||
|     <li><tt>{{// (note)}}</tt> – you can leave a note here, and the macro will be replaced with blank content. Not visible for the AI.</li> |     <li><tt>{{// (note)}}</tt> – you can leave a note here, and the macro will be replaced with blank content. Not visible for the AI.</li> | ||||||
|     <li><tt>{{time}}</tt> – the current time</li> |     <li><tt>{{time}}</tt> – the current time</li> | ||||||
|     <li><tt>{{date}}</tt> – the current date</li> |     <li><tt>{{date}}</tt> – the current date</li> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user