import subprocess
import wolframalpha
import pyttsx3
import tkinter
import json
import random
import operator
import speech_recognition as sr
import datetime
import wikipedia
import webbrowser
import os
import winshell
import pyjokes
import feedparser
import smtplib
import ctypes
import time
import requests
import shutil
from [Link] import Client
from [Link] import progress
from ecapture import ecapture as ec
from bs4 import BeautifulSoup
import [Link] as wincl
from [Link] import urlopen
engine = [Link]('sapi5')
voices = [Link]('voices')
[Link]('voice', voices[1].id)
def speak(audio):
[Link](audio)
[Link]()
def wishMe():
hour = int([Link]().hour)
if hour>= 0 and hour<12:
speak("Good Morning Sir !")
elif hour>= 12 and hour<18:
speak("Good Afternoon Sir !")
else:
speak("Good Evening Sir !")
assname =("Jarvis 1 point o")
speak("I am your Assistant")
speak(assname)
def usrname():
speak("What should i call you sir")
uname = takeCommand()
speak("Welcome Mister")
speak(uname)
columns = shutil.get_terminal_size().columns
print("#####################".center(columns))
print("Welcome Mr.", [Link](columns))
print("#####################".center(columns))
speak("How can i Help you, Sir")
def takeCommand():
r = [Link]()
with [Link]() as source:
print("Listening...")
r.pause_threshold = 1
audio = [Link](source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language ='en-in')
print(f"User said: {query}\n")
except Exception as e:
print(e)
print("Unable to Recognizing your voice.")
return "None"
return query
def sendEmail(to, content):
server = [Link]('[Link]', 587)
[Link]()
[Link]()
# Enable low security in gmail
[Link]('your email id', 'your email passowrd')
[Link]('your email id', to, content)
[Link]()
if __name__ == '__main__':
clear = lambda: [Link]('cls')
# This Function will clean any
# command before execution of this python file
clear()
wishMe()
usrname()
while True:
query = takeCommand().lower()
# All the commands said by user will be
# stored here in 'query' and will be
# converted to lower case for easily
# recognition of command
if 'wikipedia' in query:
speak('Searching Wikipedia...')
query = [Link]("wikipedia", "")
results = [Link](query, sentences = 3)
speak("According to Wikipedia")
print(results)
speak(results)
elif 'open youtube' in query:
speak("Here you go to Youtube\n")
[Link]("[Link]")
elif 'open google' in query:
speak("Here you go to Google\n")
[Link]("[Link]")
elif 'open stackoverflow' in query:
speak("Here you go to Stack Over [Link] coding")
[Link]("[Link]")
elif 'play music' in query or "play song" in query:
speak("Here you go with music")
# music_dir = "G:\\Song"
music_dir = "C:\\Users\\GAURAV\\Music"
songs = [Link](music_dir)
print(songs)
random = [Link]([Link](music_dir, songs[1]))
elif 'the time' in query:
strTime = [Link]().strftime("% H:% M:% S")
speak(f"Sir, the time is {strTime}")
elif 'open opera' in query:
codePath =
r"C:\\Users\\GAURAV\\AppData\\Local\\Programs\\Opera\\[Link]"
[Link](codePath)
elif 'email to gaurav' in query:
try:
speak("What should I say?")
content = takeCommand()
to = "Receiver email address"
sendEmail(to, content)
speak("Email has been sent !")
except Exception as e:
print(e)
speak("I am not able to send this email")
elif 'send a mail' in query:
try:
speak("What should I say?")
content = takeCommand()
speak("whome should i send")
to = input()
sendEmail(to, content)
speak("Email has been sent !")
except Exception as e:
print(e)
speak("I am not able to send this email")
elif 'how are you' in query:
speak("I am fine, Thank you")
speak("How are you, Sir")
elif 'fine' in query or "good" in query:
speak("It's good to know that your fine")
elif "change my name to" in query:
query = [Link]("change my name to", "")
assname = query
elif "change name" in query:
speak("What would you like to call me, Sir ")
assname = takeCommand()
speak("Thanks for naming me")
elif "what's your name" in query or "What is your name" in query:
speak("My friends call me")
speak(assname)
print("My friends call me", assname)
elif 'exit' in query:
speak("Thanks for giving me your time")
exit()
elif "who made you" in query or "who created you" in query:
speak("I have been created by Gaurav.")
elif 'joke' in query:
speak(pyjokes.get_joke())
elif "calculate" in query:
app_id = "Wolframalpha api id"
client = [Link](app_id)
indx = [Link]().split().index('calculate')
query = [Link]()[indx + 1:]
res = [Link](' '.join(query))
answer = next([Link]).text
print("The answer is " + answer)
speak("The answer is " + answer)
elif 'search' in query or 'play' in query:
query = [Link]("search", "")
query = [Link]("play", "")
[Link](query)
elif "who i am" in query:
speak("If you talk then definately your human.")
elif "why you came to world" in query:
speak("Thanks to Gaurav. further It's a secret")
elif 'power point presentation' in query:
speak("opening Power Point presentation")
power = r"C:\\Users\\GAURAV\\Desktop\\Minor
Project\\Presentation\\Voice [Link]"
[Link](power)
elif 'is love' in query:
speak("It is 7th sense that destroy all other senses")
elif "who are you" in query:
speak("I am your virtual assistant created by Gaurav")
elif 'reason for you' in query:
speak("I was created as a Minor project by Mister Gaurav ")
elif 'change background' in query:
[Link](20,
0,
"Locat
ion of wallpaper",
0)
speak("Background changed succesfully")
elif 'open bluestack' in query:
appli = r"C:\\ProgramData\\BlueStacks\\Client\\[Link]"
[Link](appli)
elif 'news' in query:
try:
jsonObj = urlopen('''[Link] / v1 / articles?
source = the-times-of-india&sortBy = top&apiKey =\\times of India Api key\\''')
data = [Link](jsonObj)
i = 1
speak('here are some top news from the times of india')
print('''=============== TIMES OF INDIA ============'''+
'\n')
for item in data['articles']:
print(str(i) + '. ' + item['title'] + '\n')
print(item['description'] + '\n')
speak(str(i) + '. ' + item['title'] + '\n')
i += 1
except Exception as e:
print(str(e))
elif 'lock window' in query:
speak("locking the device")
[Link]()
elif 'shutdown system' in query:
speak("Hold On a Sec ! Your system is on its way to shut
down")
[Link]('shutdown / p /f')
elif 'empty recycle bin' in query:
winshell.recycle_bin().empty(confirm = False, show_progress =
False, sound = True)
speak("Recycle Bin Recycled")
elif "don't listen" in query or "stop listening" in query:
speak("for how much time you want to stop jarvis from listening
commands")
a = int(takeCommand())
[Link](a)
print(a)
elif "where is" in query:
query = [Link]("where is", "")
location = query
speak("User asked to Locate")
speak(location)
[Link]("[Link] / maps / place/" +
location + "")
elif "camera" in query or "take a photo" in query:
[Link](0, "Jarvis Camera ", "[Link]")
elif "restart" in query:
[Link](["shutdown", "/r"])
elif "hibernate" in query or "sleep" in query:
speak("Hibernating")
[Link]("shutdown / h")
elif "log off" in query or "sign out" in query:
speak("Make sure all the application are closed before sign-out")
[Link](5)
[Link](["shutdown", "/l"])
elif "write a note" in query:
speak("What should i write, sir")
note = takeCommand()
file = open('[Link]', 'w')
speak("Sir, Should i include date and time")
snfm = takeCommand()
if 'yes' in snfm or 'sure' in snfm:
strTime = [Link]().strftime("% H:% M:% S")
[Link](strTime)
[Link](" :- ")
[Link](note)
else:
[Link](note)
elif "show note" in query:
speak("Showing Notes")
file = open("[Link]", "r")
print([Link]())
speak([Link](6))
elif "update assistant" in query:
speak("After downloading file please replace this file with the
downloaded one")
url = '# url after uploading file'
r = [Link](url, stream = True)
with open("[Link]", "wb") as Pypdf:
total_length = int([Link]('content-length'))
for ch in [Link](r.iter_content(chunk_size =
2391975),
expected_size
=(total_length / 1024) + 1):
if ch:
[Link](ch)
# NPPR9-FWDCX-D2C8J-H872K-2YT43
elif "jarvis" in query:
wishMe()
speak("Jarvis 1 point o in your service Mister")
speak(assname)
elif "weather" in query:
# Google Open weather website
# to get API of Open weather
api_key = "Api key"
base_url = "[Link] / data / 2.5 /
weather?"
speak(" City name ")
print("City name : ")
city_name = takeCommand()
complete_url = base_url + "appid =" + api_key + "&q =" +
city_name
response = [Link](complete_url)
x = [Link]()
if x["cod"] != "404":
y = x["main"]
current_temperature = y["temp"]
current_pressure = y["pressure"]
current_humidiy = y["humidity"]
z = x["weather"]
weather_description = z[0]["description"]
print(" Temperature (in kelvin unit) = "
+str(current_temperature)+"\n atmospheric pressure (in hPa unit)
="+str(current_pressure) +"\n humidity (in percentage) = " +str(current_humidiy)
+"\n description = " +str(weather_description))
else:
speak(" City Not Found ")
elif "send message " in query:
# You need to create an account on Twilio to use this
service
account_sid = 'Account Sid key'
auth_token = 'Auth token'
client = Client(account_sid, auth_token)
message = [Link] \
.create(
body = takeCommand(),
from_='Sender No',
to ='Receiver No'
)
print([Link])
elif "wikipedia" in query:
[Link]("[Link]")
elif "Good Morning" in query:
speak("A warm" +query)
speak("How are you Mister")
speak(assname)
# most asked question from google Assistant
elif "will you be my gf" in query or "will you be my bf" in query:
speak("I'm not sure about, may be you should give me some time")
elif "how are you" in query:
speak("I'm fine, glad you me that")
elif "i love you" in query:
speak("It's hard to understand")
elif "what is" in query or "who is" in query:
# Use the same API key
# that we have generated earlier
client = [Link]("API_ID")
res = [Link](query)
try:
print (next([Link]).text)
speak (next([Link]).text)
except StopIteration:
print ("No results")
# elif "" in query:
# Command go here
# For adding more commands