您需要先安装一个扩展,例如 篡改猴、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();