rdarlington

Text to DECTalk

Jan 23rd, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.64 KB | None | 0 0
  1. #! /usr/bin/python
  2. import time, os, serial, textwrap, string
  3.  
  4. #Set the filename and open the file
  5. filename = '/home/speechbot/irclogs/freenode/#geekstreams.log'
  6. logfile = open(filename,'r')
  7.  
  8. #Find the size of the file and move to the end
  9. st_results = os.stat(filename)
  10. st_size = st_results[6]
  11. logfile.seek(st_size)
  12.  
  13. def namelookup(name):
  14.     if name.lower() == "dal3ksec":
  15.         name="dialec sec[:nh]"
  16.     elif name.lower() == "n2toh":
  17.         name="N2[:nf]"
  18.     elif name.lower() == "zer00":
  19.         name="zero[:np]"
  20.     elif name.lower() == "j0rd":
  21.         name="jord[:np]"
  22.     elif name.lower() == "tprg":
  23.         name="telephonica[:nr]"
  24.     elif name.lower() == "vt_entity":
  25.         name="vt entity[:np]"
  26.     elif name.lower() == "gi_jack":
  27.         name="G eye Jack[:np]"
  28.     return name
  29.  
  30. def talk(line):
  31.     ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
  32.     ser.open()
  33.     name, sep, message=line.partition("<")
  34.     name, sep, message=message.partition(">")
  35.     name=name.lstrip("@")
  36.     name=name.strip()
  37.     name=namelookup(name)
  38.     message=message.strip()
  39.  
  40.     if not message.startswith("."):
  41.         lines=string.split(textwrap.fill(message,100), '\n')
  42.         ser.write(name + ", \n\n")
  43.         for x in range(0,len(lines)):
  44.             ser.write(lines[x] +"\r\r")
  45.             time.sleep(1)
  46.  
  47.             ser.write("[:np]\r\r")
  48.  
  49.     print name +" says: "+ textwrap.fill(message,100) +"\n\r", # already has newline
  50.     ser.close()
  51.     return
  52.  
  53. while 1:
  54.     where = logfile.tell()
  55.     line = logfile.readline()
  56.     if not line:
  57.         time.sleep(1)
  58.         logfile.seek(where)
  59.     else:
  60.         talk(line)
Advertisement
Add Comment
Please, Sign In to add comment