Jarvis Part 3 : Source Code
1. News Function : It will help you to get the top headlines in your chosen field
IMP : - Here first go to newsapi.org and make an account on it then get your own api key and paste in instead
Or watch my video if you are unable to get an api key..
elif "news" in query:
from NewsRead import latestnews
latestnews()
Now make a new file & name it "NewsRead.py" and write the following code in it :-
import requests
import json
import pyttsx3
engine = pyttsx3.init("sapi5")
voices = engine.getProperty("voices")
engine.setProperty("voice", voices[0].id)
rate = engine.setProperty("rate",170)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def latestnews():
api_dict = {"business" : "https://newsapi.org/v2/top-headlines?country=in&category=business&apiKey=#here paste your api key",
"entertainment" : "https://newsapi.org/v2/top-headlines?country=in&category=entertainment&apiKey=#here paste your api key",
"health" : "https://newsapi.org/v2/top-headlines?country=in&category=health&apiKey=#here paste your api key",
"science" :"https://newsapi.org/v2/top-headlines?country=in&category=science&apiKey=#here paste your api key",
"sports" :"https://newsapi.org/v2/top-headlines?country=in&category=sports&apiKey=#here paste your api key",
"technology" :"https://newsapi.org/v2/top-headlines?country=in&category=technology&apiKey=#here paste your api key"
}
content = None
url = None
speak("Which field news do you want, [business] , [health] , [technology], [sports] , [entertainment] , [science]")
field = input("Type field news that you want: ")
for key ,value in api_dict.items():
if key.lower() in field.lower():
url = value
print(url)
print("url was found")
break
else:
url = True
if url is True:
print("url not found")
news = requests.get(url).text
news = json.loads(news)
speak("Here is the first news.")
arts = news["articles"]
for articles in arts :
article = articles["title"]
print(article)
speak(article)
news_url = articles["url"]
print(f"for more info visit: {news_url}")
a = input("[press 1 to cont] and [press 2 to stop]")
if str(a) == "1":
pass
elif str(a) == "2":
break
speak("thats all")
2. Calculator
IMP : - Here first go to "https://www.wolframalpha.com/" and make an account on it then get your own api key and paste in instead
Or watch my video if you are unable to get an api key..
elif "calculate" in query:
from Calculatenumbers import WolfRamAlpha
from Calculatenumbers import Calc
query = query.replace("calculate","")
query = query.replace("jarvis","")
Calc(query)
Now make a new file & name it "Calculatenumbers.py" and write the following code in it :-
import wolframalpha
import pyttsx3
import speech_recognition
engine = pyttsx3.init("sapi5")
voices = engine.getProperty("voices")
engine.setProperty("voice", voices[0].id)
rate = engine.setProperty("rate",170)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def WolfRamAlpha(query):
apikey = "#paste your api key"
requester = wolframalpha.Client(apikey)
requested = requester.query(query)
try:
answer = next(requested.results).text
return answer
except:
speak("The value is not answerable")
def Calc(query):
Term = str(query)
Term = Term.replace("jarvis","")
Term = Term.replace("multiply","*")
Term = Term.replace("plus","+")
Term = Term.replace("minus","-")
Term = Term.replace("divide","/")
Final = str(Term)
try:
result = WolfRamAlpha(Final)
print(f"{result}")
speak(result)
except:
speak("The value is not answerable")
3.Whatsapp automation
elif "whatsapp" in query:
from Whatsapp import sendMessage
sendMessage()
Now make a new file & name it "Whatsapp.py" and write the following code in it :-
import pywhatkit
import pyttsx3
import datetime
import speech_recognition
import webbrowser
from bs4 import BeautifulSoup
from time import sleep
import os
from datetime import timedelta
from datetime import datetime
engine = pyttsx3.init("sapi5")
voices = engine.getProperty("voices")
engine.setProperty("voice", voices[0].id)
rate = engine.setProperty("rate",170)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def takeCommand():
r = speech_recognition.Recognizer()
with speech_recognition.Microphone() as source:
print("Listening.....")
r.pause_threshold = 1
r.energy_threshold = 300
audio = r.listen(source,0,4)
try:
print("Understanding..")
query = r.recognize_google(audio,language='en-in')
print(f"You Said: {query}\n")
except Exception as e:
print("Say that again")
return "None"
return query
strTime = int(datetime.now().strftime("%H"))
update = int((datetime.now()+timedelta(minutes = 2)).strftime("%M"))
def sendMessage():
speak("Who do you wan to message")
a = int(input('''Person 1 - 1
Person 2 - 2'''))
if a == 1:
speak("Whats the message")
message = str(input("Enter the message- "))
pywhatkit.sendwhatmsg("+91000000000",message,time_hour=strTime,time_min=update)
elif a==2:
pass
4. Shutdown system with your voice
elif "shutdown the system" in query:
speak("Are You sure you want to shutdown")
shutdown = input("Do you wish to shutdown your computer? (yes/no)")
if shutdown == "yes":
os.system("shutdown /s /t 1")
elif shutdown == "no":
break
Hope you like the jarvis series...
Thank you !!!
bhai claculator k if condition me kya lekhna
ReplyDeleteelif "calculate" in query:
Deletefrom Calculatenumbers import WolfRamAlpha
from Calculatenumbers import Calc
query = query.replace("calculate","")
query = query.replace("jarvis","")
Calc(query)