예제 #1
0
파일: bitbank.py 프로젝트: bitlair/bitbank
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"