changeset 36:2737eeedc1d5

autoplay
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 05 Aug 2025 17:24:47 -0600
parents 3117876debca
children d72b1dff01c9
files src/chat.html.luan src/chat.js src/lib/Chat.luan src/save_chat.js.luan
diffstat 4 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/chat.html.luan	Tue Aug 05 16:41:29 2025 -0600
+++ b/src/chat.html.luan	Tue Aug 05 17:24:47 2025 -0600
@@ -90,6 +90,9 @@
 					<select>
 				</p>
 				<p>
+					<label clickable><input type=checkbox name=autoplay>Autoplay</label>
+				</p>
+				<p>
 					<label clickable><input type=checkbox name=show_text>Show text</label>
 				</p>
 				<div buttons>
--- a/src/chat.js	Tue Aug 05 16:41:29 2025 -0600
+++ b/src/chat.js	Tue Aug 05 17:24:47 2025 -0600
@@ -25,6 +25,7 @@
 	dialog.querySelector('select[name=language_region]').value = chat.language_region;
 	dialog.querySelector('select[name=voice]').value = chat.voice;
 	dialog.querySelector('input[name=show_text]').checked = chat.show_text;
+	dialog.querySelector('input[name=autoplay]').checked = chat.autoplay;
 	dialog.showModal();
 }
 
@@ -78,7 +79,8 @@
 	handleChatMarkdown();
 	document.querySelector('textarea').focus();
 	scrollToEnd();
-	playLastMessage();
+	if( chat.autoplay )
+		playLastMessage();
 }
 
 const isMobile = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
--- a/src/lib/Chat.luan	Tue Aug 05 16:41:29 2025 -0600
+++ b/src/lib/Chat.luan	Tue Aug 05 17:24:47 2025 -0600
@@ -32,6 +32,7 @@
 		language_region = doc.language_region
 		voice = doc.voice
 		show_text = doc.show_text == "true"
+		autoplay = doc.autoplay == "true"
 	}
 end
 
@@ -48,6 +49,7 @@
 		language_region = chat.language_region or error()
 		voice = chat.voice or error()
 		show_text = chat.show_text and "true" or "false"
+		autoplay = chat.autoplay and "true" or "false"
 	}
 end
 
@@ -60,6 +62,7 @@
 	chat.language_region = chat.language_region or first_region(chat.language)
 	chat.voice = chat.voice or voices[1].code
 	if chat.show_text==nil then chat.show_text = true end
+	if chat.autoplay==nil then chat.autoplay = true end
 
 	function chat.save()
 		local doc = to_doc(chat)
@@ -82,6 +85,7 @@
 			voice = chat.voice
 			name = chat.name
 			show_text = chat.show_text
+			autoplay = chat.autoplay
 		}
 	end
 
--- a/src/save_chat.js.luan	Tue Aug 05 16:41:29 2025 -0600
+++ b/src/save_chat.js.luan	Tue Aug 05 17:24:47 2025 -0600
@@ -20,6 +20,7 @@
 	local language_region = Http.request.parameters.language_region or error()
 	local voice = Http.request.parameters.voice or error()
 	local show_text = Http.request.parameters.show_text
+	local autoplay = Http.request.parameters.autoplay
 	run_in_transaction( function()
 		chat = get_chat_by_id(chat) or error()
 		chat.user_id == current_user().id or error()
@@ -27,6 +28,7 @@
 		chat.language_region = language_region
 		chat.voice = voice
 		chat.show_text = show_text ~= nil
+		chat.autoplay = autoplay ~= nil
 		chat.save()
 	end )
 	Io.stdout = Http.response.text_writer()