changeset 49:97b0d206cacd

add chat.json
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 15 Aug 2025 08:43:24 +0900
parents a119fc092f42
children 85c5f62070d8
files src/chat.html.luan src/chat.js src/chat.json.luan
diffstat 3 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
diff -r a119fc092f42 -r 97b0d206cacd src/chat.html.luan
--- a/src/chat.html.luan	Fri Aug 15 08:28:13 2025 +0900
+++ b/src/chat.html.luan	Fri Aug 15 08:43:24 2025 +0900
@@ -51,6 +51,7 @@
 						<span onclick="deleteChat()">Delete Chat</span>
 <%	end %>
 						<span onclick="systemPrompt()">System Prompt</span>
+						<span onclick="chatJson()">Chat JSON</span>
 					</div>
 				</span>
 			</div>
diff -r a119fc092f42 -r 97b0d206cacd src/chat.js
--- a/src/chat.js	Fri Aug 15 08:28:13 2025 +0900
+++ b/src/chat.js	Fri Aug 15 08:43:24 2025 +0900
@@ -148,3 +148,7 @@
 		recorder.stop();
 	}
 }
+
+function chatJson() {
+	location = `chat.json?chat=${chat.id}`;
+}
diff -r a119fc092f42 -r 97b0d206cacd src/chat.json.luan
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/chat.json.luan	Fri Aug 15 08:43:24 2025 +0900
@@ -0,0 +1,17 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local Http = require "luan:http/Http.luan"
+local User = require "site:/lib/User.luan"
+local current_user = User.current or error()
+local Chat = require "site:/lib/Chat.luan"
+local get_chat_by_id = Chat.get_by_id or error()
+
+
+return function()
+	local chat_id = Http.request.parameters.chat or error()
+	local chat = get_chat_by_id(chat_id) or error()
+	local user = current_user()
+	local is_owner = user ~= nil and user.id == chat.user_id
+	is_owner or not chat.is_private or error "private"
+	Http.response.text_writer().write(chat.ai_thread)
+end