mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Extract API endpoints for quick replies
This commit is contained in:
		| @@ -177,7 +177,7 @@ export class QuickReplySet { | |||||||
|  |  | ||||||
|  |  | ||||||
|     async performSave() { |     async performSave() { | ||||||
|         const response = await fetch('/savequickreply', { |         const response = await fetch('/api/quick-replies/save', { | ||||||
|             method: 'POST', |             method: 'POST', | ||||||
|             headers: getRequestHeaders(), |             headers: getRequestHeaders(), | ||||||
|             body: JSON.stringify(this), |             body: JSON.stringify(this), | ||||||
| @@ -191,7 +191,7 @@ export class QuickReplySet { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     async delete() { |     async delete() { | ||||||
|         const response = await fetch('/deletequickreply', { |         const response = await fetch('/api/quick-replies/delete', { | ||||||
|             method: 'POST', |             method: 'POST', | ||||||
|             headers: getRequestHeaders(), |             headers: getRequestHeaders(), | ||||||
|             body: JSON.stringify(this), |             body: JSON.stringify(this), | ||||||
|   | |||||||
							
								
								
									
										33
									
								
								server.js
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								server.js
									
									
									
									
									
								
							| @@ -244,32 +244,6 @@ app.post('/savemovingui', jsonParser, (request, response) => { | |||||||
|     return response.sendStatus(200); |     return response.sendStatus(200); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| app.post('/savequickreply', jsonParser, (request, response) => { |  | ||||||
|     if (!request.body || !request.body.name) { |  | ||||||
|         return response.sendStatus(400); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json'); |  | ||||||
|     writeFileAtomicSync(filename, JSON.stringify(request.body, null, 4), 'utf8'); |  | ||||||
|  |  | ||||||
|     return response.sendStatus(200); |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| app.post('/deletequickreply', jsonParser, (request, response) => { |  | ||||||
|     if (!request.body || !request.body.name) { |  | ||||||
|         return response.sendStatus(400); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json'); |  | ||||||
|     if (fs.existsSync(filename)) { |  | ||||||
|         fs.unlinkSync(filename); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return response.sendStatus(200); |  | ||||||
| }); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Ensure the directory for the provided file path exists. |  * Ensure the directory for the provided file path exists. | ||||||
|  * If not, it will recursively create the directory. |  * If not, it will recursively create the directory. | ||||||
| @@ -444,6 +418,13 @@ redirect('/getuseravatars', '/api/avatars/get'); | |||||||
| redirect('/deleteuseravatar', '/api/avatars/delete'); | redirect('/deleteuseravatar', '/api/avatars/delete'); | ||||||
| redirect('/uploaduseravatar', '/api/avatars/upload'); | redirect('/uploaduseravatar', '/api/avatars/upload'); | ||||||
|  |  | ||||||
|  | // Redirect deprecated quick reply endpoints | ||||||
|  | redirect('/deletequickreply', '/api/quick-replies/delete'); | ||||||
|  | redirect('/savequickreply', '/api/quick-replies/save'); | ||||||
|  |  | ||||||
|  | // Quick reply management | ||||||
|  | app.use('/api/quick-replies', require('./src/endpoints/quick-replies').router); | ||||||
|  |  | ||||||
| // Avatar management | // Avatar management | ||||||
| app.use('/api/avatars', require('./src/endpoints/avatars').router); | app.use('/api/avatars', require('./src/endpoints/avatars').router); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								src/endpoints/quick-replies.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/endpoints/quick-replies.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | const fs = require('fs'); | ||||||
|  | const path = require('path'); | ||||||
|  | const express = require('express'); | ||||||
|  | const sanitize = require('sanitize-filename'); | ||||||
|  | const writeFileAtomicSync = require('write-file-atomic').sync; | ||||||
|  |  | ||||||
|  | const { jsonParser } = require('../express-common'); | ||||||
|  | const { DIRECTORIES } = require('../constants'); | ||||||
|  |  | ||||||
|  | const router = express.Router(); | ||||||
|  |  | ||||||
|  | router.post('/save', jsonParser, (request, response) => { | ||||||
|  |     if (!request.body || !request.body.name) { | ||||||
|  |         return response.sendStatus(400); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json'); | ||||||
|  |     writeFileAtomicSync(filename, JSON.stringify(request.body, null, 4), 'utf8'); | ||||||
|  |  | ||||||
|  |     return response.sendStatus(200); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | router.post('/delete', jsonParser, (request, response) => { | ||||||
|  |     if (!request.body || !request.body.name) { | ||||||
|  |         return response.sendStatus(400); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     const filename = path.join(DIRECTORIES.quickreplies, sanitize(request.body.name) + '.json'); | ||||||
|  |     if (fs.existsSync(filename)) { | ||||||
|  |         fs.unlinkSync(filename); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return response.sendStatus(200); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | module.exports = { router }; | ||||||
		Reference in New Issue
	
	Block a user