-
Notifications
You must be signed in to change notification settings - Fork 0
/
Feegow - Interceptar e Modificar Fala.user.js
82 lines (67 loc) · 4.32 KB
/
Feegow - Interceptar e Modificar Fala.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// ==UserScript==
// @name Interceptar e Modificar Fala (Atualizado com Nomes)
// @namespace http://tampermonkey.net/
// @version 1.6
// @description Modifica a fala quando há referência a "exame 01" ou "dr. está chamando paciente [nome]"
// @match https://core.feegow.com/tvcall/panelV3/vvAM/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
console.log("[Tampermonkey] Iniciando script de interceptação e modificação de fala.");
// Armazena a função original de `speechSynthesis.speak`
const originalSpeak = window.speechSynthesis.speak.bind(window.speechSynthesis);
console.log("[Tampermonkey] Função original 'speechSynthesis.speak' foi salva com sucesso.");
// Sobrescreve a função `speak()`
window.speechSynthesis.speak = function(utterance) {
console.log("[Interceptação] Função 'speak' foi chamada.");
console.log("[Interceptação] Texto original recebido:", utterance.text);
// Exibe propriedades da utterance para análise
console.log("[Interceptação] Propriedades da utterance:");
console.log(" - Texto:", utterance.text);
console.log(" - Idioma:", utterance.lang);
console.log(" - Velocidade (rate):", utterance.rate);
console.log(" - Tom (pitch):", utterance.pitch);
console.log(" - Volume:", utterance.volume);
// Converte o texto para minúsculas para uma busca case-insensitive
const textoOriginal = utterance.text.toLowerCase();
console.log("[Interceptação] Texto convertido para minúsculas:", textoOriginal);
// Verifica as condições
const contemExame01 = textoOriginal.includes("exame 01");
const contemDoutorChamando = textoOriginal.includes("dr. está chamando paciente");
console.log(`[Interceptação] Verificação de 'exame 01': ${contemExame01}`);
console.log(`[Interceptação] Verificação de 'dr. está chamando paciente': ${contemDoutorChamando}`);
// Modifica o texto se contiver tanto "dr. está chamando paciente" quanto "exame 01"
if (contemDoutorChamando && contemExame01) {
console.log("[Interceptação] Condição atendida: Texto contém 'dr. está chamando paciente' e 'exame 01'.");
// Usando expressão regular para capturar a parte com o nome
const regexDoutorChamando = /dr\. está chamando paciente ([a-zA-Z\s]+) para atendimento na sala de exame 01 - matriz/i;
const match = utterance.text.match(regexDoutorChamando);
if (match) {
const nomePaciente = match[1].trim(); // Extrai o nome do paciente
console.log(`[Modificação] Nome encontrado: ${nomePaciente}`);
// Substitui "dr. está chamando paciente" por "Enfermagem está chamando paciente", mantendo o nome
utterance.text = utterance.text.replace(regexDoutorChamando, `Enfermagem está chamando paciente ${nomePaciente} para atendimento na sala de exame 01`);
console.log("[Modificação] Texto alterado para:", utterance.text);
}
} else if (contemExame01) {
console.log("[Interceptação] Condição atendida: Texto contém apenas 'exame 01'.");
utterance.text = "Enfermagem está chamando para atendimento na sala de exame 01";
console.log("[Modificação] Texto alterado para:", utterance.text);
} else {
console.log("[Interceptação] Condição não atendida: Nenhuma modificação feita.");
}
// Tentativa de chamar a função original com o texto (modificado ou não)
try {
console.log("[Tampermonkey] Preparando para chamar a função original 'speechSynthesis.speak'.");
console.log("[Tampermonkey] Texto final para fala:", utterance.text);
originalSpeak(utterance);
console.log("[Tampermonkey] Função 'speak' foi executada com sucesso.");
} catch (error) {
console.error("[Erro] Falha ao executar a função original 'speak':", error);
}
// Log adicional para indicar o fim da execução da função 'speak'
console.log("[Interceptação] Fim da execução da função 'speak'.");
};
console.log("[Tampermonkey] Interceptação e modificação da função 'speak' configurada com sucesso.");
})();