-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
129 lines (116 loc) · 3.74 KB
/
app.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/**
* JARVIS - Just A Rather Very Intelligent System
* Author: JS Guru (@js.guru_)
*/
const btn = document.querySelector(".input");
const content = document.querySelector(".content");
function speak(text) {
const text_speak = new SpeechSynthesisUtterance(text);
text_speak.rate = 1;
text_speak.volume = 1;
text_speak.pitch = 1;
console.debug("Speak: ", text);
if (window.speechSynthesis) {
window.speechSynthesis.speak(text_speak);
}
// for edge
else if (window.msSpeechSynthesis) {
window.msSpeechSynthesis.speak(text_speak);
}
}
function wishMe() {
var day = new Date();
var hour = day.getHours();
if (hour >= 0 && hour < 12) {
speak("Good Morning Boss...");
} else if (hour >= 12 && hour < 17) {
speak("Good Afternoon Master...");
} else {
speak("Good Evening Sir...");
}
}
function aboutMe() {
const text = `Hello, I am JARVIS, Just A Rather Very Intelligent System created by JS Guru. I am here to assist you with your tasks. You can ask me to open websites, search for information, and much more. Just say "Hey" or "Hello" to get started.`;
speak(text);
}
window.addEventListener("load", () => {
speak("Initializing JARVIS...");
wishMe();
aboutMe()
});
const SpeechRecognition =
window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.onresult = (event) => {
console.debug("Output: ", event.results);
const currentIndex = event.resultIndex;
const transcript = event.results[currentIndex][0].transcript;
content.textContent = transcript;
takeCommand(transcript.toLowerCase());
};
btn.addEventListener("click", () => {
content.textContent = "Listening...";
recognition.start();
});
function takeCommand(message) {
message = message.toLowerCase();
console.debug("Input: ", message);
if (message.includes("hey") || message.includes("hello") || message.includes("how are")) {
speak("Hello Sir, How May I Help You?");
} else if (message.includes("open google")) {
window.open("https://google.com", "_blank");
speak("Opening Google...");
} else if (message.includes("open youtube")) {
window.open("https://youtube.com", "_blank");
speak("Opening Youtube...");
} else if (message.includes("open facebook")) {
window.open("https://facebook.com", "_blank");
speak("Opening Facebook...");
} else if (
message.includes("what is") ||
message.includes("who is") ||
message.includes("what are")
) {
window.open(
`https://www.google.com/search?q=${message.replace(" ", "+")}`,
"_blank"
);
const finalText =
"This is what I found on the internet regarding " + message;
speak(finalText);
} else if (message.includes("wikipedia")) {
window.open(
`https://en.wikipedia.org/wiki/${message
.replace("wikipedia", "")
.trim()}`,
"_blank"
);
const finalText = "This is what I found on Wikipedia regarding " + message;
speak(finalText);
} else if (message.includes("time")) {
const time = new Date().toLocaleString(undefined, {
hour: "numeric",
minute: "numeric",
});
const finalText = "The current time is " + time;
speak(finalText);
} else if (message.includes("date")) {
const date = new Date().toLocaleString(undefined, {
month: "short",
day: "numeric",
});
const finalText = "Today's date is " + date;
speak(finalText);
} else if (message.includes("calculator")) {
window.open("Calculator:///");
const finalText = "Opening Calculator";
speak(finalText);
} else {
window.open(
`https://www.google.com/search?q=${message.replace(" ", "+")}`,
"_blank"
);
const finalText = "I found some information for " + message + " on Google";
speak(finalText);
}
}