-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
198 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
a = 10 + 10 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
from subprocess import Popen , PIPE | ||
import requests | ||
import webbrowser as wb | ||
|
||
|
||
|
||
def execute_return(cmd): | ||
"""This function is used for pre compile the code and take output and error as binary object""" | ||
args = cmd.split() | ||
proc = Popen(args,stdout=PIPE,stderr=PIPE) | ||
out,err = proc.communicate() | ||
return out,err | ||
|
||
|
||
def search_err(error): | ||
"""take the error and search it in api and return JSON object""" | ||
|
||
url = "https://api.stackexchange.com/" + "/2.2/search?page=2&order=desc&sort=activity&tagged=python&intitle={}&site=stackoverflow".format(error) | ||
|
||
resp = requests.get(url) | ||
return resp.json() | ||
|
||
|
||
def get_urls(json_dict): | ||
"""take the json file and spilt the searching link from the json file dictionary""" | ||
url_list = [] | ||
count = 0 | ||
for i in json_dict["items"]: | ||
if i["is_answered"]: | ||
url_list.append(i["link"]) | ||
count += 1 | ||
if count == 3 or count == len(i): | ||
break | ||
|
||
for i in url_list: | ||
wb.open(i) | ||
|
||
|
||
|
||
if __name__ == "__main__": | ||
op,err = execute_return("python code.py") | ||
error_message = err.decode("utf-8").strip().split("\r\n")[-1] | ||
#print(error_message) | ||
if error_message: | ||
filter_err = error_message.split(":") | ||
json1 = search_err(filter_err[0]) | ||
json2 = search_err(filter_err[1]) | ||
json = search_err(error_message) | ||
|
||
get_urls(json1) | ||
get_urls(json2) | ||
get_urls(json) | ||
else: | ||
print("No Error") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
import pyttsx3 #pip install pyttsx3 | ||
import speech_recognition as sr #pip install speechRecognition | ||
import datetime | ||
import wikipedia #pip install wikipedia | ||
import webbrowser | ||
import os | ||
import smtplib | ||
|
||
engine = pyttsx3.init('sapi5') | ||
voices = engine.getProperty('voices') | ||
# print(voices[1].id) | ||
engine.setProperty('voice', voices[0].id) | ||
|
||
|
||
def speak(audio): | ||
engine.say(audio) | ||
engine.runAndWait() | ||
|
||
|
||
def wishMe(): | ||
hour = int(datetime.datetime.now().hour) | ||
if hour>=0 and hour<12: | ||
speak("Good Morning!") | ||
|
||
elif hour>=12 and hour<18: | ||
speak("Good Afternoon!") | ||
|
||
else: | ||
speak("Good Evening!") | ||
|
||
speak("I am Jarvis Sir. Please tell me how may I help you") | ||
|
||
def takeCommand(): | ||
#It takes microphone input from the user and returns string output | ||
|
||
r = sr.Recognizer() | ||
with sr.Microphone() as source: | ||
print("Listening...") | ||
r.pause_threshold = 1 | ||
audio = r.listen(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("Say that again please...") | ||
return "None" | ||
return query | ||
|
||
def sendEmail(to, content): | ||
server = smtplib.SMTP('smtp.gmail.com', 587) | ||
server.ehlo() | ||
server.starttls() | ||
server.login('[email protected]', 'your-password') | ||
server.sendmail('[email protected]', to, content) | ||
server.close() | ||
|
||
if __name__ == "__main__": | ||
wishMe() | ||
while True: | ||
# if 1: | ||
query = takeCommand().lower() | ||
|
||
# Logic for executing tasks based on query | ||
if 'wikipedia' in query: | ||
speak('Searching Wikipedia...') | ||
query = query.replace("wikipedia", "") | ||
results = wikipedia.summary(query, sentences=2) | ||
speak("According to Wikipedia") | ||
print(results) | ||
speak(results) | ||
|
||
elif 'open youtube' in query: | ||
webbrowser.open("youtube.com") | ||
|
||
elif 'open google' in query: | ||
webbrowser.open("google.com") | ||
|
||
elif 'open stackoverflow' in query: | ||
webbrowser.open("stackoverflow.com") | ||
|
||
|
||
elif 'play music' in query: | ||
music_dir = 'D:\\Non Critical\\songs\\Favorite Songs2' | ||
songs = os.listdir(music_dir) | ||
print(songs) | ||
os.startfile(os.path.join(music_dir, songs[0])) | ||
|
||
elif 'the time' in query: | ||
strTime = datetime.datetime.now().strftime("%H:%M:%S") | ||
speak(f"Sir, the time is {strTime}") | ||
|
||
elif 'open code' in query: | ||
codePath = "C:\\Users\\Haris\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe" | ||
os.startfile(codePath) | ||
|
||
elif 'email to harry' in query: | ||
try: | ||
speak("What should I say?") | ||
content = takeCommand() | ||
to = "[email protected]" | ||
sendEmail(to, content) | ||
speak("Email has been sent!") | ||
except Exception as e: | ||
print(e) | ||
speak("Sorry my friend harry bhai. I am not able to send this email") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import smtplib | ||
import config | ||
from email.mime.text import MIMEText | ||
|
||
server = smtplib.SMTP("smtp.gmail.com",587) | ||
|
||
server.starttls() | ||
|
||
EMAIL = config.Email | ||
PASS = config.Pass | ||
Sent = config.Sent_Email | ||
server.login(EMAIL,PASS) | ||
|
||
|
||
message = MIMEText("Sent from py") | ||
message["From"] = EMAIL | ||
message["To"] = Sent | ||
message["Subject"] = "Hello World" | ||
|
||
|
||
server.sendmail(EMAIL,Sent,message.as_string()) | ||
|
||
print("Mail is successfully sent") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Email = "Your email address" | ||
Pass = "your email password" | ||
Sent_Email = "TO email address" |