import base64
import json
import os.path
import secrets
from flask import Flask
from flask_qrcode import QRcode
config_file = os.path.abspath("/etc/membership.json")
qrcode = QRcode()
def create_app():
app = Flask(__name__)
try:
app.config.from_file(config_file, load=json.load)
except FileNotFoundError:
pass
qrcode.init_app(app)
_default_secret_key = base64.b64encode(secrets.token_bytes()).decode("utf-8")
app.config["SECRET_KEY"] = os.environ.get("SECRET_KEY", _default_secret_key)
app.config.setdefault("SUPPORTING_FEE", 40)
app.config.setdefault("REGULAR_FEE", 120)
app.config.setdefault("DIGICASH_ENABLED", True)
app.config.setdefault("BITCOIN_ENABLED", True)
app.config.setdefault("ETHEREUM_ENABLED", True)
app.config.setdefault("MONERO_ENABLED", True)
app.config.setdefault("ZCASH_ENABLED", True)
app.config.setdefault(
"BITCOIN_CONVERSION_SCRIPT", "/usr/local/share/btc/BTC_Membership.pl"
)
app.config.setdefault(
"ETHEREUM_CONVERSION_SCRIPT", "/usr/local/share/eth/ETH_Membership.pl"
)
app.config.setdefault(
"MONERO_CONVERSION_SCRIPT", "/usr/local/share/xmr/XMR_Membership.pl"
)
app.config.setdefault(
"ZCASH_CONVERSION_SCRIPT", "/usr/local/share/zcash/ZCASH_Membership.pl"
)
from .views import root_page
app.register_blueprint(root_page)
return app
app = create_app()