import logging from tipbot import wownero from tipbot import db from functools import wraps def log_event(f): @wraps(f) def decorated_function(*args, **kwargs): msg = args[0].message logging.info(f'"{f.__name__}" invoked from {msg.from_user["id"]} ({msg.from_user["first_name"]}) - Full command: "{msg.text}"') return f(*args, **kwargs) return decorated_function def wallet_rpc_required(f): @wraps(f) def decorated_function(*args, **kwargs): wallet = wownero.Wallet() if not wallet.connected: logging.error(f'Wallet RPC interface is not available: {args[0].message}') args[0].message.reply_text('Wallet RPC interface is not available right now. Try again later.') return False return f(*args, **kwargs) return decorated_function def registration_required(f): @wraps(f) def decorated_function(*args, **kwargs): wallet = wownero.Wallet() if not db.User.filter(telegram_id=args[0].message.from_user['id']): args[0].message.reply_text('You are not yet registered. Issue the /register command.') return False return f(*args, **kwargs) return decorated_function