[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/DragonComputer/Dragonfire-RaspberryPi/master/getcommand.py [Back]  [Original]

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import api
from lxml import etree
from api import Data
from subprocess import call
import time
import subprocess
import urllib.request, urllib.error, urllib.parse
import wikipedia
from random import randint
import getpass
import os
import configparser
import xml.etree.ElementTree as ET
from pykeyboard import PyKeyboard
import datetime

def command(speech_object):
	previous_command = ""
	while(True):
		
		line = speech_object.readline()
		if(line.startswith("sentence1: ")):
			com = line[15:-6]
			#if (previous_command == com):
			#	continue
			print(com)

                	Config = configparser.ConfigParser()
                	Config.read("config.ini")
                	user_prefix = Config.get("BasicUserData","Prefix")

			if (com == "DRAGON FIRE"):
				tts_kill()
				userin = Data([" "]," ")
				words_dragonfire = {
					0 : "Yes, " + user_prefix + ".",
					1 : "Yes. I'm waiting.",
					2 : "What is your orders?"
				}
				userin.say(words_dragonfire[randint(0,2)])
			elif (com == "ENOUGH" or com == "OKAY"):
				tts_kill()
			elif (com == "STOP"):
                                tts_kill()
				os.system("xbmc-send --action=\"Stop\"")
			elif (com == "WHO AM I" or com == "WHAT IS MY NAME"):
                                tts_kill()
				user_full_name = os.popen("getent passwd $LOGNAME | cut -d: -f5 | cut -d, -f1").read()
				user_full_name = user_full_name[:-1]
                                userin = Data(["echo"], user_full_name)
                                userin.say("Your name is " + user_full_name + "," + user_prefix + ".")
				userin.interact(0)
                                previous_command = com
			elif (com == "I'M A WOMAN" or com == "I'M A GIRL" or com == "I'M A LADY"):
				tts_kill()
				cfgfile = open("config.ini",'w')
				Config.set("BasicUserData","Prefix","My Lady")
				Config.write(cfgfile)
				cfgfile.close()
				userin = Data([" "]," ")
				userin.say("Pardon, My Lady.")
                        elif (com == "I'M A MAN" or com == "I'M A BOY"):
                                tts_kill()
                                cfgfile = open("config.ini",'w')
                                Config.set("BasicUserData","Prefix","Sir")
                                Config.write(cfgfile)
                                cfgfile.close()
                                userin = Data([" "]," ")
                                userin.say("Pardon, Sir.")
			elif (com == "WHAT IS YOUR NAME"):
				tts_kill()
				userin = Data([" "]," ")
				userin.say("My name is Dragon Fire.")
				previous_command = com
			elif (com == "WHAT IS YOUR GENDER"):
				tts_kill()
                                userin = Data([" "]," ")
                                userin.say("I have a female voice but I don't have a gender identity. I'm a computer program, " + user_prefix + ".")
                                previous_command = com
        		elif (com == "OPEN FILE MANAGER"):
				tts_kill()
				userin = Data(["pantheon-files"],"File Manager")
				userin.say("File Manager")
				userin.interact(0)
				previous_command = com
			elif (com == "OPEN WEB BROWSER"):
				tts_kill()
				userin = Data(["sensible-browser"],"Web Browser")
				userin.say("Web Browser")
				userin.interact(0)
				previous_command = com
			elif (com == "SHUT DOWN THE COMPUTER" or com == "SHUT DOWN THE HELMET"):
				tts_kill()
                                #userin = Data(["sudo","poweroff"],"Shutting down")
				userin = Data(["echo"],"Shutting down")
                                userin.say("Shutting down")
				userin.interact(0)
				time.sleep(3)
				os.system("xbmc-send --action=\"Powerdown\"")
                                previous_command = com
			elif (com.startswith("WIKI PEDIA SEARCH FOR")):
				tts_kill()
				#userin = Data(["sensible-browser","http://en.wikipedia.org/wiki/"+com[22:].lower()],com[22:])
				#userin.interact(0)
				print("wkhtmltopdf http://en.wikipedia.org/wiki/"+com[22:].lower().replace(" ", "%20")+" /tmp/dragonfire/"+com[22:].lower().replace(" ", "%20")+".pdf")
				os.system("wkhtmltopdf http://en.wikipedia.org/wiki/"+com[22:].lower().replace(" ", "%20")+" /tmp/dragonfire/"+com[22:].lower().replace(" ", "%20")+".pdf")
				#os.system("convert -density 300 oxford.pdf[0] oxford.jpg")
				os.system("convert -density 300 /tmp/dragonfire/"+com[22:].lower().replace(" ", "%20")+".pdf[0] /tmp/dragonfire/"+com[22:].lower().replace(" ", "%20")+".jpg")
				os.system("xbmc-send --action=\"ShowPicture(/tmp/dragonfire/"+com[22:].lower().replace(" ", "%20")+".jpg)\"")
				os.system("sleep 2 && xbmc-send --action=\"ZoomLevel3\"")
				try:
					wikipage = wikipedia.page(com[22:].lower())
					wikicontent = "".join([i if ord(i) < 128 else ' ' for i in wikipage.content])
					userin.say(wikicontent)
            				previous_command = com
				except:
					pass
			elif (com.startswith("YOU TUBE SEARCH FOR")):
				tts_kill()
				root = ET.fromstring(urllib.request.urlopen("http://gdata.youtube.com/feeds/api/videos?vq=" + com[20:].lower().replace(" ", "%20") + "&racy=include&orderby=relevance&start-index=1&max-results=2").read())
				
				for child in root[16]:
					if child.tag == "{http://www.w3.org/2005/Atom}title":
						youtube_title = child.text
					if child.tag == "{http://www.w3.org/2005/Atom}link":
						youtube_url = child.attrib["href"]
						break				
				
				youtube_id = youtube_url.replace("http://www.youtube.com/watch?v=","").replace("&feature=youtube_gdata","")
				print(youtube_id)
				os.system("xbmc-send --action=\"ActivateWindow(Videos,plugin://plugin.video.youtube/kodion/search/query/?q=" + com[20:].lower().replace(" ", "%20") + ")\"")
				#userin = Data(["sensible-browser",youtube_url],youtube_title)
				userin = Data(["echo"],youtube_title)
				youtube_title = "".join([i if ord(i) < 128 else ' ' for i in youtube_title])
				#k = PyKeyboard()
				#k.tap_key('space')
				time.sleep(5)
				os.system("xbmc-send --action=\"PlayMedia(plugin://plugin.video.youtube/play/?video_id=" + youtube_id + ")\"")
				userin.say(youtube_title)
				userin.interact(0)
				#k.tap_key(k.tab_key)
				#k.tap_key(k.tab_key)
				#k.tap_key(k.tab_key)
				#k.tap_key(k.tab_key)
				#k.tap_key('f')
                        elif (com == "LEFT"):
				userin = Data([" "]," ")
				os.system("xbmc-send --action=\"Left\"")
                                #userin.say("Left")
                                previous_command = com
                        elif (com == "RIGHT"):
                                userin = Data([" "]," ")
                                os.system("xbmc-send --action=\"Right\"")
                                #userin.say("Right")
                                previous_command = com
                        elif (com == "UP"):
                                userin = Data([" "]," ")
                                os.system("xbmc-send --action=\"Up\"")
                                #userin.say("Up")
                                previous_command = com
                        elif (com == "DOWN"):
                                userin = Data([" "]," ")
                                os.system("xbmc-send --action=\"Down\"")
                                #userin.say("Down")
                                previous_command = com
                        elif (com == "SELECT"):
                                tts_kill()
                                userin = Data(["echo"],"Select")
				userin.interact(0)
                                os.system("xbmc-send --action=\"Select\"")
                                userin.say("Select")
                                previous_command = com
                        elif (com == "BACK"):
                                tts_kill()
                                userin = Data(["echo"],"Back")
				userin.interact(0)
                                os.system("xbmc-send --action=\"back\"")
                                userin.say("Back")
                                previous_command = com
                        elif (com == "GO TO HOME"):
                                tts_kill()
                                userin = Data(["echo"],"Home")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10000)\"")
                                userin.say("Home")
                                previous_command = com
                        elif (com == "GO TO PROGRAMS"):
                                tts_kill()
                                userin = Data(["echo"],"Programs")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10001)\"")
                                userin.say("Programs")
                                previous_command = com
                        elif (com == "GO TO PICTURES"):
                                tts_kill()
                                userin = Data(["echo"],"Pictures")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10002)\"")
                                userin.say("Pictures")
                                previous_command = com
                        elif (com == "GO TO FILEMANAGER"):
                                tts_kill()
                                userin = Data(["echo"],"File manager")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10003)\"")
                                userin.say("File manager")
                                previous_command = com
                        elif (com == "GO TO SETTINGS"):
                                tts_kill()
                                userin = Data(["echo"],"Settings")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10004)\"")
                                userin.say("Settings")
                                previous_command = com
                        elif (com == "GO TO MUSIC"):
                                tts_kill()
                                userin = Data(["echo"],"Music")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10005)\"")
                                userin.say("Music")
                                previous_command = com
                        elif (com == "GO TO VIDEO"):
                                tts_kill()
                                userin = Data(["echo"],"Video")
				userin.interact(0)
                                os.system("xbmc-send --action=\"ActivateWindow(10006)\"")
                                userin.say("Videos")
                                previous_command = com

			else:
				tts_kill()
                                userin = Data(["echo"],com + " ?")
                                userin.say("Unrecognized command.")
                                userin.interact(0)
                                previous_command = com

def tts_kill():
	call(["pkill", "audsp"])
	call(["pkill", "aplay"])

def dragon_greet():
	time = datetime.datetime.now().time()

	Config = configparser.ConfigParser()
        Config.read("config.ini")
        user_prefix = Config.get("BasicUserData","Prefix")
	
	if time < datetime.time(12):
		userin = Data([" "],"Good morning " + user_prefix)
		userin.say("Good morning " + user_prefix)
	elif datetime.time(12) < time  and time < datetime.time(18):
                userin = Data([" "],"Good afternoon " + user_prefix)
                userin.say("Good afternoon " + user_prefix)
	else:
                userin = Data([" "],"Good evening " + user_prefix)
                userin.say("Good evening " + user_prefix)

if __name__ == '__main__':
	try:
		os.system("./run_kodi.sh")
		#os.system("./camera_stream.sh")
		#p = subprocess.Popen(['./camera_stream.sh'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
		#os.system("sleep 4 && xbmc-send --action=\"PlayMedia(/tmp/test.mpg)\" && sleep 2 && xbmc-send --action=\"SkipForward\"")
		dragon_greet()
		
		try: 
    			os.makedirs("/tmp/dragonfire")
		except OSError:
			if not os.path.isdir("/tmp/dragonfire"):
        			raise
		command(sys.stdin)


	except KeyboardInterrupt:
		sys.exit(1)

Web Proxy Viewer  |  New URL  |  Original Page