my own virtual assistant (friday)

 import pyttsx3

import speech_recognition as sr
import datetime
import wikipedia
import time
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import pyautogui
# Use female voice 
engine = pyttsx3.init('sapi5')

voices = engine.getProperty('voice')
engine.setProperty('voice', voices)
engine.setProperty('rate'150)
engine.setProperty('volume'10)

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 friday, is there anything to help you sir?")

def takecommand():
    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)
      speak("sorry I could not understand, say that again please...")
      return "None"
    return query

def typen():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Listening....")
        r.pause_threshold = 1
        audio = r.listen(source)
    try:
     print("Recognizing....")
     typething = r.recognize_google(audio, language='en-in')
     print(f"user said: {typething}\n")
    except Exception as e:
      print(e)
      speak("sorry I could not understand, say that again please...")
      return "None"
    return typething

if __name__ == "__main__":
    wishMe()
    while True:
     query = takecommand().lower()
     if 'wikipedia' in query:
            speak('searching Wikipedia...')
            query = query.replace("wikipedia""")
            results = wikipedia.summary(query, sentences=2)
            speak("according to wikipedia")
            speak(results)
     if 'manav sampada' in query:
            speak('loging in to manav sampada')
            browser = webdriver.Chrome('D:\\chromedriver.exe')
            browser.get('http://ehrms.upsdc.gov.in/')
            elem = browser.find_element_by_partial_link_text('eHRMS Login')
            elem.get_attribute('href')
            time.sleep(1)
            elem.click()
            time.sleep(1)
            loginr = browser.find_element_by_xpath('//*[@id="txtusername"]')
            loginr.send_keys('your ID')
            time.sleep(1)
            select = Select(browser.find_element_by_id('ddldept'))
            select.select_by_visible_text('Basic Education')
            time.sleep(1)
            password = browser.find_element_by_xpath('//*[@id="txtpwd"]')
            password.send_keys('your password')
            speak('sir I have filled all userID password etc. but ')
            speak('sir you have to fill the human verification captha by yourself as I am just a bot ')
            speak('I hope I was able to assist you')
     if 'program' in query:
            speak('opening sir')
            query = query.replace("program""")
            pyautogui.click(27880)
            pyautogui.typewrite(query)
            time.sleep(1)
            pyautogui.click(79,441)
     if 'send' and 'gmail' in query:
            speak('opening gmail')
            browser = webdriver.Chrome('your selenium driver path here')
            browser.get('https://accounts.google.com/b/0/AddMailService')
            time.sleep(1)
            login = browser.find_element_by_xpath('//*[@id="identifierId"]')
            login.send_keys('your gmail id@gmail.com')
            login.send_keys(Keys.ENTER)
            time.sleep(1)
            loginpwd = browser.find_element_by_xpath('//*[@id="password"]/div[1]/div/div[1]/input')
            loginpwd.send_keys('your password')
            loginpwd.send_keys(Keys.ENTER)
            time.sleep(10)
            compose = browser.find_element_by_xpath('//*[@id=":jm"]/div/div')
            time.sleep(1)
            compose.click()
            time.sleep(1)
            speak('whom do you want to send the gmail')
            takecommand()
            query = takecommand().lower()
            tom = browser.find_elements_by_xpath('//*[@id=":pa"]')
            tom.send_keys(query)
     if 'type' in query:
            speak('please tell me what to type')
            typething = takecommand().lower()
            pyautogui.typewrite(typething)
     if 'quit' in query:
        exit()

            

Comments