use "give oday $price" so we can prune dispense
[zanchey/dispense2.git] / sql-edition / servers / VendServer.py
index 3c42908..0b45a40 100755 (executable)
@@ -4,7 +4,7 @@
 USE_DB = 0
 
 import ConfigParser
-import sys, os, string, re, pwd, signal, math
+import sys, os, string, re, pwd, signal, math, syslog
 import logging, logging.handlers
 from traceback import format_tb
 if USE_DB: import pg
@@ -230,6 +230,7 @@ def reset_idler(v, vstatus, t = None):
        idler = GreetingIdler(v, t)
        vstatus.time_of_next_idlestep = time()+idler.next()
        vstatus.time_of_next_idler = None
+       vstatus.time_to_autologout = None
        vstatus.change_state(STATE_IDLE, 1)
 
 def choose_idler():
@@ -402,11 +403,11 @@ def make_selection(v, vstatus):
                vstatus.cur_selection = ''
                return
        elif vstatus.cur_selection[1] == '8':
-               v.display('GOT COKE?')
+               v.display('GOT DRINK?')
                if ((os.system('su - "%s" -c "dispense %s"'%(vstatus.username, vstatus.cur_selection[0])) >> 8) != 0):
                        v.display('SEEMS NOT')
                else:
-                       v.display('GOT COKE!')
+                       v.display('GOT DRINK!')
        else:
                # first see if it's a named slot
                try:
@@ -415,10 +416,14 @@ def make_selection(v, vstatus):
                        price, shortname, name = get_snack( '--' )
                dollarprice = "$%.2f" % ( price / 100.0 )
                v.display(vstatus.cur_selection+' - %s'%dollarprice)
-               if ((os.system('su - "%s" -c "dispense %s"'%(vstatus.username, shortname)) >> 8) == 0):
+               exitcode = os.system('su - "%s" -c "dispense give oday %d"'%(vstatus.username, price))
+               if (exitcode == 0):
+                       # magic dispense syslog service
+                       syslog.syslog(syslog.LOG_INFO | syslog.LOG_LOCAL4, "vended %s (slot %s) for %s" % (name, vstatus.cur_selection, vstatus.username))
                        v.vend(vstatus.cur_selection)
                        v.display('THANK YOU')
                else:
+                       syslog.syslog(syslog.LOG_INFO | syslog.LOG_LOCAL4, "failed vending %s (slot %s) for %s, code %d" % (name, vstatus.cur_selection, vstatus.username, exitcode))
                        v.display('NO MONEY?')
        sleep(1)
 

UCC git Repository :: git.ucc.asn.au