Merge pull request #21 from cclauss/patch-1

GitHub Action to lint Python code
This commit is contained in:
Technerd Brainiac 2021-10-06 22:00:00 +05:30 committed by GitHub
commit 011c1b1448
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 157 additions and 116 deletions

23
.github/workflows/lint_python.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: lint_python
on: [pull_request, push]
jobs:
lint_python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- run: pip install --upgrade pip wheel
- run: pip install bandit black codespell flake8 flake8-bugbear
flake8-comprehensions isort mypy pytest pyupgrade safety
- run: bandit --recursive --skip B311,B605 .
- run: black --check . || true
- run: codespell
- run: flake8 . --count --max-complexity=19 --max-line-length=88 --show-source --statistics
- run: isort --check-only --profile black .
- run: pip install -r requirements.txt || pip install --editable . || true
- run: mkdir --parents --verbose .mypy_cache
- run: mypy --ignore-missing-imports --install-types --non-interactive .
- run: pytest . || true
- run: pytest --doctest-modules . || true
- run: shopt -s globstar && pyupgrade --py36-plus **/*.py
- run: safety check

View File

@ -1,39 +1,45 @@
import pyttsx3
import speech_recognition as sr
import datetime
import wikipedia
import webbrowser
import os
import random
import smtplib
import sys
import random
import webbrowser
import pyttsx3
import speech_recognition as sr
import wikipedia
print("Initializing Jarvis....")
MASTER = "Harsha"
engine = pyttsx3.init('nsss')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
popular_websites = {'google': 'https://www.google.com',
'youtube': 'https://www.youtube.com',
'wikipedia': 'https://www.wikipedia.org',
'amazon': 'https://www.amazon.com'}
search_engines = {'google': 'https://www.google.com',
'youtube': 'https://www.youtube.com',
'bing': 'https://www.bing.com'}
engine = pyttsx3.init("nsss")
voices = engine.getProperty("voices")
engine.setProperty("voice", voices[0].id)
popular_websites = {
"google": "https://www.google.com",
"youtube": "https://www.youtube.com",
"wikipedia": "https://www.wikipedia.org",
"amazon": "https://www.amazon.com",
}
search_engines = {
"google": "https://www.google.com",
"youtube": "https://www.youtube.com",
"bing": "https://www.bing.com",
}
def open_url(url):
webbrowser.open(url)
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'
chrome_path = r"open -a /Applications/Google\ Chrome.app %s"
webbrowser.get(chrome_path).open(url)
def search(search_query, search_engine):
try:
open_url(f'{search_engines[search_engine]}/search?q={search_query}')
open_url(f"{search_engines[search_engine]}/search?q={search_query}")
except IndexError:
open_url(f'https://www.google.com/search?q={search_query}')
open_url(f"https://www.google.com/search?q={search_query}")
def speak(text):
@ -58,6 +64,7 @@ def wishMe():
# This is where our programme begins....
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
@ -68,7 +75,7 @@ def takeCommand():
query = " "
try:
print("Recognizing....")
query = r.recognize_google(audio, language='en-in')
query = r.recognize_google(audio, language="en-in")
print("user said: " + query)
except sr.UnknownValueError:
@ -87,70 +94,72 @@ wishMe()
query = takeCommand()
# logic for executing basic tasks
if 'wikipedia' in query.lower():
speak('Searching wikipedia....')
if "wikipedia" in query.lower():
speak("Searching wikipedia....")
query = query.replace("wikipedia", "")
results = wikipedia.summary(query, sentences=2)
print(results)
speak(results)
elif "what\'s up" in query or 'how are you' in query:
stMsgs = ['Just doing my thing!', 'I am fine!',
'Nice!', 'I am nice and full of energy']
elif "what's up" in query or "how are you" in query:
stMsgs = [
"Just doing my thing!",
"I am fine!",
"Nice!",
"I am nice and full of energy",
]
speak(random.choice(stMsgs))
elif 'open' in query.lower():
website = query.replace('open', '').strip().lower()
elif "open" in query.lower():
website = query.replace("open", "").strip().lower()
try:
open_url(popular_websites[website])
except IndexError: # If the website is unknown
print(f'Unknown website: {website}')
speak(f'Sorry, i don\'t know the website {website}')
except IndexError: # If the website is unknown
print(f"Unknown website: {website}")
speak(f"Sorry, i don't know the website {website}")
elif 'search' in query.lower():
search_query = query.split('for')[-1]
search_engine = query.split('for')[0].replace('search', '').strip().lower()
elif "search" in query.lower():
search_query = query.split("for")[-1]
search_engine = query.split("for")[0].replace("search", "").strip().lower()
search(search_query, search_engine)
elif 'email' in query:
speak('Who is the recipient? ')
elif "email" in query:
speak("Who is the recipient? ")
recipient = takeCommand()
if 'me' in recipient:
if "me" in recipient:
try:
speak('What should I say? ')
speak("What should I say? ")
content = takeCommand()
server = smtplib.SMTP('smtp.gmail.com', 587)
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login("Your_Username", 'Your_Password')
server.sendmail('Your_Username', "Recipient_Username", content)
server.login("Your_Username", "Your_Password")
server.sendmail("Your_Username", "Recipient_Username", content)
server.close()
speak('Email sent!')
speak("Email sent!")
except Exception:
speak("Sorry Sir! I am unable to send your message at this moment!")
except:
speak('Sorry Sir! I am unable to send your message at this moment!')
elif 'nothing' in query or 'abort' in query or 'stop' in query:
speak('okay')
speak('Bye Sir, have a good day.')
elif "nothing" in query or "abort" in query or "stop" in query:
speak("okay")
speak("Bye Sir, have a good day.")
sys.exit()
elif 'hello' in query:
speak('Hello Sir')
elif "hello" in query:
speak("Hello Sir")
elif 'bye' in query:
speak('Bye Sir, have a good day.')
elif "bye" in query:
speak("Bye Sir, have a good day.")
sys.exit()
elif 'play music' in query:
music_folder = 'Your_music_folder_path(absolute_path)'
music = ['music1', 'music2', 'music3', 'music4','music5']
random_music = music_folder + random.choice(music) + '.mp3'
elif "play music" in query:
music_folder = "Your_music_folder_path(absolute_path)"
music = ("music1", "music2", "music3", "music4", "music5")
random_music = music_folder + random.choice(music) + ".mp3"
os.system(random_music)
speak('Playing your request')
speak("Playing your request")
speak('Next Command! Sir!')
speak("Next Command! Sir!")

View File

@ -1,40 +1,46 @@
import pyttsx3
import speech_recognition as sr
import datetime
import wikipedia
import webbrowser
import os
import random
import smtplib
import sys
import random
import webbrowser
import pyttsx3
import speech_recognition as sr
import wikipedia
from pygame import mixer
mixer.init()
print("Initializing Jarvis....")
MASTER = "Tony Stark"
engine = pyttsx3.init('sapi5') #
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
popular_websites = {'google': 'https://www.google.com',
'youtube': 'https://www.youtube.com',
'wikipedia': 'https://www.wikipedia.org',
'amazon': 'https://www.amazon.com'}
search_engines = {'google': 'https://www.google.com',
'youtube': 'https://www.youtube.com',
'bing': 'https://www.bing.com'}
engine = pyttsx3.init("sapi5")
voices = engine.getProperty("voices")
engine.setProperty("voice", voices[0].id)
popular_websites = {
"google": "https://www.google.com",
"youtube": "https://www.youtube.com",
"wikipedia": "https://www.wikipedia.org",
"amazon": "https://www.amazon.com",
}
search_engines = {
"google": "https://www.google.com",
"youtube": "https://www.youtube.com",
"bing": "https://www.bing.com",
}
def open_url(url):
webbrowser.open(url)
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'
chrome_path = r"open -a /Applications/Google\ Chrome.app %s"
webbrowser.get(chrome_path).open(url)
def search(search_query, search_engine):
try:
open_url(f'{search_engines[search_engine]}/search?q={search_query}')
open_url(f"{search_engines[search_engine]}/search?q={search_query}")
except IndexError:
open_url(f'https://www.google.com/search?q={search_query}')
open_url(f"https://www.google.com/search?q={search_query}")
def speak(text):
@ -68,7 +74,7 @@ def takeCommand():
query = " "
try:
print("Recognizing....")
query = r.recognize_google(audio, language='en-in')
query = r.recognize_google(audio, language="en-in")
print("user said: " + query)
except sr.UnknownValueError:
@ -88,78 +94,81 @@ while True:
query = takeCommand()
# logic for executing basic tasks
if 'wikipedia' in query.lower():
speak('Searching wikipedia....')
if "wikipedia" in query.lower():
speak("Searching wikipedia....")
query = query.replace("wikipedia", "")
results = wikipedia.summary(query, sentences=2)
print(results)
speak(results)
elif "what\'s up" in query or 'how are you' in query:
stMsgs = ['Just doing my thing!', 'I am fine!',
'Nice!', 'I am nice and full of energy']
elif "what's up" in query or "how are you" in query:
stMsgs = [
"Just doing my thing!",
"I am fine!",
"Nice!",
"I am nice and full of energy",
]
speak(random.choice(stMsgs))
elif 'open' in query.lower():
website = query.replace('open', '').strip().lower()
elif "open" in query.lower():
website = query.replace("open", "").strip().lower()
try:
open_url(popular_websites[website])
except IndexError: # If the website is unknown
print(f'Unknown website: {website}')
speak(f'Sorry, i don\'t know the website {website}')
except IndexError: # If the website is unknown
print(f"Unknown website: {website}")
speak(f"Sorry, i don't know the website {website}")
elif 'search' in query.lower():
search_query = query.split('for')[-1]
search_engine = query.split('for')[0].replace('search', '').strip().lower()
elif "search" in query.lower():
search_query = query.split("for")[-1]
search_engine = query.split("for")[0].replace("search", "").strip().lower()
search(search_query, search_engine)
elif 'mail' in query:
speak('Who is the recipient? ')
elif "mail" in query:
speak("Who is the recipient? ")
recipient = takeCommand()
if 'me' in recipient:
if "me" in recipient:
try:
speak('What should I say? ')
speak("What should I say? ")
content = takeCommand()
server = smtplib.SMTP('smtp.gmail.com', 587)
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login("Your_Username", 'Your_Password')
server.sendmail('Your_Username', "Recipient_Username", content)
server.login("Your_Username", "Your_Password")
server.sendmail("Your_Username", "Recipient_Username", content)
server.close()
speak('Email sent!')
speak("Email sent!")
except Exception:
speak("Sorry Sir! I am unable to send your message at this moment!")
except:
speak('Sorry Sir! I am unable to send your message at this moment!')
elif 'nothing' in query or 'abort' in query or 'stop' in query:
speak('okay')
speak('Bye Sir, have a good day.')
elif "nothing" in query or "abort" in query or "stop" in query:
speak("okay")
speak("Bye Sir, have a good day.")
sys.exit()
elif 'hello' in query:
speak('Hello Sir')
elif "hello" in query:
speak("Hello Sir")
elif 'bye' in query:
speak('Bye Sir, have a good day.')
elif "bye" in query:
speak("Bye Sir, have a good day.")
sys.exit()
elif 'play music' in query:
elif "play music" in query:
music_folder = "Your_music_folder_path(absolute_path)"
music = ['music1', 'music2', 'music3', 'music4']
random_music = music_folder + random.choice(music) + '.mp3'
speak('Playing your request')
music = ("music1", "music2", "music3", "music4")
random_music = music_folder + random.choice(music) + ".mp3"
speak("Playing your request")
mixer.music.load(random_music)
mixer.music.play()
elif 'pause music' in query:
elif "pause music" in query:
mixer.music.pause()
elif 'stop music' in query:
elif "stop music" in query:
mixer.music.stop()
elif 'unpause' in query:
elif "unpause" in query:
mixer.music.unpause()
speak('Next Command! Sir!')
speak("Next Command! Sir!")