def decorator(*args, **kwargs): service_name = os.environ["SERVICE"] url = request.url host = request.headers["Host"] endpoint = url.strip("https://").strip("http://").strip(host).split( "?")[0] path_us = endpoint.replace("/", "_") price_var = "PRICE_%s%s" % (service_name.upper(), path_us.upper()) price = os.environ.get(price_var, DEFAULT_PRICE) if "Bitcoin-Transfer" in request.headers: method = "buffer" elif "Bitcoin-Transaction" in request.headers: method = "wallet" elif "Bitcoin-Payment-Channel-Token" in request.headers: method = "channel" else: raise ValueError( "request header must contain Bitcoin-Transfer, Bitcoin-Transaction, " "or Bitcoin-Payment-Channel-Token") db = Two1SellDB(db_dir="/usr/src/db/") db.update(service_name, method, price) return fn(*args, **kwargs)
def get_earnings(services): """ Gets earnings of given services. """ db = Two1SellDB() return { service: get_earning(service, db) for service in services }
def service_status(service, dollars_per_sat, print_earnings=True): db = Two1SellDB() earning = get_earning(service, db) if print_earnings: request_count = earning["request_count"] total_earnings = (earning["buffer"] + earning["wallet"] + earning["channels"]) usd_earnings = total_earnings * dollars_per_sat message = [ "[Totals]", "Requests: %d" % request_count, "Earnings: $%.4f" % usd_earnings ] else: message = [] print_str(service, message, "TRUE" if service[1] else "FALSE", service[1])