diff --git a/capsulflask/__init__.py b/capsulflask/__init__.py index f85f268..7261bf4 100644 --- a/capsulflask/__init__.py +++ b/capsulflask/__init__.py @@ -31,7 +31,6 @@ load_dotenv(find_dotenv()) app = Flask(__name__) app.config.from_mapping( - BASE_URL=os.environ.get("BASE_URL", default="http://localhost:5000"), SECRET_KEY=os.environ.get("SECRET_KEY", default="dev"), HUB_MODE_ENABLED=os.environ.get("HUB_MODE_ENABLED", default="True").lower() in ['true', '1', 't', 'y', 'yes'], @@ -72,7 +71,7 @@ app.config.from_mapping( #STRIPE_WEBHOOK_SECRET=os.environ.get("STRIPE_WEBHOOK_SECRET", default="") BTCPAY_PRIVATE_KEY=os.environ.get("BTCPAY_PRIVATE_KEY", default="").replace("\\n", "\n"), - BTCPAY_URL=os.environ.get("BTCPAY_URL", default="https://btcpay.cyberia.club") + BTCPAY_URL=os.environ.get("BTCPAY_URL", default="") ) app.config['HUB_URL'] = os.environ.get("HUB_URL", default=app.config['BASE_URL']) @@ -140,10 +139,13 @@ else: app.config['HTTP_CLIENT'] = MyHTTPClient(timeout_seconds=int(app.config['INTERNAL_HTTP_TIMEOUT_SECONDS'])) -try: - app.config['BTCPAY_CLIENT'] = btcpay.Client(api_uri=app.config['BTCPAY_URL'], pem=app.config['BTCPAY_PRIVATE_KEY']) -except: - app.logger.warning("unable to create btcpay client. Capsul will work fine except cryptocurrency payments will not work. The error was: " + my_exec_info_message(sys.exc_info())) +app.config['BTCPAY_ENABLED'] = False +if app.config['BTCPAY_URL'] is not "": + try: + app.config['BTCPAY_CLIENT'] = btcpay.Client(api_uri=app.config['BTCPAY_URL'], pem=app.config['BTCPAY_PRIVATE_KEY']) + app.config['BTCPAY_ENABLED'] = True + except: + app.logger.warning("unable to create btcpay client. Capsul will work fine except cryptocurrency payments will not work. The error was: " + my_exec_info_message(sys.exc_info())) # only start the scheduler and attempt to migrate the database if we are running the app. # otherwise we are running a CLI command. @@ -219,7 +221,6 @@ def override_url_for(): return dict(url_for=url_for_with_cache_bust) - def url_for_with_cache_bust(endpoint, **values): """ Add a query parameter based on the hash of the file, this acts as a cache bust @@ -244,7 +245,3 @@ def url_for_with_cache_bust(endpoint, **values): values['q'] = current_app.config['STATIC_FILE_HASH_CACHE'][filename] return url_for(endpoint, **values) - - - - diff --git a/capsulflask/console.py b/capsulflask/console.py index e97b805..5da18e9 100644 --- a/capsulflask/console.py +++ b/capsulflask/console.py @@ -423,6 +423,7 @@ def account_balance(): has_vms=len(vms_billed)>0, vms_billed=vms_billed, warning_text=warning_text, + btcpay_enabled=current_app.config["BTCPAY_ENABLED"], payments=list(map( lambda x: dict( dollars=x["dollars"], diff --git a/capsulflask/payment.py b/capsulflask/payment.py index 1029f7d..3c41cd9 100644 --- a/capsulflask/payment.py +++ b/capsulflask/payment.py @@ -48,6 +48,10 @@ def validate_dollars(): def btcpay_payment(): errors = list() + if not current_app.config['BTCPAY_ENABLED']: + flash("BTCPay is not enabled on this server") + return redirect(url_for("console.account_balance")) + if request.method == "POST": result = validate_dollars() errors = result[0] @@ -289,4 +293,4 @@ def success(): # except stripe.error.SignatureVerificationError: # print("/payment/stripe/webhook returned 400: invalid signature") # abort(400, "invalid signature") - \ No newline at end of file + diff --git a/capsulflask/templates/account-balance.html b/capsulflask/templates/account-balance.html index 512e24c..3d47e70 100644 --- a/capsulflask/templates/account-balance.html +++ b/capsulflask/templates/account-balance.html @@ -46,7 +46,9 @@ Add funds with Credit/Debit (stripe) + {% if btcpay_enabled %}
  • Add funds with Bitcoin/Litecoin/Monero (btcpay)
  • + {% endif %}
  • Cash: email treasurer@cyberia.club