def run(): show_logo() _Runner = True global config config = ConfigParser.ConfigParser() config.read('bitbank.cfg') connected = False while not connected: try: db = MySQLdb.connect(host=config.get('Database', 'hostname'), user=config.get('Database', 'username'), passwd=config.get('Database', 'password'), db=config.get('Database', 'database')) connected = True except Exception: print "Database connection failed, retrying.." sleep(5) bank = Bank(db) if config.get('Bitwifi','enable') == "True": wifi = Wifi(config) defaultusername = bank.username while _Runner == True: if bank.username != defaultusername: barcode=raw_input('%s%s%s please scan [product barcode]: ' % (str(Color('yellow')),bank.username,str(Color('reset')))) else: barcode=raw_input('Please scan [usercard,product barcode]: ') line = filter (lambda a: a != "", barcode.split(" ")) if len(line) > 1 and bank.login(line[-1]) == True: bank = process_line(bank,barcode) continue if barcode == "clear" or barcode == "abort" or barcode == "reset" or barcode.startswith('ABORT'): bank.reset() elif barcode == "pay" or barcode == "kas" or barcode.startswith('KAS'): print "\x1b[H\x1b[J" show_logo() bank.pay() open_la() elif barcode == "logout" or barcode.startswith('LOGOUT'): print "\x1b[H\x1b[J" show_logo() bank.logout() elif barcode == "bank" or barcode.startswith('BANK'): print "\x1b[H\x1b[J" show_logo() bank.account() elif barcode == "shame": bank.shame() elif barcode.startswith('deposit'): temp = barcode.split(' ') amount = temp[1] bank.deposit(amount) open_la() elif barcode.startswith('withdraw'): temp = barcode.split(' ') amount = temp[1] bank.withdraw(amount) open_la() elif barcode.startswith('plastic'): temp = barcode.split(' ') amount = temp[1] bank.plastic_add(amount) elif barcode.startswith('adduser'): temp = barcode.split(' ') bank.account_add(temp[1]) elif barcode.startswith('list'): bank.list() elif barcode.startswith('mac') and config.get('Bitwifi','enable') == "True": wifi.unregister_list() elif barcode.startswith('register') and config.get('Bitwifi','enable') == "True": temp = barcode.split(' ') if bank.member==0: print "403: Access denied" continue wifi.registration(bank.username,temp[1],temp[2]) elif barcode == "help": print help() elif barcode == "hug": print free_hug() elif barcode == "exit": _Runner = False elif barcode == "": continue else: if bank.login(barcode) != True: if bank.product_add(barcode) != True: print "404: Not found"