Пример #1
0
def remove_dir(filtered_query):

    abs_path = get_dir_path(filtered_query)

    #checking directory exists or not
    if not os.path.isdir(abs_path):
        tts.convert_text_n_speak("Please Check Directory Does Not Exists")
        return
    tts.convert_text_n_speak("Are you sure? You want to remove directory ?")
    user_input = sr.get_audio_to_text()
    user_input = user_input.lower().strip().split()

    if "yes" in user_input:

        #creating command
        create_dir_cmd = 'rm -r ' + abs_path
        #creating dir
        out = sp.run([create_dir_cmd],
                     shell=True,
                     stdout=sp.PIPE,
                     stderr=sp.PIPE)
        if out.returncode == 0:
            tts.convert_text_n_speak("Directory Successfully Removed")
        else:
            tts.convert_text_n_speak(
                "Unable to Remove directory. Please try again later")
        sleep(5)
    else:
        tts.convert_text_n_speak("Aage se dhayan rakhna")
Пример #2
0
def get_dir_name(filtered_query):

    if len(filtered_query) == 1:
        dir_name = filtered_query[0]

    else:
        split_words = ['in', 'of', 'under']

        dir_name = ""
        name_index = -1

        if "name" in filtered_query:
            name_index = filtered_query.index("name")
        elif "named" in filtered_query:
            name_index = filtered_query.index("named")
        elif "directory" in filtered_query:
            name_index = filtered_query.index("directory")
        elif "folder" in filtered_query:
            name_index = filtered_query.index("folder")

        #storing dir name
        if name_index + 1 < len(filtered_query):
            dir_name = filtered_query[name_index + 1]

        #dir name not given
        if dir_name in split_words or name_index == -1:
            tts.convert_text_n_speak("Please tell directory name")
            user_input = sr.get_audio_to_text()
            if user_input != None:
                user_input_split = user_input.lower().strip().split()
                #calling function to create path
                dir_name = get_dir_name(user_input_split)

    return dir_name
Пример #3
0
def dir_path(filtered_query):
    path = ""
    split_words = ['in', 'of', 'under', 'from']

    #removing folder or directory word in query
    for word in filtered_query:
        if word == "folder" or word == "directory":
            filtered_query.remove(word)

    #creating path by parsing list from start_index i.e. index of in/of/under
    for word in filtered_query:
        if word in split_words:
            dir_index = filtered_query.index(word) + 1
            if dir_index < len(filtered_query):
                dir_name = filtered_query[dir_index]
                path = dir_name + "/" + path

    #directory path not given
    if path == "" or path == None:
        tts.convert_text_n_speak("Please tell directory location")
        user_input = sr.get_audio_to_text()
        if user_input != None:
            user_input_split = user_input.lower().strip().split()
            #calling function to create path
            path = dir_path(user_input_split)

    return path
Пример #4
0
def get_dest_path(filtered_query, abs_path):

    dir_name_index = -1
    desti_path = ""

    if len(filtered_query) == 1:
        dir_name_index = 0

    elif "to" in filtered_query:
        dir_name_index = filtered_query.index("to") + 1

    if dir_name_index == -1:
        tts.convert_text_n_speak("Please Specify new directory name")
        user_input = sr.get_audio_to_text()
        if user_input != None:
            user_input_split = user_input.lower().strip().split()
            #calling function to create path
            desti_path = get_dest_path(user_input_split, abs_path)

    else:
        splash_index = abs_path.rfind('/')
        desti_path = abs_path[0:splash_index +
                              1] + filtered_query[dir_name_index]

    print(desti_path)
    return desti_path
def search_google(filtered_query):
    result = 0
    # keywords to remove
    remv_keywords = [
        'search', 'google', 'on', 'about', 'the', 'find', 'ok', 'do', 'a'
    ]
    # final list of words to be searched
    final_key = []
    # append words other than remv_keywords to final_key
    for word in filtered_query:
        if word in remv_keywords:
            pass
        else:
            final_key.append(word)
    # if no keyword given ask for keyword
    if final_key == []:
        tts.convert_text_n_speak("What should i search")
        user_input = sr.get_audio_to_text()
        user_input = user_input.lower().strip().split()
        result = search_google(user_input)
    # to avoid ruuning 2 times
    if result == 0:
        # string of search words
        search_words = str()
        for word in final_key:
            search_words = search_words + ' ' + word
        print('searching for ' + search_words)
        webbrowser.open_new_tab('https://www.google.com/search?q=' +
                                search_words)
        tts.convert_text_n_speak("Search results ready")
        result = 1
        return result
Пример #6
0
def delete_file(path):
	
	tts.convert_text_n_speak("are u sure to delete file")
	input_text = sr.get_audio_to_text()
	if input_text.find("yes")!=-1:
		os.remove(path)
		tts.convert_text_n_speak("Ok fine!!file deleted ,check it once")
	else:
		tts.convert_text_n_speak("aage se dhyan rakhna")
Пример #7
0
def process_user_query():

    while True:
        user_query = sr.get_audio_to_text()

        #checking query is empty or not
        if user_query != None:

            user_query = user_query.lower()

            # if query has exit keywords, close the application
            if exit_keyword[0] in user_query or exit_keyword[
                    1] in user_query or exit_keyword[3] in user_query:
                tts.speak("exit")
                break
            # else execute the command
            else:
                filter_query_trigger(user_query)
                #asking for next query
                tts.speak("askNext")
Пример #8
0
def play_youtube(filtered_query):
    result = 0
    # split user_query to words
    video_keywords = filtered_query
    # final keywords to search
    final_key = []
    # keywords that won't be used for searching
    remv_keywords = [
        'youtube', 'from', 'of', 'for', 'video', 'play', 'search', 'about'
    ]

    # appending keyword to final_key list rejecting remv_keywords
    for word in video_keywords:
        if word in remv_keywords:
            pass
        else:
            final_key.append(word)

    #checking video name given or not
    if final_key == []:
        tts.convert_text_n_speak("Which video you want to play")
        user_input = sr.get_audio_to_text()
        user_input = user_input.lower().strip().split()
        result = play_youtube(user_input)

    # making string of keywords to search
    if result == 0:
        search_words = str()
        for word in final_key:
            search_words = search_words + ' ' + word
        query_string = urllib.parse.urlencode({"search_query": search_words})
        html_content = urllib.request.urlopen(
            "http://www.youtube.com/results?" + query_string)
        search_results = re.findall(r'href=\"\/watch\?v=(.{11})',
                                    html_content.read().decode())
        # open link in tab webbrowser
        webbrowser.open_new_tab("http://www.youtube.com/watch?v=" +
                                search_results[0])
        tts.convert_text_n_speak("Video Opened. Enjoy your video")
        result = 1
        return result
Пример #9
0
#!/usr/bin/env python3
import SpeechRego as sr
import tts
import subprocess as sp
import execute_commands

#intro message
tts.convert_text_n_speak("Welcome")
tts.convert_text_n_speak("What You Want to be done")

#getting text of user audio
while True:
	user_query = sr.get_audio_to_text()

	# program exit keywords
	exit_keyword = ['quit','exit','cancel','close']

	#checking query is empty or not
	if user_query != None :
		# if query has exit keywords, close the application
		if user_query in exit_keyword :
			tts.convert_text_n_speak('exiting')
			break;
		elif user_query.find('command')>=0 or user_query.find('directory')>=0 or user_query.find('file')>=0 :
			execute_commands.execute_commands(user_query):
		else:
			cmd_output = ""
			try :
				#executing command
				cmd_output = sp.run([user_query],check=True,shell=True,stdout=sp.PIPE,)
			except  sp.CalledProcessError :
Пример #10
0
def call_file(list_text,new_list,file_names,valid_file_op):
	folder=""
	count=0
	index = 0
	index1=0
	length = len(list_text)
	entered = 0
	value = 0
	current = 0
	c = 0
	list_text1 = ""

	try:
		if new_list == 1:
			new_list = 0
	
		for i in list_text:

			count+=1
			if i=="open"  or i=="create" or i=="close" or i=="delete" or i=="rename" or i=="list":
				index = list_text.index(i)
				valid_file_op.append(i)
				del i				

			elif i=="copy":
				copy_op.call_copy(list_text)

			elif i=="file":
			
				index1 = list_text.index(i)
				if list_text[-1]=="file":
					tts.convert_text_n_speak("please give the file name sir!!")
					file_name = sr.get_audio_to_text()
					#file_name = input("enter file")
					file_names.append(file_name)
				else:
					file_name = list_text[list_text.index("file")+1]
					file_names.append(file_name)
					list_text.remove("file")						

				#to check whether folder name is given or not
				if "folder" not in list_text and "directory" not in list_text:
					tts.convert_text_n_speak("what is the desired location of the file!!")
					list_text1  = sr.get_audio_to_text()
					#list_text1 = input("enter location")
					list_text = list_text1.strip().split()
					length = len(list_text)
					new_list = 1
					count = 0
					call_file(list_text,new_list,file_names,valid_file_op)
					
				else:
					pass
 
 
			elif  i=="folder" or i=="directory":

				index1 = list_text.index(i)
							 
				if list_text[index1-1]=="home":
					entered = 1
					del i
					#list_text.remove(i)

				elif list_text[index1-1]=="current":
					current = 1
					del i
					#list_text.remove(i)	

				elif list_text[index1-1]!="home" and list_text[index1-1]!="current" and i!=list_text[-1]:
					folder = list_text[index1+1]+"/"+folder
					#del i
					list_text.remove(i)			
			
			else:
				#pass
				c=0

			if count == length:
				break

			else:
				#continue
				c=0				

		# out of for loop
		if current == 1:
			folder="./"+folder

		elif entered == 1:
			#to fetch user name			
			output=sp.run(['echo $USER'],shell=True,stdout=sp.PIPE)
			user=output.stdout.decode().replace('\n','')

			folder = "/home/" + user +"/" + folder
				
		else:	
			folder="/"+folder

		for i in valid_file_op:
			
			if i == "open":
				path(1,file_names,folder)
				
			elif i == "create":
				path(2,file_names,folder)
				
			elif i == "delete":
				path(3,file_names,folder)
				
			elif i == "rename":
				path(4,file_names,folder)
	
			elif i == "copy":
				path(5,file_names,folders)
			elif i=="list":
				path(6,[],folder)

		

	except IOError:
		tts.convert_text_n_speak("something might be missing or maybe you don't have appropriate permissions please check your input once")
Пример #11
0
def Service(user_query):
    print('in service module')
    # service modes
    modes = ['stop','start','restart','status']
    # execute service command to get all services present
    proc = sp.Popen(['service','--status-all'], stdout=sp.PIPE, stderr=sp.PIPE)
    # get stdout and error if occured
    (out,err) = proc.communicate()
    # get list of services from stdout
    all_services = out.decode().replace(' [ - ] ','').replace('\n','').replace(' [ + ] ','').split(' ')
    all_services.pop(0)

    #----------------------------------------------------------------------------------------------------------------------
    # for each service available
    for serv in all_services:

        #-----------------------------------------------------------------------------------------------------------------------------------
        # if apache is found in query
        if 'apache' in user_query:
            # for each mode in modes
            for mode in modes:
                # if mode is in query
                if mode in user_query:
                    # execute command in mode found
                    proc  = sp.Popen(['service','apache2',mode],stdout=sp.PIPE,stderr=sp.PIPE)
                    # for start and restart
                    if mode=='start' or mode=='restart':
                        tts.convert_text_n_speak('apache started')
                        return
                    # for stopping service
                    elif mode=='stop':
                        tts.convert_text_n_speak('apache stopped')
                        return
                    # for status of serice
                    else:
                        (out,err)=proc.communicate()
                        # get where is string active running
                        msg = out.decode().find('active (running)')
                        # if active runn is found speak
                        if msg>0:
                            tts.convert_text_n_speak('apache is active running now')
                            return
                        # if not found service inactive --> give option to start
                        else:
                            tts.convert_text_n_speak("apache is inactive")
                            tts.convert_text_n_speak("do you wish to start the service")
                        # get a reply
                        reply = sr.get_audio_to_text()
                        # if negative answer
                        if 'no' in reply:
                            return
                        # if affirmative
                        else:
                            tts.convert_text_n_speak('apache service started')
                            # start the service
                            proc  = sp.Popen(['service','apache2','start'],stdout=sp.PIPE,stderr=sp.PIPE)
                            return
                # if there isn't any mode in the query
                else:
                    pass

        #-------------------------------------------------------------------------------------------------------------------------------
        # FOR TELNET OR XIN
        # if telnet in user query
        elif 'telnet' in user_query:
            # for each mode in modes check if it is present in query
            for mode in modes:
                if mode in user_query:
                    # if mode found in query exceute the mode for that service i.e telnet
                    proc  = sp.Popen(['service','xinetd',mode],stdout=sp.PIPE,stderr=sp.PIPE)
                    if mode=='start' or mode=='restart':
                        tts.convert_text_n_speak('telnet started')
                        return
                        tts.convert_text_n_speak('telnet stopped')
                        return
                    else:
                        (out,err)=proc.communicate()
                        msg = out.decode().find('active (running)')
                        if msg>0:
                            tts.convert_text_n_speak('telnet is active running now')
                            return
                        else:
                            tts.convert_text_n_speak("telnet is inactive")
                            tts.convert_text_n_speak("do you wish to start the service")
                        reply = sr.get_audio_to_text()
                        if 'no' in reply:
                            return
                        else:
                            tts.convert_text_n_speak('telnet service started')
                            proc  = sp.Popen(['service','xinetd','start'],stdout=sp.PIPE,stderr=sp.PIPE)
                            return
                else:
                    pass
        #------------------------------------------------------------------------------------------------------------------------------
        elif 'nfs' in user_query:
            for mode in modes:
                if mode in user_query:
                    proc  = sp.Popen(['service','nfs-kernel-server',mode],stdout=sp.PIPE,stderr=sp.PIPE)
                    if mode=='start' or mode=='restart':
                        tts.convert_text_n_speak('nfs started')
                        return
                    elif mode=='stop':
                        tts.convert_text_n_speak('nfs stopped')
                        return
                    else:
                        (out,err)=proc.communicate()
                        msg = out.decode().find('active (running)')
                        if msg>0:
                            tts.convert_text_n_speak('nfs is active running now')
                            return
                        else:
                            tts.convert_text_n_speak("nfs is inactive")
                            tts.convert_text_n_speak("do you wish to start the service")
                        reply = sr.get_audio_to_text()
                        if 'no' in reply:
                            return
                        else:
                            tts.convert_text_n_speak('nfs service started')
                            proc  = sp.Popen(['service','nfs-kernel-server','start'],stdout=sp.PIPE,stderr=sp.PIPE)
                            return
                else:
                    pass

        #--------------------------------------------------------------------------------------------------------------------
        # a service is found in user query
        elif serv in user_query:
            # modes checked if t is in user query
            for mode in modes:
                if mode in user_query:
                     # apply mode on service
                    proc  = sp.Popen(['service',serv,mode],stdout=sp.PIPE,stderr=sp.PIPE)
                    # for strat and restart
                    if mode=='start' or mode=='restart':
                        tts.convert_text_n_speak(serv+' started')
                        return
                    # for stop
                    elif mode=='stop':
                        tts.convert_text_n_speak(serv+' stopped')
                        return
                    else:
                        # for status
                        (out,err)=proc.communicate()
                        # find if active running in result i.e out
                        msg = out.decode().find('active (running)')
                        # if active running found in out
                        if msg>0:
                            tts.convert_text_n_speak(serv+' is active running now')
                            return
                        # if not found, service is inactive
                        else:
                            tts.convert_text_n_speak(serv+" is inactive")
                            tts.convert_text_n_speak("do you wish to start the service")
                        # get answer if user wants to start service or not
                        reply = sr.get_audio_to_text()
                        if 'no' in reply:
                            return
                        else:
                            tts.convert_text_n_speak(serv+' service started')
                            proc  = sp.Popen(['service',serv,'start'],stdout=sp.PIPE,stderr=sp.PIPE)
                            return
                else:
                    pass
        # if service is not found in user query
        elif serv not in user_query:
            # if we have reached the last element of all_services and no match in user query
            if serv==all_services[-1]:
                # service not found
                tts.convert_text_n_speak('Sorry, this service is not installed')
                return
            # if we are not at the last element then continue    
            else:
                continue;