Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/las.py
diff options
context:
space:
mode:
Diffstat (limited to 'las.py')
-rw-r--r--las.py173
1 files changed, 173 insertions, 0 deletions
diff --git a/las.py b/las.py
new file mode 100644
index 0000000..1a61511
--- /dev/null
+++ b/las.py
@@ -0,0 +1,173 @@
+#!/bin/env python
+import sys
+import os
+import dbus
+import random
+import time
+import csnd
+from dict import dict
+from dict import word
+
+bus = dbus.SessionBus()
+APLAY = "/usr/bin/aplay"
+espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech')
+
+dictionary = ""
+pronouncedict = ""
+skill = ""
+answer = ""
+clearit = "" # Because I couldn't null a string
+
+# My class for key detection
+class _Getch:
+ """Gets a single character from standard input. Does not echo to the screen."""
+ def __init__(self):
+ try:
+ self.impl = _GetchWindows()
+ except ImportError:
+ self.impl = _GetchUnix()
+
+ def __call__(self): return self.impl()
+
+class _GetchUnix:
+ def __init__(self):
+ import tty, sys
+
+ def __call__(self):
+ import sys, tty, termios
+ fd = sys.stdin.fileno()
+ old_settings = termios.tcgetattr(fd)
+ try:
+ tty.setraw(sys.stdin.fileno())
+ ch = sys.stdin.read(1)
+ finally:
+ termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
+ return ch
+
+class _GetchWindows:
+ def __init__(self):
+ import msvcrt
+
+ def __call__(self):
+ import msvcrt
+ return msvcrt.getch()
+
+class listenspell():
+
+ def __init__(self):
+
+ self.skill_level = 0
+ self.level_threshold = 5
+ self.points = 0
+ self.words_played = 0
+ self.words_correct = 0
+ self.init = False
+ from dict import dict
+ from dict import word
+ self.dict_obj = dict()
+ self.word_obj = word()
+
+
+ def startspeechd(self): # Currently not in use have to manually start sugar-speechd
+ import os
+ pid = os.fork()
+ if pid:
+ return
+ else:
+ # we are the child
+ os.popen("./sugar-speechd")
+
+ def playsound(self,event):
+ if event == "begin":
+ os.popen("aplay --quiet begin.wav")
+ elif event == "correct":
+ os.popen("aplay --quiet correct.wav")
+ elif event == "incorrect":
+ os.popen("aplay --quiet incorrect.wav")
+
+ def setskill_level(self,level):
+ self.skill_level = level
+
+ def getskill_level(self):
+ return self.skill_level
+
+ def getwords_played(self):
+ return self.words_played
+
+ def getwords_correct(self):
+ return self.words_correct
+
+ def getpoints(self):
+ return self.points
+
+ def ans_correct(self, wordid):
+ self.playsound("correct")
+ self.points = self.points + self.skill_level
+ self.words_correct = self.words_correct + 1
+
+ def ans_incorrect(self, wordid):
+ self.playsound("incorrect")
+
+ def clearscreen(self,numlines=100):
+ """Clear the console.
+
+ numlines is an optional argument used only as a fall-back.
+ """
+ import os
+ if os.name == "posix":
+ # Unix/Linux/MacOS/BSD/etc
+ os.system('clear')
+ elif os.name in ("nt", "dos", "ce"):
+ # DOS/Windows
+ os.system('CLS')
+ else:
+ # Fallback for other operating systems.
+ print '\n' * numlines
+
+ def load_wordid(self, num_words):
+ temp_list = []
+ self.wordid_list = []
+
+ temp_list = self.dict_obj.getrandomwordid(length = self.skill_level,numwords = num_words)
+ for(wordid, ) in temp_list:
+ self.wordid_list.append(wordid)
+ return self.wordid_list
+
+ def getwordinfo(self,wordid, attribute):
+ if self.word_obj.getwordid() != wordid:
+ self.word_obj.__init__("wordid", wordid)
+ self.words_played = self.words_played + 1
+
+ if attribute == "def":
+ return self.word_obj.getdef()
+ elif attribute == "usage":
+ return self.word_obj.getusage()
+ elif attribute == "word":
+ return self.word_obj.getword()
+ elif attribute == "phnm":
+ return self.word_obj.getword() # For the time being
+
+ else: return "Invalid attribute"
+
+
+ def saytext(self, text):
+ if self.init == False:
+ bus = dbus.SessionBus()
+ self.espeak_object = bus.get_object('org.laptop.Speech','/org/laptop/Speech')
+ self.init = True
+ text = str(text)
+ self.espeak_object.SayText(text)
+
+ def getkey(self):
+ for longestinput in range(15):
+ inkey = _Getch()
+ import sys
+ for i in xrange(sys.maxint):
+ k=inkey()
+ if k<>'':break
+ elif k == '\r': break
+ return k
+
+ def exitgame(self):
+ self.saytext("goodbye")
+ sys.exit()