def get_user_balance(message): balance = session.query(model.Balance).filter_by( group=message.chat.id, user=message.from_user.username).one() old_balance = cherrypy.engine.publish( 'get-user', message.chat.id, message.from_user.username)[0] bot.send_message(message.chat.id, 'Your current balance is %.2f (%.2f from DB).' % (old_balance, balance.amount))
def get_user_balance(message): balance = session.query(model.Balance).filter_by( group=message.chat.id, user=message.from_user.username).one() old_balance = cherrypy.engine.publish('get-user', message.chat.id, message.from_user.username)[0] bot.send_message( message.chat.id, 'Your current balance is %.2f (%.2f from DB).' % (old_balance, balance.amount))
def _ValidateUsers(users, chat_id): assert len(users) #available_usernames = list(*itertools.chain( # cherrypy.engine.publish('get-all-users', chat_id))) available_usernames = [balance.user for balance in session.query(model.Balance).filter(Balance.group == chat_id)] valid, invalid = [], [] for user in users: user = user[1:] # Delete leading '@'. (invalid, valid)[user in available_usernames].append(user) return valid, invalid
def _ValidateUsers(users, chat_id): assert len(users) #available_usernames = list(*itertools.chain( # cherrypy.engine.publish('get-all-users', chat_id))) available_usernames = [ balance.user for balance in session.query(model.Balance).filter( Balance.group == chat_id) ] valid, invalid = [], [] for user in users: user = user[1:] # Delete leading '@'. (invalid, valid)[user in available_usernames].append(user) return valid, invalid
def add_payments(message): usage_message = ( 'Please specify the payment amount after /pay, e.g. /pay 5.00') amount = None words = message.text.split() if not (len(words) == 2): bot.send_message(message.chat.id, usage_message) return try: amount = float(words[1]) except ValueError: bot.send_message(message.chat.id, usage_message) return session_key = _GetSessionKey(message) session_is_open = cherrypy.engine.publish( 'session-is-open', session_key)[0] if (session_is_open): open_session_message = ( 'Looks like you forgot to finish your previous session!') # TODO: Print out session info. bot.send_message(message.chat.id, open_session_message) return cherrypy.engine.publish('add-users-to-session', session_key, [message.from_user.username]) payments = {message.from_user.username: amount} balance = session.query(model.Balance).filter_by( group=message.chat.id, user=message.from_user.username).one_or_none() if balance is None: balance = model.Balance( group=message.chat.id, user=message.from_user.username, amount=amount) session.add(balance) else: balance.amount += amount cherrypy.engine.publish( 'add-payments', message.chat.id, payments) old_balance = cherrypy.engine.publish( 'get-user', message.chat.id, message.from_user.username)[0] bot.send_message(message.chat.id, ('Thank you for your payment of %.2f, generous friend! ' 'Your total balance is %.2f now (%.2f in DB).' % (amount, old_balance, balance.amount)))
def add_payments(message): usage_message = ( 'Please specify the payment amount after /pay, e.g. /pay 5.00') amount = None words = message.text.split() if not (len(words) == 2): bot.send_message(message.chat.id, usage_message) return try: amount = float(words[1]) except ValueError: bot.send_message(message.chat.id, usage_message) return session_key = _GetSessionKey(message) session_is_open = cherrypy.engine.publish('session-is-open', session_key)[0] if (session_is_open): open_session_message = ( 'Looks like you forgot to finish your previous session!') # TODO: Print out session info. bot.send_message(message.chat.id, open_session_message) return cherrypy.engine.publish('add-users-to-session', session_key, [message.from_user.username]) payments = {message.from_user.username: amount} balance = session.query(model.Balance).filter_by( group=message.chat.id, user=message.from_user.username).one_or_none() if balance is None: balance = model.Balance(group=message.chat.id, user=message.from_user.username, amount=amount) session.add(balance) else: balance.amount += amount cherrypy.engine.publish('add-payments', message.chat.id, payments) old_balance = cherrypy.engine.publish('get-user', message.chat.id, message.from_user.username)[0] bot.send_message( message.chat.id, ('Thank you for your payment of %.2f, generous friend! ' 'Your total balance is %.2f now (%.2f in DB).' % (amount, old_balance, balance.amount)))
def debug(self): group = session.query(model.Group).get('123') if group is None: group = model.Group(id='123') session.add(group) return group.id