Browse Source

define BTCPAY_ENABLED based on URL and btcpay key, pass it explicitly

optional-btcpay
forest 6 months ago
parent
commit
36329796f0
  1. 17
      capsulflask/__init__.py
  2. 1
      capsulflask/console.py
  3. 2
      capsulflask/payment.py
  4. 2
      capsulflask/templates/account-balance.html

17
capsulflask/__init__.py

@ -71,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'])
@ -139,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.
@ -218,10 +221,6 @@ def override_url_for():
return dict(url_for=url_for_with_cache_bust)
@app.context_processor
def load_config_vars():
return dict(config=app.config)
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

1
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"],

2
capsulflask/payment.py

@ -48,7 +48,7 @@ def validate_dollars():
def btcpay_payment():
errors = list()
if current_app.config['BTCPAY_PRIVATE_KEY'] == "":
if not current_app.config['BTCPAY_ENABLED']:
flash("BTCPay is not enabled on this server")
return redirect(url_for("console.account_balance"))

2
capsulflask/templates/account-balance.html

@ -46,7 +46,7 @@
<a href="/payment/stripe">Add funds with Credit/Debit (stripe)</a>
<ul><li>notice: stripe will load nonfree javascript </li></ul>
</li>
{% if config['BTCPAY_PRIVATE_KEY'] != "" %}
{% if btcpay_enabled %}
<li><a href="/payment/btcpay">Add funds with Bitcoin/Litecoin/Monero (btcpay)</a></li>
{% endif %}

Loading…
Cancel
Save