Недавно старенькой бабушке, живущей в другом городе, был отдан ноутбук, на нём настроен скайп с автоматическим ответом на входящие звонки, а так же созданы на рабочем столе ярлыки с ссылками вида: skype:username?call&video=true
На каждый ярлык установлены клавиши быстрого вызова F1-F12. Так что бабушке достаточно нажать на нужную клавишу на клавиатуре, согласно пометке, и идёт вызов нужному человеку.
Получается приличная экономия на межгороде. Для интернета используется льготный тариф для пенсионеров.
Теперь решил добавить для неё возможность искать информацию в интернете.
Для начала установил в Chrome расширение tampermonkey.
В нём создал UserScript:
// ==UserScript==
// @name Голосовой поиск
// @namespace http://tampermonkey.net/
// @version 0.1
// @author agran
// @include https://www.google.ru/*
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==
/* jshint -W097 */
'use strict';
var script1 = false;
var intervalvar;
(function (window, undefined) {
if (window.self != window.top) {
return;
}
$( document ).ready(function() {
intervalvar = setInterval(Intervalfun, 300);
});
})(window);
function Intervalfun ()
{
// #spchf - содержит текст распознанный с микрофона
// #spch - панель с приглашением говорить
// #gsri_ok0 - кнопка, нажав на которую включается запись распознавания
// voice - хештег при наличии которого в адресе скрипт срабатывает, что бы не мешать пользоваться google в других ситуациях
if (/voice/.test(window.location.hash) && (($("#spchf").html() == '') && !$("#spch").is(':visible'))) {
$("#gsri_ok0").click();
script1 = true;
}
// $(".r").find("a").attr('href') - ссылка с первым результатом поиска
// script1 - переменная по которой скрипт понимает что это он работает, по хештегу проверить уже нельзя так как по ходу работы Гугла URL меняется.
if (script1 && $("#spchf").html() != '' && $(".r").find("a").attr('href') != '') {
window.open($(".r").find("a").attr('href'), "_self");
clearInterval(intervalvar);
intervalvar = setInterval(Intervalfun, 2000); // Даём время скрипту открыть новую страницу, через две секунды снова попробует если Гугл ещё будет открыт.
}
}
Проверил, что микрофон включается, дал микрофону нужные разрешения.
Создал на рабочем столе файл «voice.bat» с таким содержимым:
taskkill /F /IM chrome.exe /T > nul
start "chrome-voice" "C:Program Files (x86)GoogleChromeApplicationchrome.exe" -start-maximized https://www.google.ru/#voice
Это принудительно закрывает все процессы Хрома и запускает его с развёрнутым на весь экран окном, открывая Гугл с хештегом, активирующим скрипт.
Создал к нему ярлык «Голосовой поиск», в нём поставил Быстрый доступ по клавише Num0.
Из-за принудительного закрытия Chrome выскакивает окошко с предложением восстановить старые вкладки. Что бы оно было менее навязчивым установил chrome://flags/#enable-session-crashed-bubble в Отключено.
Всё, теперь бабушка нажимает на кнопку на клавиатуре и говорит что ей хочется узнать, и на экране отображается первый сайт из поисковой выдачи Гугла.
Автор: agran