From ac751693b4ea1ade7145013a167c9bd5b59689df Mon Sep 17 00:00:00 2001 From: Lucio Zambon <lucio.zambon@elettra.eu> Date: Tue, 30 Jul 2024 00:08:26 +0000 Subject: [PATCH] Update talk.php --- speech/talk.php | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/speech/talk.php b/speech/talk.php index 716b433..aab1852 100644 --- a/speech/talk.php +++ b/speech/talk.php @@ -108,7 +108,7 @@ CREATE TABLE IF NOT EXISTS ujive ( } if (!empty($_REQUEST['ctree'])) { dbUpsert('ujive', $_REQUEST['token'], $_REQUEST['ctree']); - /* do NOT wait for a response + // wait for a response for ($i=0; $i<50; $i++) { $f = dbRead('ujive', $_REQUEST['token']); if (!empty($f) && $f != $_REQUEST['ctree']) { @@ -120,9 +120,11 @@ CREATE TABLE IF NOT EXISTS ujive ( } dbUpsert('ujive', $_REQUEST['token'], ''); mylog(", R: timeout"); - die("{$_REQUEST['ctree']} not found, timeout"); - */ - die('OK'); + die("{$_REQUEST['ctree']} not responding, timeout"); + // die('OK'); + } + if (isset($_REQUEST['ctreeresult'])) { + dbUpsert('ujive', $_REQUEST['token'], substr($_REQUEST['ctreeresult'], 0, 50)); } if (!empty($_REQUEST['ujive'])) { set_time_limit(0); @@ -288,30 +290,41 @@ CREATE TABLE IF NOT EXISTS ujive ( </head> <body onLoad='myload()' style="background-color: rgb(0, 0, 0, 0);"> <div id='transcriptDiv' style='display:none;'></div> - <div style="max-width: 280px; max-height: 30px; text-align: center;"> + <div style="max-width: 360px; max-height: 30px; text-align: center;"> <audio id='speechText' onended='speakagain();' onerror='showLog("audio err: "+event.error)'></audio> <span style='color: darkgreen; font-weight: bold;' id='title'>Talk to ...</span> <img src='./microphone-na.png' onClick='naClick()' title='not available' id='micna'> - <img src='./microphone-on.png' onClick='stopRec()' id='micstart' style='display: none; padding-right: 60px; max-width: 300px;'> - <img src='./microphone-off.png' onClick='startRec()' id='micstop' style='display: none; padding-right: 60px;'> + <img src='./microphone-on.png' onClick='stopRec()' id='micstart' style='display: none; padding-right: 40px; max-width: 270px;'> + <img src='./microphone-off.png' onClick='startRec()' id='micstop' style='display: none; padding-right: 40px;'> <div style='cursor: pointer;padding-right: 5px; text-align: right; margin-top: -1.3em;' id='langselect'> <img style="max-height: 18px; margin-right: 10px;" src='./it-IT.png' onClick="switchLocale('it')"> <img style="max-height: 18px; margin-right: 10px;" src='./en-US.png' onClick="switchLocale('en')"> <span style='color: darkgreen; font-weight: bold;' onClick='commandlistinfo()'> ? </span> </div> <div style='padding-left: 5px; text-align: left; margin-top: -1.3em;' id='operation'> - <img style="margin-right: 10px;" id='open' src='./open.png'> - <img style="margin-right: 10px;" id='search' src='./search.png'> + <img style="margin-right: 10px;" id='open' src='./open.png' title='open panel'> + <img style="margin-right: 10px;" id='search' src='./search.png' title='search'> + <img style="margin-right: 10px;" id='tree' src='./tree.png' title='uJive'> + <img style="margin-right: 10px; display: none;" id='chart' src='./chart.png' title='chart'> </div> <span style='color: darkblue; font-weight: bold;' id='miclabel'>comandi vocali </span> <table id ='openTable' class="table table-hover"></table> + <span id='ctree'></span> <pre id='log'></pre> <script> + function inIframe() { + try { + return window.self !== window.top; + } catch (e) { + return true; + } + } // showLog('webkitSpeechRecognition: '+ typeof window.webkitSpeechRecognition); // showLog('SpeechRecognition: '+ typeof window.SpeechRecognition); window.SpeechRecognition = window.webkitSpeechRecognition || window.SpeechRecognition; - if (typeof window.SpeechRecognition == 'undefined' && document.location.search.indexOf('?d=')==-1) { + // if (typeof window.SpeechRecognition == 'undefined' && document.location.search.indexOf('?d=')==-1) { + if (inIframe()) { let tok = document.location.search.indexOf('token=')==-1? Math.round(Math.random()*1000000000000+1): document.location.search.split('token=')[1].split('&')[0]; if (isNaN(tok) || tok<1000000000) tok = Math.round(Math.random()*1000000000000+1); console.log('./qr.php?data='+tok+'&host=<?php echo $host;?>'); -- GitLab