您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Play TTS
当前为
// ==UserScript== // @name WME TTS test // @description Play TTS // @version 0.1 // @author Vinkoy // @include https://www.waze.com/editor/* // @include https://www.waze.com/*/editor/* // @include https://editor-beta.waze.com/editor/* // @include https://editor-beta.waze.com/*/editor/* // @namespace https://greasyfork.org/en/scripts/23202-wme-tts-test // @grant none // ==/UserScript== function TTStest_bootstrap() { Waze.selectionManager.events.register("selectionchanged", null, addBtns); } function addBtns() { if(!document.getElementById("WME-test-tts")) { var btnSection = document.createElement('div'); btnSection.id = "WME-test-tts"; var userTabs = document.getElementById('edit-panel'); var navTabs = getElementsByClassName('nav-tabs', userTabs)[0]; if (typeof navTabs !== "undefined") { var tabContent = getElementsByClassName('tab-content', userTabs)[0]; if (typeof tabContent !== "undefined") { newtab = document.createElement('li'); newtab.innerHTML = '<a href="#WME-test-tts" id="wmettstest" data-toggle="tab">TTS</a>'; navTabs.appendChild(newtab); var class_style_turn = 'class="btn btn-default" style="font-size:18px; width:40px; padding:0px; background-color: #4CC600;" '; var class_style_keep = 'class="btn btn-default" style="font-size:18px; width:40px; padding:0px; background-color: #CBFF84;" '; var class_style_exit = 'class="btn btn-default" style="font-size:18px; width:40px; padding:0px; background-color: #6CB5FF;" '; var class_style_roundabout = 'class="btn btn-default" style="font-size:24px; width:40px; padding:0px;" '; btnSection.innerHTML = /*'<hr>'+*/ '<div class="form-group">'+ '<div class="controls-container">' + '<label class="control-label">Поверните...</label>' + '<button id="wmettsTL" '+class_style_turn+' title="Поверните налево">←</button> ' + '<button id="wmettsTR" '+class_style_turn+' title="Поверните направо">→</button> ' + '</br></br>' + '<label class="control-label">Держитесь...</label>' + '<button id="wmettsKL" '+class_style_keep+' title="Держитесь левее">↖</button> ' + '<button id="wmettsKR" '+class_style_keep+' title="Держитесь правее">↗</button> ' + '</br></br>' + '<label class="control-label">Съезд...</label>' + '<button id="wmettsEL" '+class_style_exit+' title="Съезд слева на">↖</button> ' + '<button id="wmettsER" '+class_style_exit+' title="Съезд справа на">↗</button> ' + '</br></br>' + '<label class="control-label">Съезд на кольце...</label>' + '<button id="wmettsRND" '+class_style_roundabout+' title="На кольце первый съезд на">☼</button> ' + '</div></div>'; btnSection.className = "tab-pane"; tabContent.appendChild(btnSection); } else btnSection.id=''; } else btnSection.id=''; } document.getElementById('wmettsTL').onclick = playTTS; document.getElementById('wmettsTR').onclick = playTTS; document.getElementById('wmettsKL').onclick = playTTS; document.getElementById('wmettsKR').onclick = playTTS; document.getElementById('wmettsEL').onclick = playTTS; document.getElementById('wmettsER').onclick = playTTS; document.getElementById('wmettsRND').onclick = playTTS; } function playTTS() { if (Waze.selectionManager.selectedItems.length != 1) { alert('Выберите только один сегмент'); return; } var street = Waze.model.streets.get(Waze.selectionManager.selectedItems[0].model.attributes.primaryStreetID); if (typeof street !== "undefined") { streetname=street.name; if (street.name === null) { alert('Безымянный сегмент'); return; } } else { console.log('WME_TTS undefined street'); return; } var preText = ''; switch (this.id) { case 'wmettsTL': preText = 'Поверните налево на '; break; case 'wmettsTR': preText = 'Поверните направо на '; break; case 'wmettsKL': preText = 'Держитесь левее на '; break; case 'wmettsKR': preText = 'Держитесь правее на '; break; case 'wmettsEL': preText = 'Съезд слева на '; break; case 'wmettsER': preText = 'Съезд справа на '; break; case 'wmettsRND': preText = 'На кольце первый съезд на '; break; default: alert("Unknown error"); } if (preText !== '') { new Audio('https://ttsgw.world.waze.com/TTSGateway/Text2SpeechServlet?text='+preText+street.name+'&lang=ru-RU&lon=0&lat=0&version=6&protocol=2&sessionid=12345654321&content_type=audio%2Fmpeg&type=street&validate_data=positive&skipCache=true').play(); } } function getElementsByClassName(classname, node) { if(!node) node = document.getElementsByTagName("body")[0]; var a = []; var re = new RegExp('\\b' + classname + '\\b'); var els = node.getElementsByTagName("*"); for (var i=0,j=els.length; i<j; i++) if (re.test(els[i].className)) a.push(els[i]); return a; } TTStest_bootstrap();